$(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.html('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
			mobilenrP.css({'background-image':'url(/images/loading2.gif)','visibility':'visible'})

			$.post("/form/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 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);
			}
			else if( $("response",xml).attr("error") >= 400 ){
				handleResponse("okMsg","error2","Invalid Number", true);
			}
			else if( $("response",xml).attr("error") <= 300 ){
				handleResponse("okMsg","error2","Corrupted unsubscribe request!", false);
			}
			else{
				handleResponse("okMsg","error2","To many requests processed in 1 hour.", false);
			}
		}

		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);
			}
		}

		else{
			handleResponse("error2","okMsg","Mobile nr 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_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{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 < 3){
			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 < 3){
			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-1 || 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() {
		// SET MESSAGE VALUES

		request = 'OTHER REQUEST';
		message = $("#txtArea").val();

		var country = $("#country").val().toUpperCase();
		var to =  $("#send2email").val();
		var subject = request + " " + country + " CELLDORADO";

	 	var body =
		" To Celldorado Customer Service,\n" +
		"\n Name: " + surname.val() + " " + lastname.val() +
		"\n MobileNr: " + prefix.val() + " " + mobilenr.val() +
		"\n Country: "  + country +
		"\n Message: " + message;

		// BUILD MAIL MESSAGE COMPONENTS
		//#40336: Problems decoding the greek font in Celldorado contact form
		if(country!='GR')
		{
			var doc = "mailto:" + to +
			"?subject=" + escape(subject) +
			"&body=" + escape(body);
		} else{
		
			var doc = "mailto:" + to +
			"?subject=" + escape(subject) +
			"&body=" + 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;
	}
}