// JavaScript Document for Request Information Form

function validateRequiredFields(){

	var names=new Array("firstname", "lastname","email","phone","adult","children","infants","city","country",

		"departure_date","return_date","accommodation","airport_transfer","budget","plan_status"

	);

	var css="required";

	var count=0;

	var form=document.forms["myorder"];

	if (form!=null){

		for (var i=0; i<names.length; i++){

			var elem=form.elements[names[i]];

			count+=validateElement(elem);

		}

	}

	return (count==0);

}



function submitForm(){

	if (validateRequiredFields()){

		document.forms["myorder"].submit();

	} else{

		document.forms["myorder"].elements[0].focus();

	}

}



function hasValue(str){

	return (str!=null &&  (str=trim(str)).length>0);

}



function hasSelection(obj){

	return (obj.selectedIndex>=0 && obj.options.length>0 && hasValue(obj.options[obj.selectedIndex].value));

}

function trim(str)   {

     s = str.replace(/^(\s)*/, '');

     s = s.replace(/(\s)*$/, '');

     return s;

}



function validateElement(elem){

	var count=0;

	var css="";

	if (

		(elem.type=="text" && hasValue(elem.value)) || 

		(elem.type=="checkbox" && elem.checked) ||

		(elem.type=="select-one" && hasSelection(elem))

	){

		

		if (elem.name.indexOf("phone")==0){

			if (isPhoneNumber(trim(elem.value)))

				css="passed";

			else

				css="required";

		}  else if (elem.name.indexOf("email")==0){

			if (isEmail(trim(elem.value)))

				css="passed";

			else

				css="required";

		} else{

			css="passed";

		}

	} else{

		css="required";

	}

	if (css=="required")

		count++;

	

	elem.className=css;

	return count;

}

function addNumberOptions(id,num,offset){

	try{

		var elem=document.getElementById(id);

		if (elem.type=="select-one"){

			num=parseInt(num);

			for (var i=0; i<num; i++){

				elem.options.add(new Option((i+offset),(i+offset)));

			}

		}

	} catch (exception){/*empty*/}

}



function isPhoneNumber(phone){

	var matched=phone.match("^[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9][0-9]$");

	

	return (matched!=null);

}



function isEmail(email) {

	var result=email.match("^([A-Z]|[a-z]|[0-9]|\\.|\\+|-|_|#|~|\\^){2,}@([A-Z]|[a-z]|[0-9]){2,}(\\.)([A-Z]|[a-z]|[0-9]){2,}(.)*$");

	return (result!=null);

}



function numberOnly(elem){

	if (elem.type=="text"){

		var str=elem.value;

		if (str.match("^[0-9]*$")==null){

			str=str.substring(0,str.length-1);

			elem.value=str;

		}	

	}

}



/*function enableSubmit(node){

		var submitNode=document.getElementById("submitID");

		if (node!=null && node.checked!=null && node.checked){

			submitNode.disabled=false;

		} else{

			submitNode.disabled=true;

		}

	}*/

