function showHidecity()
{
	if(document.forms[0].country.value=="99")	
	{
		document.getElementById("div_city").style.display			= "block";
		document.getElementById("div_city").style.visibility		= "visible";
	}
	else
	{
		document.getElementById("div_city").style.display			= "none";
		document.getElementById("div_city").style.visibility		= "hidden";
		document.getElementById("div_othcity").style.display		= "none";
		document.getElementById("div_othcity").style.visibility		= "hidden";
		document.forms[0].city.value								= "";
		document.forms[0].othercity.value							= "";
	}

}


function showothcity()
{
	if(document.forms[0].city.value=="Other")	
	{
		if(document.forms[0].othercity.value == "") {
			document.forms[0].othercity.value						= "Enter your city here";
		}		
		document.getElementById("div_othcity").style.display		= "block";
		document.getElementById("div_othcity").style.visibility		= "visible";
	}
	else
	{
		document.forms[0].othercity.value							= "";
		document.getElementById("div_othcity").style.display		= "none";
		document.getElementById("div_othcity").style.visibility		= "hidden";
	}
}

function chk_altemailID()	{

	if(!document.forms[0].chk_altemail.checked)	{
		document.getElementById("altid_msg").innerHTML				= "<font class=f13>&nbsp;Click if you don't have an alternate ID</font>";
		document.forms[0].altemail.value							= "";
		document.getElementById("div_altemail").style.display		= "block";
		document.getElementById("div_altemail").style.visibility	= "visible";
		document.getElementById("div_hintQS").style.display			= "none";
		document.getElementById("div_hintQS").style.visibility		= "hidden";

	} else {
		document.getElementById("altid_msg").innerHTML				= "<font class=f13>&nbsp;Click if you have an alternate ID</font>";
		document.forms[0].hintq.value								= "";
		document.forms[0].hinta.value								= "";
		document.forms[0].mothername.value							= "";
		document.getElementById("div_altemail").style.display		= "none";
		document.getElementById("div_altemail").style.visibility	= "hidden";
		document.getElementById("div_hintQS").style.display			= "block";
		document.getElementById("div_hintQS").style.visibility		= "visible";
	}

}
function chk_altemailID_bol()	{

	if(!document.forms[0].chk_altemail.checked)	{
		document.getElementById("altid_msg").innerHTML				= "<font class=f12>&nbsp;Click if you don't have an alternate ID</font>";
		document.forms[0].altemail.value							= "";
		document.getElementById("div_altemail").style.display		= "block";
		document.getElementById("div_altemail").style.visibility	= "visible";
		document.getElementById("div_hintQS").style.display			= "none";
		document.getElementById("div_hintQS").style.visibility		= "hidden";

	} else {
		document.getElementById("altid_msg").innerHTML				= "<font class=f12>&nbsp;Click if you have an alternate ID</font>";
		document.forms[0].hintq.value								= "";
		document.forms[0].hinta.value								= "";
		document.forms[0].mothername.value							= "";
		document.getElementById("div_altemail").style.display		= "none";
		document.getElementById("div_altemail").style.visibility	= "hidden";
		document.getElementById("div_hintQS").style.display			= "block";
		document.getElementById("div_hintQS").style.visibility		= "visible";
	}

}
function UncheckAllOptions() {
	
	if(document.getElementById("radio_login")) {
		if(document.forms[0].radio_login.length)  {
			for (counter = 0; counter < document.forms[0].radio_login.length; counter++) {
				document.forms[0].radio_login[counter].checked = false;	
			}
		} else { // if else of single radio button is there
				document.forms[0].radio_login.checked = false;	
		}
	} // if radio button exists 
}

