
// for First Name Message 
var aMessages = new Array();
aMessages["firstname"] = new Array();
aMessages["firstname"] ["blank"] = "Please fill in your first name.";

// for Last Name Message 
aMessages["lastname"] = new Array();
aMessages["lastname"]["blank"] = "Please fill in your last name.";

// for Email messages 
aMessages["email"] = new Array();
aMessages["email"]["blank"] = "Please fill in a valid email address.";
aMessages["email"]["invalid"] = "Please fill in a valid email address.";

// for Verify Email messages 
aMessages["verify_email"] = new Array();
aMessages["verify_email"]["blank"] = "Please retype email.";
aMessages["verify_email"]["invalid"] = "The two email addresses you have provided do not match.";


// for Password messages 
aMessages["password"] = new Array();
aMessages["password"]["blank"] = "Please fill in a password.";
aMessages["password"]["length < 7"] = "Password must be 7-20 characters long and contain atleast one number and letters";
aMessages["password"]["length > 20"] = "Password must be 7-20 characters long and contain atleast one number and letters";

// for Verify Email messages 
aMessages["verify_password"] = new Array();
aMessages["verify_password"]["blank"] = "Please retype password.";
aMessages["verify_password"]["invalid"] = "The two passwords you have provided do not match.";

// for terms messages
 aMessages["terms"] = new Array();
 aMessages["terms"]["checked"] = "Please acknowledge if you have read and agree to our Terms and Conditions";
 aMessages["terms"]["blnk"] = "";
 
// for terms messages
 aMessages["yy"] = new Array();
 aMessages["yy"]["blank"] = "Please fill in a birth date";

// for terms messages
 aMessages["flavour"] = new Array();
 aMessages["flavour"]["blank"] = "Please Choose Product Size";



susernameValidatedVal = "";
sEmailValidatedVal = "";
sDateOfBirthValidatedVal = "";

String.prototype.trim = function(){
	var x=this;
	x=x.replace(/^\s*(.*)/, "$1");
	x=x.replace(/(.*?)\s*$/, "$1");
	return x;
}

function toggleHint(sMode, sElementName){
	sDisplay = (sMode == "show") ? "inline" : "none";
	if(oElement = eval(document.getElementById('hint_' + sElementName)))
		oElement.style.display = sDisplay;
}

function toggleHint_new (sMode, sElementName, sElement, sWidth){
	sLeftPos = 0;
	while(sElement){
		sLeftPos += sElement.offsetLeft;
		sElement = sElement.offsetParent;
	}
	sLeftPos = sLeftPos + sWidth + 25 + "px";
	sDisplay = (sMode == "show") ? "inline" : "none";

	if(oElement = eval(document.getElementById('hint_' + sElementName))){
		oElement.style.left = sLeftPos;
		oElement.style.display = sDisplay;
	}
}

function getNoOfNumerics(sStr){
	var iNumericCharsCount = 0;
	for(i=0; i< sStr.length; i++){
		if(!isNaN(sStr.charAt(i)))
			iNumericCharsCount++;
	}
	return iNumericCharsCount;
}

function uncheck(obj){
	if(eval(obj)){
		for(var i=0; i<obj.length; i++)	{
			obj[i].checked=false;
		}
	}
}

function fix_email(sVal){
	sVal = sVal.replace(/@_/i, "@");
	sVal = sVal.replace(/\s@\s|\s@|@\s/i, "@");
	sVal = sVal.replace(/_\._|_\.|\._/i, ".");
	sVal = sVal.replace(/\s\.\s|\s\.|\.\s/i, ".");
	sVal = sVal.replace(/,/gi, ".");
	return sVal;
}

function validate_firstname(){
	
	var oField = document.forms["partyplanner_request"].firstname;
	var oElement = document.getElementById('errmsg_firstname');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'firstname');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == ""){
		oElement.innerHTML = aMessages["firstname"]["blank"];
		oField.className = "field_err";
	}
}

function validate_lastname(){	
	var oField = document.forms["partyplanner_request"].lastname;
	var oElement = document.getElementById('errmsg_lastname');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'lastname');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == ""){
		oElement.innerHTML = aMessages["lastname"]["blank"];
		oField.className = "field_err";
	}
	
}

function validate_email(){
	var oField = document.forms["partyplanner_request"].email;
	var oElement = document.getElementById('errmsg_email');

	toggleHint('hide', 'email');
	oField.value = fix_email(oField.value.trim());
	aEmailValBeforeAtSign = oField.value.split("@");
	oElement.innerHTML = "";
	oField.className = "field_filled";
	oRegX = new RegExp(/^[\w_-]+(\.[\w_-]+)*@[\w_-]+(\.[\w_-]+)*\.\w{2,5}$/gi);

	if(oField.value == ""){
		oElement.innerHTML = aMessages["email"]["blank"];
		oField.className = "field_err";
	}
	else if(!oRegX.test(oField.value)){
		oElement.innerHTML = aMessages["email"]["invalid"];
		oField.className = "field_err";
	}
}



