﻿//Geneerinen funktio formin statuksen muuttamiseen
function changeFormStatus(status,formObject,loaderDivId,submitButtonId,xmlDoc) {
loaderDiv=document.getElementById(loaderDivId)
submitButton=document.getElementById(submitButtonId)


if (status=='sending') {
   loaderDiv.innerHTML='<div class="sendingForm"><h3>'+ global_text_lahetetaan +'</h3><img border="0" src="/_system/images/ajax-loader_' + osio + '.gif"/></div>';
   submitButton.disabled=true;
   disableForm();
}
if (status=='ok') {
   loaderDiv.innerHTML='<div class="formSent"><h2>'+ global_text_kiitosViestistasi +'</h2></div>';
   submitButton.disabled=false;
   hideForm();
   setTimeout("enableForm()", 5000);

}
if (status=='error') {
if (xmlDoc==undefined)xmlDoc="";

if (xmlDoc.indexOf('errorCode=-1')!=-1) {
loaderDiv.innerHTML='<h2>'+ text_kayttajatunnusOnJoVarattu +'</h2>';
alert(text_kayttajatunnusOnJoVarattu);
}
else if (xmlDoc.indexOf('errorCode=2')!=-1) {
loaderDiv.innerHTML='<h2>'+ text_virheellisetPalvelinasetukset +'</h2>';
}
else if (xmlDoc.indexOf('errorCode=-28')!=-1) {
loaderDiv.innerHTML='<h2>'+ text_salasanaOnLiianYksinkertainenLong +'</h2>';
alert(text_salasanaOnLiianYksinkertainenShort);
}
else if (xmlDoc.indexOf('errorCode=120')!=-1) {
loaderDiv.innerHTML='<h2>'+ text_virheellisestiTaytettyLomake +'</h2>';
}

else
   loaderDiv.innerHTML='<h2>'+ text_tietojenLahettaminenVirhe +'</h2>';
   submitButton.disabled=false;
         //TODO: after timeout: enable form
            //enableForm();
}

}


function changeFormStatusEN(status,formObject,loaderDivId,submitButtonId,xmlDoc) {
loaderDiv=document.getElementById(loaderDivId)
submitButton=document.getElementById(submitButtonId)


if (status=='sending') {
   loaderDiv.innerHTML='<div class="sendingForm"><h3>Sending...</h3><img border="0" src="/_system/images/ajax-loader_' + osio + '.gif"/></div>';
   submitButton.disabled=true;
   disableForm();
}
if (status=='ok') {
   loaderDiv.innerHTML='<div class="formSent"><h2>Thank you for your message</h2></div>';
   submitButton.disabled=false;
   hideForm();
   setTimeout("enableForm()", 5000);

}
if (status=='error') {
if (xmlDoc==undefined)xmlDoc="";

if (xmlDoc.indexOf('errorCode=-1')!=-1) {
loaderDiv.innerHTML='<h2>'+ text_kayttajatunnusOnJoVarattu +'</h2>';
alert(text_kayttajatunnusOnJoVarattu);
}
else if (xmlDoc.indexOf('errorCode=2')!=-1) {
loaderDiv.innerHTML='<h2>'+ text_virheellisetPalvelinasetukset +'</h2>';
}
else if (xmlDoc.indexOf('errorCode=-28')!=-1) {
loaderDiv.innerHTML='<h2>'+ text_salasanaOnLiianYksinkertainenLong +'</h2>';
alert(text_salasanaOnLiianYksinkertainenShort);
}
else if (xmlDoc.indexOf('errorCode=120')!=-1) {
loaderDiv.innerHTML='<h2>'+ text_virheellisestiTaytettyLomake +'</h2>';
}

else
   loaderDiv.innerHTML='<h2>Error while sending your message. Please try again later!</h2>';
   submitButton.disabled=false;
         //TODO: after timeout: enable form
            //enableForm();
}

}