function isDate()	{
	var yy,mm,dd;
	var im,id,iy;
	var present_date = new Date();
	yy = 1900 + present_date.getYear();
	if (yy > 3000)	{
		yy = yy - 1900;
	}
	mm = present_date.getMonth();
	mm = mm + 1;
	dd = present_date.getDate();
	im = document.forms[0].DOB_Month.selectedIndex;
	var entered_month = document.forms[0].DOB_Month.options[im].value;
	var invalid_month = document.forms[0].DOB_Month.options[im].value-1;
	var entered_day = document.forms[0].DOB_Day.value;
	var entered_year = document.forms[0].DOB_Year.value;
	if ( (entered_day == 0) || (entered_month == 0) || (entered_year == 0) )	{
		alert("Please enter your birthday");
		return false;
	}
	if ( is_valid_day(invalid_month,entered_day,entered_year) )	{
		return true;
	}
	return false;
}

function is_valid_day(entered_month,entered_day,entered_year)	{
	
	if ((entered_year % 4) == 0)
	{
		var days_in_month = "312931303130313130313031";
 	}
 	else	{

		var days_in_month = "312831303130313130313031";
 	}
	if (entered_month != -1)
	{
		if ( parseInt(entered_day) > parseInt(days_in_month.substring(2*entered_month,2*entered_month+2)) )
		{
			alert ("The birthday field is entered wrongly (the day field value exceeds the number of days for the month entered).");
			return false;
		}
	}
	return true;
}

