
// define messages related to fields over here
var aMessages = new Array();

aMessages["profileid"] = new Array();
aMessages["profileid"]["blank"] = "Please type a Profile ID.";
aMessages["profileid"]["^0-9a-z_"] = "Incorrect format for Profile ID. Please use only alphabets, numerals and underscore '_'.";
aMessages["profileid"]["length < 4"] = "Profile ID is too short. Please use atleast 4 characters.";
aMessages["profileid"]["length > 20"] = "Profile ID is too long. Please use between 4 to 20 characters.";
aMessages["profileid"]["_$"] = "Incorrect format for Profile ID. Please do not end your Profile ID with an '_'.";
aMessages["profileid"]["^_"] = "Incorrect format for Profile ID. Please do not begin your Profile ID with an '_'.";
aMessages["profileid"]["numerics > 4"] = "Too many numbers in Profile ID. Please do not use more than 4 numeric characters.";
aMessages["profileid"]["login email@ same"] = "Your Profile ID & Email username (text before the @ sign) cannot be the same, for security reasons.";
aMessages["profileid"]["login email same"] = "Your Profile ID & Email Address cannot be the same, for security reasons.";
aMessages["profileid"]["check if available"] = "Checking if Profile ID is available...";
aMessages["profileid"]["check if available error"] = "A technical error occurred while processing your Profile ID request. Please type your Profile ID again.";

aMessages["email"] = new Array();
aMessages["email"]["blank"] = "Please type an Email Address.";
aMessages["email"]["invalid"] = "Incorrect Email Address format. Please use a valid Email Address.";
aMessages["email"]["@shaadi.com"] = "Incorrect Email Address. This Email Address does not exist. Please use your correct email address.";
aMessages["email"]["login email@ same"] = "Your Profile ID & Email username (text before the @ sign) cannot be the same, for security reasons.";
aMessages["email"]["login email same"] = "Your Profile ID & Email Address cannot be the same, for security reasons.";
aMessages["email"]["check if available"] = "Checking if Email Address already exists...";
aMessages["email"]["check if available error"] = "A technical error occurred while checking if your Email Address exists. Please type your Email Address again.";

aMessages["retypeemail"] = new Array();
aMessages["retypeemail"]["blank"] = "Please type your Email Address again.";
aMessages["retypeemail"]["mismatch"] = "Both the Email Addresses you typed do not match. Please use identical Email Addresses in both the form fields.";

aMessages["password1"] = new Array();
aMessages["password1"]["blank"] = "Please type a Password.";
aMessages["password1"]["\s"] = "Incorrect Password format. Please do not use spaces in your Password.";
aMessages["password1"]["length < 4"] = "Your Password is too short. Please use atleast 4 characters.";
aMessages["password1"]["length > 20"] = "Your Password is too long. Please use between 4 to 20 characters.";
aMessages["password1"]["login password same"] = "Your Profile ID & Password cannot be identical for security reasons. Please change your Profile ID or your Password.";
aMessages["password1"]["email password same"] = "Your Email Address & Password cannot be identical for security reasons. Please change your Email Address or your Password.";

aMessages["password2"] = new Array();
aMessages["password2"]["blank"] = "Please type your Password again.";
aMessages["password2"]["mismatch"] = "Both the Passwords you typed do not match. Please use identical Passwords in both the form fields.";

aMessages["fname"] = new Array();
aMessages["fname"]["blank"] = "Please type your first name.";

aMessages["lname"] = new Array();
aMessages["lname"]["blank"] = "Please type your last name.";

aMessages["gender"] = new Array();
aMessages["gender"]["blank"] = "Please select gender of the person looking to get married.";


aMessages["nationality"] = new Array();
aMessages["nationality"]["blank"] = "Please type your nationalty.";

aMessages["address"] = new Array();
aMessages["address"]["blank"] = "Please type your Address.";

aMessages["mobile"] = new Array();
aMessages["mobile"]["blank"] = "Please type your Mobile No.";

aMessages["city"] = new Array();
aMessages["city"]["blank"] = "Please type your City";

aMessages["country"] = new Array();
aMessages["country"]["blank"] = "Please select your Country.";

aMessages["telephone"] = new Array();
aMessages["telephone"]["blank"] = "Please select your Telephone Number.";

aMessages["position"] = new Array();
aMessages["position"]["blank"] = "Please select your Current Position.";

aMessages["expe"] = new Array();
aMessages["expe"]["blank"] = "Please select your Experience.";

aMessages["email"] = new Array();
aMessages["email"]["blank"] = "Please type your Email Address.";