function submitKerholomake(el) {

//tähän validointi
var missing=false
var errMsg="";


if (isBlank(el.firstName.value)) {
  missing=true;
}
else if (!validateInput(el.firstName.value,6)) errMsg+=text_nimiVoiSisaltaaMerkkeja +"\n";
if (isBlank(el.lastName.value)) {
  missing=true;
}
else if (!validateInput(el.lastName.value,6)) errMsg+=text_nimiVoiSisaltaaMerkkeja +"\n";

if (isBlank(el.username.value)) {
  missing=true;
}
else if (!validateInput(el.username.value,6)) errMsg+=text_kayttajatunnusVoiSisaltaaMerkkeja +"\n";

if (isBlank(el.new_pass.value)) {
  missing=true;
}
else if (!validateInput(el.new_pass.value,6)) errMsg+=text_salasanaVoiSisaltaaMerkkeja +"\n";

if (el.new_pass.value!=el.new_pass_verify.value) {
errMsg+=text_annaSamaSalasanaKaksiKertaa +"\n";

}
if (el.new_pass.value.length<6) {
errMsg+=text_salasananMinimipituus +"\n";

}


if (el.email.value==text_sahkopostiosoitteesi || isBlank(el.email.value)) {
  missing=true;
}
var koulunimi=document.getElementById('Koulun nimi');
if (isBlank(koulunimi.value)) {
  missing=true;
}
else if (!validateInput(koulunimi.value,6)) errMsg+=text_nimiVoiSisaltaaVainMerkkejaLong +"\n";

if (el.FormInformation.value!='') {
 errMsg+=text_virheellisestiTaytettyLomake +"\n";
}
if (missing) errMsg+=text_kaikkiKentatOvatPakollisia +"\n";

if (!isBlank(el.email.value))
   if (!testForIt('email',el.email.value)) {
      errMsg+=text_sahkopostiosoiteOnVirheellinen +"\n";
   }

if (errMsg!="") {
 alert(errMsg);
 return false;
}



//return true;
var postData="recipient=" + encodeURIComponent(el.recipient.value);
postData+="&senderAddress=" + encodeURIComponent(el.senderAddress.value);
postData+="&subject=" + encodeURIComponent(el.subject.value);
postData+="&messageTemplate=" + encodeURIComponent(el.messageTemplate.value);
postData+="&emailContentType=" + encodeURIComponent(el.emailContentType.value);
postData+="&messageTemplateCharset=" + encodeURIComponent(el.messageTemplateCharset.value);
postData+="&confirmEmailRecipient=" + encodeURIComponent(el.confirmEmailRecipient.value);
postData+="&confirmEmailSenderAddress=" + encodeURIComponent(el.confirmEmailSenderAddress.value);
postData+="&confirmEmailSubject=" + encodeURIComponent(el.confirmEmailSubject.value);
postData+="&confirmEmailMessageTemplatePath=" + encodeURIComponent(el.confirmEmailMessageTemplatePath.value);
postData+="&confirmEmailContentType=" + encodeURIComponent(el.confirmEmailContentType.value);
postData+="&confirmEmailMessageTemplateCharset=" + encodeURIComponent(el.confirmEmailMessageTemplateCharset.value);


postData+="&parentUserGroupId=" + el.parentUserGroupId.value + "&flash=true&successurl=" + el.successurl.value + "&failureurl=" + el.failureurl.value + "&collectionId=" + el.collectionId.value 
postData+= "&lastName=" + encodeURIComponent(el.lastName.value) + "&firstName=" + encodeURIComponent(el.firstName.value) + "&email=" + encodeURIComponent(el.email.value) + "&Koulun nimi=" +encodeURIComponent(koulunimi.value)
postData+= "&username=" + encodeURIComponent(el.username.value) + "&new_pass=" + encodeURIComponent(el.new_pass.value) + "&new_pass_verify=" + encodeURIComponent(el.new_pass_verify.value)

changeFormStatus('sending',el,'sending','submitButton');
$.ajax({
               type: "POST",
               url: "/acms/core/asp/users.aspx",
               //contentType: "charset=utf-8",
               data: postData,
               success: function(xmlDoc){

               if (xmlDoc.indexOf('success=true')==0) {
changeFormStatus('ok',el,'sending','submitButton');
   }                else {
alert('Testivaiheen debug-tietoa:' + xmlDoc);
changeFormStatus('error',el,'sending','submitButton',xmlDoc);

                   }



               
               },
               error:function (xhr, ajaxOptions, thrownError){
alert(xhr.responseBody);changeFormStatus('error',el,'sending','submitButton');
                    } 



               }); 
               return false;
}               