function validate_verify_email(){	
	var oField = document.forms["partyplanner_request"].verify_email;
	var oFieldeMail = document.forms["partyplanner_request"].email;
	var oElement = document.getElementById('errmsg_verify_email');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'verify_email');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if (oField.value == "")
		{
		oElement.innerHTML = aMessages["verify_email"]["blank"];
		oField.className = "field_err";
		}
	else if(oField.value !== oFieldeMail.value){
		oElement.innerHTML = aMessages["verify_email"]["invalid"];
		oField.className = "field_err";
	}
	
}

function validate_password(){	
	var oField = document.forms["partyplanner_request"].password;
	var oElement = document.getElementById('errmsg_password');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'password');
	oElement.innerHTML = "";
	oField.className = "field_filled";
	re = /[0-9]/; 
	rea = /[A-z]/; 


	if(oField.value == ""){
		oElement.innerHTML = aMessages["password"]["blank"];
		oField.className = "field_err";
	}
	else if (!re.test(oField.value)){
		oElement.innerHTML = aMessages["password"]["length < 7"];
		oField.className = "field_err";			  
		}
		else if (!rea.test(oField.value)){
		oElement.innerHTML = aMessages["password"]["length < 7"];
		oField.className = "field_err";
			}
	else if (oField.value.length < 7){
		oElement.innerHTML = aMessages["password"]["length < 7"];
		oField.className = "field_err";
	}
	else if (oField.value.length > 20){
		oElement.innerHTML = aMessages["password"]["length > 20"];
		oField.className = "field_err";
	}
}


function validate_verify_password(){
	
	var oField = document.forms["partyplanner_request"].verify_password;
	var oFieldpasswd= document.forms["partyplanner_request"].password;
	var oElement = document.getElementById('errmsg_verify_password');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'verify_password');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == ""){
		oElement.innerHTML = aMessages["verify_password"]["blank"];
		oField.className = "field_err";
	}
	else if(oField.value !== oFieldpasswd.value){
		oElement.innerHTML = aMessages["verify_password"]["invalid"];
		oField.className = "field_err";
		}
}


//check dob

function validate_dob(){

	var oField = document.forms["partyplanner_request"].dob;
	var oElement = document.getElementById('errmsg_dob');
	
	var dd = document.partyplanner_request.dd.value;
	var mm = document.partyplanner_request.mm.value;
	var yy = document.partyplanner_request.yy.value;
	var date = document.partyplanner_request.mm.value + '/' + document.partyplanner_request.dd.value + '/' + document.partyplanner_request.yy.value;

	days = new Date();
	gdate = days.getDate();
	gmonth = days.getMonth();
	gyear = days.getFullYear();
	age = gyear - yy;
	if((mm == (gmonth + 1)) && (dd <= parseInt(gdate))) {
	age = age;
	}
	else {
	if(mm <= (gmonth)) {
	age = age;
	}
	else {
	age = age - 1; 
	   }
	}
	if(age == 0){
	age = age;
	}


	var aMessages = new Array();
	aMessages["dob"] = new Array();
	aMessages["dob"] ["blank"] = "Please fill in a birth date";
	aMessages["dob"] ["msg1"] = "Month "+mm+" doesn't have 31 days!";
	aMessages["dob"] ["msg2"] = "February " + yy + " doesn't have " + dd + " days!";
	aMessages["dob"] ["msg3"] = "You must be over 18 to register";

	oField.value = oField.value.trim();
	toggleHint('hide', 'dob');
	oElement.innerHTML = "";
	oField.className = "field_filled";
	
	//for get date
	
	if ((!date) || (!date.match(/^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/)))
		{

		oElement.innerHTML = aMessages["dob"]["blank"];
		oField.className = "field_err";
		return(false);
		}
	
	else if ((mm==4 || mm==6 || mm==9 || mm==11) && dd==31) 
		{
		oElement.innerHTML = aMessages["dob"]["msg1"];
		oField.className = "field_err";
		return(false);
		}
		
		else if (mm == 2) 
			{ // check for february 29th
				var isleap = (yy % 4 == 0 && (yy % 100 != 0 || yy % 400 == 0));
				if (dd>29 || (dd==29 && !isleap)) 
					{
					oElement.innerHTML = aMessages["dob"]["msg2"];
					oField.className = "field_err";
					return(false);
					}
			}
			
				
			else if 
			
			
			
			(age < 18 ) 
				{
				oElement.innerHTML = aMessages["dob"]["msg3"];
				oField.className = "field_err";
				return(false);
		}
}

