$(document).ready(function() {

	//variable seasoning
	var form = $("#contactForm");
	var email = $("#email");
	var emailP = $("#emailProblem");
	var surname= $("#surname");
	var surnameP = $("#surnameProblem");
	var lastname = $("#lastname");
	var lastnameP = $("#lastnameProblem");
	var mobilenr = $("#mobilenr");
	var mobilenrP = $("#mobilenrProblem");
	var mobilenrLength = $("#mobilenr").attr("maxlength");
	var unsub = $("#unsubscribe");
	var enquiry = $("#enquiry");
	var prefix = $("#prefix");
	var prefixLen = $("#prefixM").val();

	//validate on focus
	email.blur(validateEmail);
	surname.blur(validateName);
	lastname.blur(validateName2);
	mobilenr.blur(validateNr);

	//validate on keypress
	email.keyup(validateEmail);
	surname.keyup(validateName);
	lastname.keyup(validateName2);
	mobilenr.keyup(validateNr);

	//unsubscribe env
	unsub.click(function(){
		activation(true,'#ECECEC');
		email.removeClass("error");
		emailP.removeClass("error");
		surname.removeClass("error");
		surnameP.removeClass("error");
		lastname.removeClass("error");
		lastnameP.removeClass("error");
	});

	//enquiry env
	enquiry.click(function(){
		activation(false,'#FFFFFF');
	});

	//on submit
	form.submit(function(){

		var realNr = prefix.val()+mobilenr.val().substr(prefixLen);

		if($('#enquiry').attr('checked') && validateEmail() && validateName() && validateName2() && validateNr()){

			openEmail();

		}
		else if($('#unsubscribe').attr('checked') && validateNr()){

			mobilenrP.text( "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
			mobilenrP.css({'background-image':'url(/images/loading2.gif)','visibility':'visible'})

			$.post("/forms/respond.php", {
			ads_country: $("input#country").val(),
			msisdn: realNr
			}, function(data){
				$("input#mobilenr").attr("disabled",true);
				$("input#ccSubmit").attr("disabled",true);
				processResponse(data);
			});
		}
		return false;
	},"xml");

	// xml parsing and process
	function processResponse(xml) {
		if( $("response",xml).attr("error") ){
			if( $("response",xml).attr("error") == 8080 ){
				handleResponse("okMsg","error2","No proxies allowed on unsubscribe...", false);
				return;
			}
			else if( $("response",xml).attr("error") >= 400 ){
				handleResponse("okMsg","error2","Invalid Number", true);
				return;
			}
			else if( $("response",xml).attr("error") <= 300 ){
				handleResponse("okMsg","error2","Corrupted unsubscribe request!", false);
				return;
			}
			else{
				handleResponse("okMsg","error2","To many requests processed in 1 hour.", false);
				return;
			}
		}
		else if($("response",xml).attr("affected")){
			if($("response",xml).text() == "OK"){
				handleResponse("error2","okMsg","Mobile succesfully processed", false);
			}
			else{
				handleResponse("error2","okMsg","Mobile already processed", false);
			}
			return;
		}
	}

	// small function for the response text
	function handleResponse(removeE, addC, atrText, dis){
		mobilenrP.css({'background-image':'none'})
		mobilenrP.removeClass(removeE);
		mobilenrP.addClass(addC);
		mobilenrP.text(atrText);
		if(dis){
			$("input#mobilenr").attr("disabled",false);
			$("input#ccSubmit").attr("disabled",false);
		}
	}

	function validateEmail(){
	//testing regular expression
	var a = $("#email").val();
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	//if it's valid email
	if(filter.test(a)){
		email.removeClass("error");
		emailP.removeClass("error");
		return true;
	}
	//if it's NOT valid
	else{
		email.addClass("error");
		emailP.addClass("error");
		return false;
	}
	}

	function validateName(){
		//if it's NOT valid
		if(surname.val().length < 4){
			surname.addClass("error");
			surnameP.addClass("error");
			return false;
		}
		//if it's valid
		else{
			surname.removeClass("error");
			surnameP.removeClass("error");
			return true;
		}
	}

	function validateName2(){
		//if it's NOT valid
		if(lastname.val().length < 4){
			lastname.addClass("error");
			lastnameP.addClass("error");
			return false;
		}
		//if it's valid
		else{
			lastname.removeClass("error");
			lastnameP.removeClass("error");
			return true;
		}
	}

	function validateNr(){
		//if it's NOT valid
		var filter = /[A-Za-z\s]/;
		if(mobilenr.val().length < mobilenrLength || filter.test(mobilenr.val())){
			mobilenr.addClass("error");
			mobilenrP.addClass("error");
			return false;
		}
		//if it's valid
		else{
			mobilenr.removeClass("error");
			mobilenrP.removeClass("error");
			return true;
		}
	}

   function openEmail() {

      var email=document.getElementById('send2email').value;
      var request = 'OTHER REQUEST';

      var message = document.getElementById('txtArea').value;

      var country = document.getElementById('country').value.toUpperCase();

      var to =  email;

      var subject = request + " " + country + " Cellfun";

      var body =
          " To Cellfun Customer Service,\n" +
          "\nName: " + document.getElementById('surname').value + " " + document.getElementById('lastname').value +
          "\nMobileNr: " + document.getElementById('prefix').value + " " + document.getElementById('mobilenr').value +
          "\nCountry: "  + country +
          "\nMessage: " + message;


      // BUILD MAIL MESSAGE COMPONENTS
      var doc = "mailto:" + to +
          "?subject=" + escape(subject) +
          "&body=" + escape(body);

      // POP UP EMAIL MESSAGE WINDOW

      window.location = doc;

    }

});

///////////////////////////////////////////// old stuff / non jquery

function activation(a,b){
	var disEle = ['txtArea','email','surname','lastname'];

	for(var asc in disEle){
		document.getElementById(disEle[asc]).disabled = a;
	}
}