function submitSuullinenKysymysForm(el) {


var missing=false
var errMsg="";


var postData="flash=true&parentUserGroupId=" + el.parentUserGroupId.value + "&successurl=" + el.successurl.value + "&failureurl=" + el.failureurl.value + "&collectionId=" + el.collectionId.value;
postData+="&Kysymys=" + el.Kysymys.value
var tmp=document.getElementById('Lisäkysymys');
postData+="&Lisäkysymys=" + tmp.value;
postData+="&Erityistarpeet=" + el.Erityistarpeet.value;
tmp=document.getElementById('Koulun nimi');

postData+="&Koulun nimi=" + encodeURIComponent(tmp.value);
tmp=document.getElementById('Koulun nimi');
postData+="&Edustajan etunimi=" + encodeURIComponent(tmp.value);
tmp=document.getElementById('Edustajan sukunimi');

postData+="&Edustajan sukunimi=" + encodeURIComponent(tmp.value);
tmp=document.getElementById('Varaedustajan etunimi');

postData+="&Varaedustajan etunimi=" + encodeURIComponent(tmp.value);
tmp=document.getElementById('Varaedustajan sukunimi');
postData+="&Varaedustajan sukunimi=" + encodeURIComponent(tmp.value);



tmp=document.getElementById('Toimittajaoppilaan etunimi');
postData+="&Toimittajaoppilaan etunimi=" + encodeURIComponent(tmp.value);

tmp=document.getElementById('Toimittajaoppilaan sukunimi');
postData+="&Toimittajaoppilaan sukunimi=" + encodeURIComponent(tmp.value);

tmp=document.getElementById('Ohjaajan sukunimi');
postData+="&Ohjaajan sukunimi=" + encodeURIComponent(tmp.value);

tmp=document.getElementById('Ohjaajan etunimi');
postData+="&Ohjaajan etunimi=" + encodeURIComponent(tmp.value);

tmp=document.getElementById('Ohjaajan email');
postData+="&Ohjaajan email=" + encodeURIComponent(tmp.value);


tmp=document.getElementById('Koulun nimi');
if ( isBlank(tmp.value)) {
  missing=true;
}
if (el.FormInformation.value!='') {
 errMsg+=text_virheellisestiTaytettyLomake +"\n";
}
if (missing) errMsg+=text_taytaKaikkiPakollisetKentat +"\n";

if (errMsg!="") {
 alert(errMsg);
 return false;
}




changeFormStatus('sending',el,'sending','submitButton');
$.ajax({
               type: "POST",
               url: "/acms/core/asp/users.aspx",
               //contentType: "charset=utf-8",
               data: postData,
               success: function(xmlDoc){

               if (xmlDoc.indexOf('success=true')==0) {
                       changeFormStatus('ok',el,'sending','submitButton');
                   }
                   else {

changeFormStatus('error',el,'sending','submitButton');                   }



               
               },
               error:function (xhr, ajaxOptions, thrownError){

changeFormStatus('error',el,'sending','submitButton');                                                                                       
                    } 



               }); 
               return false;
}               