// Login Validator
function isLogin()	{
	var str = document.forms[0].login.value;

	if (str == "")	{	// is not null
			alert("\ID cannot be blank, please enter your desired ID")
			document.forms[0].login.focus();
			return false;
	}
	
	for (var i = 1; i < str.length; i++)	{ // shud contain only alphanumeric values and shud _ and .
		var ch = str.substring(i, i + 1);
		if ( ((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '_') && (ch != '.'))
		{
			alert("\nThe ID field  accepts letters,numbers & underscore.\n\nPlease re-enter your ID.");
			document.forms[0].login.select();
			document.forms[0].login.focus();
			return false;
		}
	}
	
	var regex_login_end		= /[A-Za-z0-9]$/ ;
	var	regex_login_start	= /^[A-za-z]/;

	if(  document.forms[0].login.value.search(regex_login_start) == -1 ) {
		alert("ID should begin with an alphabetic character");
		document.forms[0].login.focus;
		return false;
	}

	if(  document.forms[0].login.value.search(regex_login_end) == -1 ) {
		alert("ID should not end with special characters");
		document.forms[0].login.focus;
		return false;

	}

//
	return true;
}

// Password Validator
function isPass()	{
	var str = document.forms[0].passwd.value;
	if ((str == "") || (str.length < 6))
	{
		alert("\nThe password field is either empty or less than 6 chars.\n\nPlease enter your password.")
		document.forms[0].passwd.focus();
		return false;
	}
	var str2 = document.forms[0].confirm_passwd.value;
	if (str != str2)
	{
		alert("Passwords typed do not match, please re-enter your passwords.\n\n");
		return false;
	}
	return true;
}

// Name Validator
function isFullName()	{
	var name1 = document.forms[0].name.value;
	var regex_for_name	= /^[A-Za-z]+ [A-Za-z]+$/
	var alt_regex_for_name	= /^[A-Za-z]+$/
	if(   (name1.search(regex_for_name) != -1)  || (name1.search(alt_regex_for_name) != -1 ) ) {
			return true;
	} else {
		alert("Name is invalid");
		document.forms[0].name.focus();
		return	false;	
	}

}

function validate(FormName)	{

	var radio_login_value = '';

	if(document.getElementById("radio_login")) {
		
		var radio_login_checked = false;
		var counter	;

		if(document.forms[0].radio_login.length)  {
        for (counter = 0; counter < document.forms[0].radio_login.length; counter++) {

			if(document.forms[0].radio_login[counter].checked) {
				radio_login_checked	= true;
				radio_login_value	= document.forms[0].radio_login[counter].value;	
			}

		}
		
		} else {
			
			if(document.forms[0].radio_login.checked) {
				radio_login_checked	= true;
				radio_login_value	= document.forms[0].radio_login.value;				
			}

		}

	}


	if ( isFullName() == false )	{	 // Checks the First Name and Last Name
		return false;			
	} // End of check first and Last Name

	if (radio_login_value == '') { 
		if((isLogin() == false) )	{	// Checks the Login Id
			return false;
		}
	}

	if (isPass() == false)	{	// Checks the password and Confirm Password
		return false;
	}

	if(!document.forms[0].chk_altemail.checked) { // check altemail Address
		if(!ValidateAltEmail()) 
			return false;
	} else { // Check Hitnq,Hinta and mother maiden name
	
		if(document.forms[0].hintq.value=="")	{	
				alert("Please select the hint question.");
				document.forms[0].hintq.focus();
				return false;
		}
		if(document.forms[0].hinta.value=="")	{
				alert("The hint answer field is empty.");
				document.forms[0].hinta.focus();
				return false;
		}
		if(document.forms[0].mothername.value=="")	{
				alert("Please enter your mother's name.");
				document.forms[0].mothername.focus();
				return false;
		}

	}
	
	if((document.forms[0].country.value=="99") && (document.forms[0].city.value=="Other") && ( (document.forms[0].othercity.value=='') || (document.forms[0].othercity.value=='Enter your city here') ) )		{
		alert("Please enter city name");
		document.forms[0].othercity.focus;
		return false ;
	}

	if( (document.forms[0].country.value=="99") && (document.forms[0].city.value=="") ) {
		alert("Please select city");
		document.forms[0].city.select;
		return false ;
	}

/* Additional validations for Birth date begins*/
	if(document.forms[0].DOB_Month.value == "")
	{
		alert("Select a month of birth");
		document.forms[0].DOB_Month.focus();
		return false;	
	}
	if(isNaN(document.forms[0].DOB_Day.value))
	{
		alert("Enter a valid date of birth");
		document.forms[0].DOB_Day.value="";
		document.forms[0].DOB_Day.focus();
		return false;
	}
	if(document.forms[0].DOB_Day.value <= 0 || document.forms[0].DOB_Day.value > 31 )
	{
		alert("Enter a valid date of birth");
		document.forms[0].DOB_Day.value="";
		document.forms[0].DOB_Day.focus();
		return false;
	}
	if(isNaN(document.forms[0].DOB_Year.value))
	{
		alert("Enter a valid year of birth");
		document.forms[0].DOB_Year.value="";
		document.forms[0].DOB_Year.focus();
		return false;
	}
	var present_date = new Date();
        curr_year       = 1900 + present_date.getYear();
        if (curr_year > 3000)  {
                curr_year = curr_year - 1900;
        }	
	if(document.forms[0].DOB_Year.value <= 1900 || document.forms[0].DOB_Year.value > curr_year )
	{
		alert("Enter a valid year of birth");
		document.forms[0].DOB_Year.value="";
		document.forms[0].DOB_Year.focus();
		return false;
	}
/* Additional validations for Birth date ends */

	if (isDate() == false)	{	// Checks the Date of Birth
		return false;
	}

	if(document.forms[0].gender.value=="")	{
		alert("Please select gender.");
		document.forms[0].gender.focus();
		return false;
	}
	
	if(document.forms[0].country.value=="")	{
		alert("Please select country.");
		document.forms[0].country.focus();
		return false;
	}

	//if(document.forms[0].imagetext.value == "" || document.forms[0].imagetext.value == "Enter the code in the image") {
	//	alert("To confirm your registration, please enter the number as shown in the box");
	//	document.forms[0].imagetext.focus();
//		return false;
//	}
	if(radio_login_value != '')	{
		if(radio_login_value == document.forms[0].passwd.value){
			alert("ID cannot be same as password ");
			return false;
		}
	} else {
		if(document.forms[0].login.value == document.forms[0].passwd.value){
			alert("ID cannot be same as password ");
			document.forms[0].passwd.focus;
			return false;
		}		
	}

	if(radio_login_value != '') {
		document.forms[0].login.value = radio_login_value;
	}

	document.forms[0].Register.value		= 'Registering..';
	document.forms[0].Register.disabled		= true;
	document.forms[0].Cancel.disabled		= true;
	
	document.forms[0].FormName.value	= FormName;
	document.forms[0].submit();
	return true;

} // End of Function Validate

//function RegValue(FieldName) {

//	if(FieldName.value == 'Enter the code in the image') 
//		FieldName.value = '';
//}

function AssignOriginalValue(FieldName) {

	if(FieldName.value == '') 
		FieldName.value = 'Enter the code in the image';

}

function SubmitExtraDetails() {
		document.forms[0].FormName.value= 'mail_interests_db';
		document.forms[0].submit();
}


function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid alternate email")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid alternate email")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid alternate email")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid alternate email")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid alternate email")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid alternate email")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid alternate email")
		    return false
		 }

 		 return true					
	}