//end of dob



function validate_terms(){
	
	var oField = document.forms["partyplanner_request"].terms;
	var oElement = document.getElementById('errmsg_terms');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'terms');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == ""){
		oElement.innerHTML = aMessages["terms"]["checked"];
		oField.className = "field_err";
	}
	else if (oField.value == "yes")
		{
		oElement.innerHTML = aMessages["terms"]["blnk"];
		oField.className = "field_err";
		}
	
}

// full form validation

function validate_loginform(){


	var oField = document.forms["partyplanner_request"].firstname;
	var oElement = document.getElementById('errmsg_firstname');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'firstname');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == ""){
		oElement.innerHTML = aMessages["firstname"]["blank"];
		oField.className = "field_err";
		return(false);
		
	}



	var oField = document.forms["partyplanner_request"].lastname;
	var oElement = document.getElementById('errmsg_lastname');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'lastname');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == ""){
		oElement.innerHTML = aMessages["lastname"]["blank"];
		oField.className = "field_err";
		return(false);
 		}

	var oField = document.forms["partyplanner_request"].email;
	var oElement = document.getElementById('errmsg_email');

	toggleHint('hide', 'email');
	oField.value = fix_email(oField.value.trim());
	aEmailValBeforeAtSign = oField.value.split("@");
	oElement.innerHTML = "";
	oField.className = "field_filled";
	oRegX = new RegExp(/^[\w_-]+(\.[\w_-]+)*@[\w_-]+(\.[\w_-]+)*\.\w{2,5}$/gi);

	if(oField.value == "")
		{
		oElement.innerHTML = aMessages["email"]["blank"];
		oField.className = "field_err";
		return(false);
		}
	else if(!oRegX.test(oField.value))
		{
		oElement.innerHTML = aMessages["email"]["invalid"];
		oField.className = "field_err";
		return(false);
		}

	var oField = document.forms["partyplanner_request"].verify_email;
	var oFieldeMail = document.forms["partyplanner_request"].email;
	var oElement = document.getElementById('errmsg_verify_email');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'verify_email');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if (oField.value == "")
		{
		oElement.innerHTML = aMessages["verify_email"]["blank"];
		oField.className = "field_err";
		return(false);
		}
	else if(oField.value !== oFieldeMail.value){
		oElement.innerHTML = aMessages["verify_email"]["invalid"];
		oField.className = "field_err";
		return(false);
	}
	
	var oField = document.forms["partyplanner_request"].password;
	var oElement = document.getElementById('errmsg_password');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'password');
	oElement.innerHTML = "";
	oField.className = "field_filled";
	re = /[0-9]/; 
	rea = /[A-z]/; 


	if(oField.value == ""){
		oElement.innerHTML = aMessages["password"]["blank"];
		oField.className = "field_err";
	}
	else if (!re.test(oField.value)){
		oElement.innerHTML = aMessages["password"]["length < 7"];
		oField.className = "field_err";			  
		}
	else if (!rea.test(oField.value)){
		oElement.innerHTML = aMessages["password"]["length < 7"];
		oField.className = "field_err";
		}
	else if (oField.value.length < 7){
		oElement.innerHTML = aMessages["password"]["length < 7"];
		oField.className = "field_err";
		return(false);
 		}
	else if (oField.value.length > 20){
		oElement.innerHTML = aMessages["password"]["length > 20"];
		oField.className = "field_err";
		return(false);
 		}
	
 	var oField = document.forms["partyplanner_request"].verify_password;
	var oFieldpasswd= document.forms["partyplanner_request"].password;
	var oElement = document.getElementById('errmsg_verify_password');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'verify_password');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
		{
		oElement.innerHTML = aMessages["verify_password"]["blank"];
		oField.className = "field_err";
		return(false);
		}
	else if(oField.value !== oFieldpasswd.value){
		oElement.innerHTML = aMessages["verify_password"]["invalid"];
		oField.className = "field_err";
		return(false);
		}
		
		

	var oField = document.forms["partyplanner_request"].yy;
	var oElement = document.getElementById('errmsg_dob');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'yy');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == ""){
		oElement.innerHTML = aMessages["yy"]["blank"];
		oField.className = "field_err";
		return(false);
	}

//eheckdob

	var oField = document.forms["partyplanner_request"].terms;
	var oElement = document.getElementById('errmsg_terms');
	
	oField.value = oField.value.trim();
	toggleHint('hide', 'terms');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.checked == false){
		oElement.innerHTML = aMessages["terms"]["checked"];
		oField.className = "field_err";
		return(false);
	}
		
	return true;
}

//ret cus login 
// products Size...