aMessages["parent"] = new Array();
aMessages["parent"]["blank"] = "Please type your Parents / Guardian name.";

aMessages["exam1"] = new Array();
aMessages["exam1"]["blank"] = "Please type your Examination.";

aMessages["sub1"] = new Array();
aMessages["sub1"]["blank"] = "Please type your Subject.";

aMessages["yearofpassing1"] = new Array();
aMessages["yearofpassing1"]["blank"] = "Please type your Year of Passing.";

aMessages["percentage1"] = new Array();
aMessages["percentage1"]["blank"] = "Please type Percentage.";

aMessages["college1"] = new Array();
aMessages["college1"]["blank"] = "Please type your College / University.";

aMessages["bankname"] = new Array();
aMessages["bankname"]["blank"] = "Please type Bank Name.";

aMessages["branch"] = new Array();
aMessages["branch"]["blank"] = "Please type Branch Name.";

aMessages["ddno"] = new Array();
aMessages["ddno"]["blank"] = "Please type DD Number.";

aMessages["dddate"] = new Array();
aMessages["dddate"]["blank"] = "Please type DD Date.";

aMessages["dateofbirth"] = new Array();
aMessages["dateofbirth"]["blank"] = "Please select the Date of Birth of the person looking to get married.";
aMessages["dateofbirth"]["Invalid"] = "Incorrect Date of Birth. Please select the correct Date of Birth of the person looking to get married.";
//aMessages["dateofbirth"]["check if valid"] = "Checking if Date of Birth is valid...";
aMessages["dateofbirth"]["check if valid"] = "";
aMessages["dateofbirth"]["check if valid error"] = "A technical error occurred while checking the Date of Birth. Please select the Date of Birth again.";

aMessages["community"] = new Array();
aMessages["community"]["blank"] = "Please select a Religion / Community.";

aMessages["countryofresidence"] = new Array();
aMessages["countryofresidence"]["blank"] = "Please select the Country of Residence of the person looking to get married.";



aMessages["reference"] = new Array();
aMessages["reference"]["blank"] = "Please type Reference Number.";
aMessages["reference"]["check if available"] = "Checking if reference ID is available...";
aMessages["reference"]["check if available error"] = "A technical error occurred while processing your Reference ID request. Please type your reference ID again.";

// validated ajax values
sLoginValidatedVal = "";
sEmailValidatedVal = "";
sDateOfBirthValidatedVal = "";


// To trim the string in JS..
// create the prototype on the String object
String.prototype.trim = function()
{
	// skip leading and trailing whitespace
	// and return everything in between
	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 validate_login()
{
	var oField = document.forms["frm_registration"].profileid;
	var oFieldEmail = document.forms["frm_registration"].email;
	var oElement = document.getElementById('errmsg_login');

	oField.value = oField.value.trim();
	aEmailValBeforeAtSign = oFieldEmail.value.split("@");
	toggleHint('hide', 'login');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	oRegX = new RegExp(/^[0-9a-z_]+$/gi);

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["profileid"]["blank"];
		oField.className = "field_err";
	}
	else if(oField.value.length < 4)
	{
		oElement.innerHTML = aMessages["profileid"]["length < 4"];
		oField.className = "field_err";
	}
	else if(oField.value.length > 20)
	{
		oElement.innerHTML = aMessages["profileid"]["length > 20"];
		oField.className = "field_err";
	}
	else if(/_$/.test(oField.value))
	{
		oElement.innerHTML = aMessages["profileid"]["_$"];
		oField.className = "field_err";
	}
	else if(/^_/.test(oField.value))
	{
		oElement.innerHTML = aMessages["profileid"]["^_"];
		oField.className = "field_err";
	}
	else if(!oRegX.test(oField.value))
	{
		oElement.innerHTML = aMessages["profileid"]["^0-9a-z_"];
		oField.className = "field_err";
	}
	else if(oFieldEmail.value.toLowerCase() == oField.value.toLowerCase())
	{
		oElement.innerHTML = aMessages["profileid"]["login email same"];
		oField.className = "field_err";
	}
	else if(oField.value.toLowerCase() == aEmailValBeforeAtSign[0].toLowerCase())
	{
		oElement.innerHTML = aMessages["profileid"]["login email@ same"];
		oField.className = "field_err";
	}
	else if(getNoOfNumerics(oField.value) > 4)
	{
		oElement.innerHTML = aMessages["profileid"]["numerics > 4"];
		oField.className = "field_err";
	}
	else
	{
		sUrl = "checklogin.php?login=" + escape(oField.value);
		sendRequestAndGetResponse(sUrl, oElement, aMessages["profileid"]["check if available"], aMessages["profileid"]["check if available error"]);
	}


} // EO validate_login()