function submitPuheenaiheForm(el) {
//tähän validointi
var missing=false
var errMsg="";
if (el.firstName.value==global_text_nimesi || isBlank(el.firstName.value)) {
  missing=true;
}
else if (!validateInput(el.firstName.value,6)) errMsg+=text_nimiVoiSisaltaaMerkkeja +"\n";
if (isBlank(el.Puheenaihe.value)) {
  missing=true;
}
else if (!validateInput(el.Puheenaihe.value,6)) errMsg+=text_puheenaiheVoiSisaltaaVainMerkkeja +"\n";

if (el.FormInformation.value!='') {
 errMsg+=text_virheellisestiTaytettyLomake +"\n";
}
if (missing) errMsg+=text_kaikkiKentatOvatPakollisia +"\n";

if (errMsg!="") {
 alert(errMsg);
 return false;
}

$(el).children("#sending").show();

var postData="flash=true&parentUserGroupId=" + el.parentUserGroupId.value + "&successurl=" + el.successurl.value + "&failureurl=" + el.failureurl.value + "&collectionId=" + el.collectionId.value + "&firstName=" + el.firstName.value + "&Puheenaihe=" + el.Puheenaihe.value

changeFormStatus('sending',el,'sending','submitButton');                   
$.ajax({
               type: "POST",
               url: "/acms/core/asp/users.aspx",
               //contentType: "charset=utf-8",
               data: postData,
               success: function(xmlDoc){

               if (xmlDoc.indexOf('success=true')==0) {
                       changeFormStatus('ok',el,'sending','submitButton');
                   }
                   else {

changeFormStatus('error',el,'sending','submitButton');                   }



               
               },
               error:function (xhr, ajaxOptions, thrownError){

changeFormStatus('error',el,'sending','submitButton');                                                                                       
                    } 



               }); 
               return false;
}                                            


function submitForm(el) {



//tähän validointi
var missing=false
var errMsg="";
if (el.firstName.value==palaute_text_nimesi || isBlank(el.firstName.value)) {
  missing=true;
}
else if (!validateInput(el.firstName.value,6)) errMsg+=text_nimiVoiSisaltaaMerkkeja +"\n";
if (el.email.value==palaute_text_sahkoposti || isBlank(el.email.value)) {
  missing=true;
}
if (el.Palaute.value==palaute_text_palaute || isBlank(el.Palaute.value)) {
  missing=true;
}
else if (!validateInput(el.Palaute.value,6)) errMsg+=text_palauteVoiSisaltaaVainMerkkeja +"\n";

if (el.FormInformation.value!='') {
 errMsg+=text_virheellisestiTaytettyLomake +"\n";
}
if (missing) errMsg+=text_kaikkiKentatOvatPakollisia +"\n";
//if (missing) errMsg+=text_taytathanPalautekentan +"\n";
if (!(el.email.value==palaute_text_sahkoposti || isBlank(el.email.value)))
   if (!testForIt('email',el.email.value)) {
      errMsg+=text_sahkopostiosoiteOnVirheellinen +"\n";
   }

if (errMsg!="") {
 alert(errMsg);
 return false;
}
var tmp2=document.getElementById('Palautteen antaja');


var postData="recipient=" + el.recipient.value;
postData+="&senderAddress=" + el.senderAddress.value;
postData+="&subject=" + el.subject.value;

postData+="&Sivu=" + el.Sivu.value + "&Palautteen antaja=" + tmp2.value + "&parentUserGroupId=" + el.parentUserGroupId.options[el.parentUserGroupId.options.selectedIndex].value + "&flash=true&successurl=" + el.successurl.value + "&failureurl=" + el.failureurl.value + "&collectionId=" + el.collectionId.value + "&firstName=" + encodeURIComponent(el.firstName.value) + "&email=" + encodeURIComponent(el.email.value) + "&Palaute=" + encodeURIComponent(el.Palaute.value)
changeFormStatus('sending',el,'sendingPalaute','submitButtonPalaute');
$.ajax({
               type: "POST",
               url: "/acms/core/asp/users.aspx",
               //contentType: "charset=utf-8",
               data: postData,
               success: function(xmlDoc){

               if (xmlDoc.indexOf('success=true')==0) {
//changeFormStatus('ok',el,'sendingPalaute','submitButtonPalaute');                  

loaderDiv=document.getElementById('sendingPalaute')
submitButton=document.getElementById('submitButtonPalaute')


   loaderDiv.innerHTML='<div class="formSent"><h2>'+ global_text_kiitosViestistasi +'</h2></div>';
   submitButton.disabled=false;
   hideForm();
   setTimeout("enableForm2()", 5000);




 }
                   else {

changeFormStatus('error',el,'sendingPalaute','submitButtonPalaute');
   setTimeout("enableForm()", 5000);

                   }



               
               },
               error:function (xhr, ajaxOptions, thrownError){

changeFormStatus('error',el,'sendingPalaute','submitButtonPalaute');
   setTimeout("enableForm()", 5000);
                    } 



               }); 
               return false;
}               