function ValidateAltEmail() {

	var emailID=document.forms[0].altemail;
	
	if(emailID.value == '' ) {
		alert("Invalid alternate email");
		return false;	
	}
	
	if (echeck(emailID.value)==false) {
			emailID.focus()
			return false
	}
	
	return true;
 }







//----------------------------------------START OF AJAX FUNCTIONS----------------------------------------//

var cc	= window;
var ce	= eval; 
var u	= true; 
var reqs;
var timerid; 
messageid	= "check_availability" ;
gmessageid	= "check_availability" ;

function getreplies(loginid,name)	
{
	if(name == '' ) {
		fname	= '';
		lname	= '';
	} else {
		if(isFullName() == false) 
			return false;
		else {
			if(name.indexOf(" ") == -1) {
				fname	= name;
				lname	= '';
			} else {
				name_array	= name.split(" ");
				fname		= name_array[0];
				lname		= name_array[1];
			}
		}
	}

	
	var randomkey = Math.floor(Math.random() * 1000000); 
	gr(gmessageid).style.visibility		= 'visible';
	gr(gmessageid).style.display		= 'block';
	gr(gmessageid).style.height     = '20px';
	gr(gmessageid).innerHTML			= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#000000><B>Checking availability...</B></font>";
	generated_url						= "includes/checkavailability.php?login="+loginid+"&fname="+fname+"&lname="+lname+ "&rkey="  + randomkey;
	callURL("reqs",generated_url,"GET",processReqGetReplies);
	if(timerid) clearInterval(timerid);
        timerid = setInterval(timedout, 30000);

}



function callURL(req,requrl,method,processor)
{

    var senddata;
	if(method=="POST")
	{
		var ar = requrl.split("?", 2);
		senddata = ar[1];
		requrl = ar[0];
	}
    if(cc.XMLHttpRequest)
    {
        ce(req+" = new XMLHttpRequest();");
        ce(req).onreadystatechange=processor;
        ce(req).open(method,requrl,u);
        if(method=="POST")
        {
            ce(req).setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            ce(req).send(senddata);
        }
        else
            ce(req).send(null);
    }
    else if(cc.ActiveXObject)
    {
        isIE=u;
        ce(req+" = new ActiveXObject(\"Microsoft.XMLHTTP\");");
        if(ce(req))
        {
            ce(req).onreadystatechange=processor;
            ce(req).open(method,requrl,u);
            if(method=="POST")
            {
                ce(req).setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                ce(req).send(senddata);
            }
            else
                ce(req).send();
        }
    }
    else
    {
		mull=0
	}
	
}

function processReqGetReplies()
{
	
}


function gr(LayerName) {
		return document.getElementById(LayerName) ;

}
function timedout()
{
        clearInterval(timerid);
        //alert("timedout");
	 gr(gmessageid).style.visibility         = 'visible';
        gr(gmessageid).style.display            = 'block';
	gr(gmessageid).style.height     = '20px';
        gr(gmessageid).innerHTML                        = "<font color=#000000><B>Unable to process this request currently.Please continue with registration.</B></font>";
        if(reqs)
        {
                reqs.abort();
        }
}

//---------------------------------------- END OF AJAX FUNCTIONS  ----------------------------------------//