function getstatesbox(countriesid)
{

	sUrl = "getstatesbox.php?p=" + countriesid;
 	sendRequestAndGetResponse2(sUrl);
} // EO validate_login()



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 validate_password1()
{
	var oField = document.forms["frm_registration"].password1;
	var oFieldLogin = document.forms["frm_registration"].login;
	var oFieldEmail = document.forms["frm_registration"].email;
	var oElement = document.getElementById('errmsg_password1');

	toggleHint('hide', 'password1');
	oField.value = oField.value.trim();
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["password1"]["blank"];
		oField.className = "field_err";
	}
	else if(/\s/.test(oField.value))
	{
		oElement.innerHTML = aMessages["password1"]["\s"];
		oField.className = "field_err";
	}
	else if(oField.value.length < 4)
	{
		oElement.innerHTML = aMessages["password1"]["length < 4"];
		oField.className = "field_err";
	}
	else if(oField.value.length > 20)
	{
		oElement.innerHTML = aMessages["password1"]["length > 20"];
		oField.className = "field_err";
	}
	else if(oFieldLogin.value.toLowerCase() == oField.value.toLowerCase())
	{
		oElement.innerHTML = aMessages["password1"]["login password same"];
		oField.className = "field_err";
	}
	else if(oFieldEmail.value.toLowerCase() == oField.value.toLowerCase())
	{
		oElement.innerHTML = aMessages["password1"]["email password same"];
		oField.className = "field_err";
	}

} // EO validate_password1()



function validate_password2()
{
	var oField = document.forms["frm_registration"].password2;
	var oElement = document.getElementById('errmsg_password2');

	toggleHint('hide', 'password2');
	oField.value = oField.value.trim();
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["password2"]["blank"];
		oField.className = "field_err";
	}
	else if(document.forms["frm_registration"].password1.value.toLowerCase() != oField.value.toLowerCase())
	{
		oElement.innerHTML = aMessages["password2"]["mismatch"];
		oField.className = "field_err";
	}

} // EO validate_password2()

function validate_fname()
{
	var oField = document.forms["frm_registration"].fname;
	var oElement = document.getElementById('errmsg_fname');

	toggleHint('hide', 'fname');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["fname"]["blank"];
		oField.className = "field_err";
	}
	
}

function validate_lname()
{
	var oField = document.forms["frm_registration"].lname;
	var oElement = document.getElementById('errmsg_lname');

	toggleHint('hide', 'lname');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["lname"]["blank"];
		oField.className = "field_err";
	}
	
}

function validate_address()
{
	var oField = document.forms["frm_registration"].address;
	var oElement = document.getElementById('errmsg_address');

	toggleHint('hide', 'address');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["address"]["blank"];
		oField.className = "field_err";
	}
	
}

function validate_city()
{
	var oField = document.forms["frm_registration"].city;
	var oElement = document.getElementById('errmsg_city');

	toggleHint('hide', 'city');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["city"]["blank"];
		oField.className = "field_err";
	}
	
}


function validate_country()
{
	var oField = document.forms["frm_registration"].country;
	var oElement = document.getElementById('errmsg_country');

	toggleHint('hide', 'country');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["country"]["blank"];
		oField.className = "field_err";
	}
	
}

function validate_telephone()
{
	var oField = document.forms["frm_registration"].telephone;
	var oElement = document.getElementById('errmsg_telephone');

	toggleHint('hide', 'telephone');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["telephone"]["blank"];
		oField.className = "field_err";
	}
	
}

function validate_mobile()
{
	var oField = document.forms["frm_registration"].mobile;
	var oElement = document.getElementById('errmsg_mobile');

	toggleHint('hide', 'mobile');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["mobile"]["blank"];
		oField.className = "field_err";
	}
	
}

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_email()
{
	var oField = document.forms["frm_registration"].email;
	var oFieldLogin = document.forms["frm_registration"].login;
	var oFieldGo = document.forms["frm_registration"].go;
	var oElement = document.getElementById('errmsg_email');

	toggleHint('hide', 'email');
	oField.value = fix_email(oField.value.trim());
	aEmailValBeforeAtSign = oField.value.split("@");
	oElement.innerHTML = "";
	oField.className = "efield_filled";


	oRegX = new RegExp(/^[\w_-]+(\.[\w_-]+)*@[\w_-]+(\.[\w_-]+)*\.\w{2,4}$/gi);

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["email"]["blank"];
		oField.className = "field_err";
	}
	else if(oFieldLogin.value.toLowerCase() == oField.value.toLowerCase())
	{
		oElement.innerHTML = aMessages["email"]["login email same"];
		oField.className = "field_err";
	}
	else if(oFieldLogin.value.toLowerCase() == aEmailValBeforeAtSign[0].toLowerCase())
	{
		oElement.innerHTML = aMessages["email"]["login email@ same"];
		oField.className = "field_err";
	}
	else if(!oRegX.test(oField.value))
	{
		oElement.innerHTML = aMessages["email"]["invalid"];
		oField.className = "field_err";
	}
	

} // EO validate_email()