function submitEnForm(el) {



//tähän validointi
var missing=false
var errMsg="";
if (el.firstName.value==palaute_text_nimesi || isBlank(el.firstName.value)) {
  missing=true;
}
else if (!validateInput(el.firstName.value,6)) errMsg+=text_nimiVoiSisaltaaMerkkeja +"\n";
if (el.email.value==palaute_text_sahkoposti || isBlank(el.email.value)) {
  missing=true;
}
if (el.Palaute.value==palaute_text_palaute || isBlank(el.Palaute.value)) {
  missing=true;
}
else if (!validateInput(el.Palaute.value,6)) errMsg+=text_palauteVoiSisaltaaVainMerkkeja +"\n";

if (el.FormInformation.value!='') {
 errMsg+="Invalid data! Fill in all field!\n";
}
if (missing) errMsg+="All fields are mandatory!\n";

if (!(el.email.value==palaute_text_sahkoposti || isBlank(el.email.value)))
   if (!testForIt('email',el.email.value)) {
      errMsg+="Invalid email!\n";
   }

if (errMsg!="") {
 alert(errMsg);
 return false;
}
var tmp2=document.getElementById('Palautteen antaja');


var postData="recipient=" + el.recipient.value;
postData+="&senderAddress=" + el.senderAddress.value;
postData+="&subject=" + el.subject.value;

postData+="&Sivu=" + el.Sivu.value + "&Palautteen antaja=" + tmp2.value + "&parentUserGroupId=" + el.parentUserGroupId.value + "&flash=true&successurl=" + el.successurl.value + "&failureurl=" + el.failureurl.value + "&collectionId=" + el.collectionId.value + "&firstName=" + encodeURIComponent(el.firstName.value) + "&email=" + encodeURIComponent(el.email.value) + "&Palaute=" + encodeURIComponent(el.Palaute.value)
changeFormStatusEN('sending',el,'sendingPalaute','submitButtonPalaute');
$.ajax({
               type: "POST",
               url: "/acms/core/asp/users.aspx",
               //contentType: "charset=utf-8",
               data: postData,
               success: function(xmlDoc){

               if (xmlDoc.indexOf('success=true')==0) {
//changeFormStatus('ok',el,'sendingPalaute','submitButtonPalaute');                  

loaderDiv=document.getElementById('sendingPalaute')
submitButton=document.getElementById('submitButtonPalaute')


   loaderDiv.innerHTML='<div class="formSent"><h2>Thank you for your feedback!</h2></div>';
   submitButton.disabled=false;
   hideForm();
   setTimeout("enableForm2EN()", 5000);




 }
                   else {

changeFormStatusEN('error',el,'sendingPalaute','submitButtonPalaute');
   setTimeout("enableForm()", 5000);

                   }



               
               },
               error:function (xhr, ajaxOptions, thrownError){

changeFormStatusEN('error',el,'sendingPalaute','submitButtonPalaute');
   setTimeout("enableForm()", 5000);
                    } 



               }); 
               return false;
}               