function validate_position()
{
	var oField = document.forms["frm_registration"].position;
	var oElement = document.getElementById('errmsg_position');

	toggleHint('hide', 'position');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["position"]["blank"];
		oField.className = "field_err";
	}
	
}

function validate_expe()
{
	var oField = document.forms["frm_registration"].expe;
	var oElement = document.getElementById('errmsg_expe');

	toggleHint('hide', 'expe');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["expe"]["blank"];
		oField.className = "field_err";
	}
	
}






function validate_parent()
{
	var oField = document.forms["frm_registration"].parent;
	var oElement = document.getElementById('errmsg_parent');

	toggleHint('hide', 'parent');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["parent"]["blank"];
		oField.className = "field_err";
	}
	
}

function validate_exam1()
{
	var oField = document.forms["frm_registration"].exam1;
	var oElement = document.getElementById('errmsg_exam1');

	toggleHint('hide', 'exam1');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["exam1"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_sub1()
{
	var oField = document.forms["frm_registration"].sub1;
	var oElement = document.getElementById('errmsg_sub1');

	toggleHint('hide', 'sub1');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["sub1"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_yearofpassing1()
{
	var oField = document.forms["frm_registration"].yearofpassing1;
	var oElement = document.getElementById('errmsg_yearofpassing1');

	toggleHint('hide', 'yearofpassing1');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["yearofpassing1"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_percentage1()
{
	var oField = document.forms["frm_registration"].percentage1;
	var oElement = document.getElementById('errmsg_percentage1');

	toggleHint('hide', 'percentage1');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["percentage1"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_college1()
{
	var oField = document.forms["frm_registration"].college1;
	var oElement = document.getElementById('errmsg_college1');

	toggleHint('hide', 'college1');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["college1"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_bankname()
{
	var oField = document.forms["frm_registration"].bankname;
	var oElement = document.getElementById('errmsg_bankname');

	toggleHint('hide', 'bankname');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["bankname"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_branch()
{
	var oField = document.forms["frm_registration"].branch;
	var oElement = document.getElementById('errmsg_branch');

	toggleHint('hide', 'branch');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["branch"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_ddno()
{
	var oField = document.forms["frm_registration"].ddno;
	var oElement = document.getElementById('errmsg_ddno');

	toggleHint('hide', 'ddno');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["ddno"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_dddate()
{
	var oField = document.forms["frm_registration"].dddate;
	var oElement = document.getElementById('errmsg_dddate');

	toggleHint('hide', 'dddate');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["dddate"]["blank"];
		oField.className = "field_err";
	}
	
}
function validate_community()
{
	var oField = document.forms["frm_registration"].community;
	var oElement = document.getElementById('errmsg_community');

	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.options[oField.selectedIndex].value == "")
	{
		oElement.innerHTML = aMessages["community"]["blank"];
		oField.className = "field_dob_err";
	}

} // EO validate_community()



function validate_countryofresidence()
{
	var oField = document.forms["frm_registration"].countryofresidence;
	var oElement = document.getElementById('errmsg_countryofresidence');

	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.options[oField.selectedIndex].value == "")
	{
		oElement.innerHTML = aMessages["countryofresidence"]["blank"];
		oField.className = "field_dob_err";
	}
}// EO validate_gender()



function validate_reference()
{
	var oField = document.forms["frm_registration"].ref;
	var oElement = document.getElementById('errmsg_reference');

	toggleHint('hide', 'ref');
	oElement.innerHTML = "";
	oField.className = "field_filled";

	if(oField.value == "")
	{
		oElement.innerHTML = aMessages["reference"]["blank"];
		oField.className = "field_err";
	}
	else
	{
		sUrl = "checkrefid.php?ref=" + escape(oField.value);
		sendRequestAndGetResponse(sUrl, oElement,aMessages["reference"]["check if available"], aMessages["reference"]["check if available error"]);
	}
}
	

 