function isBlank(cStr) {
    /************************************************
    DESCRIPTION: inspects string for actual characters.
    PARAMETERS: Source string to be inspected;
    RETURNS: true if no characters are found (string is empty), else false.
    *************************************************/
    for (var j = 0; j < cStr.length; j++) {	// walk through string
        var strC = cStr.charAt(j);
        if ((strC != ' ') && (strC != '\n') && (strC != '\t')) return false; // return false if character found
    }
    return true; // return true if no character found
}

function testForIt(it, strValue) {
    /************************************************
    DESCRIPTION: Checks for regular expression
    PARAMETERS:  	it - string containin reg exp variable name (must be created)
    strValue - Source string to check
    RETURNS: true if found, else false
    *************************************************/
    // regular expression list - add to it as needed
    var space = /\s/gi; 		// any one space
    var email = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;  // email address
    // ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ 

    var objRegExp = eval(it); 		// assign reg exp to look for
    return objRegExp.test(strValue);   // return result
}


function validateInput(inputStr, level) {
    return true;
    var charArr = new Array;
    charArr[0] = "abcdefghijklmnopqrstuvwxyzöäåABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÅ0123456789";
    charArr[1] = "abcdefghijklmnopqrstuvwxyzöäåABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÅ0123456789 ";
    charArr[2] = "abcdefghijklmnopqrstuvwxyzöäåABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÅ0123456789_-";
    charArr[3] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-";
    charArr[4] = "0123456789";
    charArr[5] = "abcdefghijklmnopqrstuvwxyzöäåABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÅ0123456789,. ?!-()@:;"
    charArr[6] = 'abcdefghijklmnopqrstuvwxyzöäåABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÅ0123456789",.()!*+-_?@%={[]};:\/|'

    if (level == undefined) level = 0;
    if (level > 9) {
        return false;
    }

    var result = true
    for (var i = 0; i < inputStr.length; i++) {
        c = inputStr.substring(i, i + 1)
        if (charArr[level].indexOf(c) == -1 && inputStr.charCodeAt(i)!=32 && inputStr.charCodeAt(i)!=10 && inputStr.charCodeAt(i)!=12 && inputStr.charCodeAt(i)!=13) {
            //alert(inputStr.charCodeAt(i));
            return false;

        }    
         }
    return true;
}

function hideForm() {
	$("#disabler").css("background-color","#ffffff");
}

function enableForm() {
	$("#disabler").css("background-color","transparent");
	$("#disabler").hide();
}

function enableForm2(el) {
	$("#disabler").css("background-color","transparent");
	$("#disabler").hide();
	document.getElementById('firstName').value=palaute_text_nimesi;
	document.getElementById('email').value=palaute_text_sahkoposti;
	document.getElementById('Palaute').value=palaute_text_palaute;
}

function enableForm2EN(el) {
	$("#disabler").css("background-color","transparent");
	$("#disabler").hide();
	document.getElementById('firstName').value='Your name';
	document.getElementById('email').value='Your email';
	document.getElementById('Palaute').value='Your feedback and questions';
}



function disableForm() {
	$("#disabler").css("height", $("#contentFooter form").height());
	$("#disabler").show();
}

$(window).load(function() {

	var textareaWidth = $('.jqTransformTextarea').parent('div').width();
	textareaWidth = textareaWidth-10;	
	
	$('textarea.jqtransformdone').css({'width':textareaWidth + 'px'});
	
	if($.browser.safari){

		$('.jqTransformSafariTextarea div').css({'width':textareaWidth + 'px'});
		textareaWidth = textareaWidth-15;
		$('.jqTransformSafariTextarea textarea').css({'width':textareaWidth + 'px'});		
	}
});
