var len;
var indexes;
var arrStateCity;
var arrStateCityVals;
var arrState;
var arrStateVals;
var arrCity;
var arrCityVals;
var val;
var count;
var form;
var dlen;
var dindexes;
var dval;
var dval2;
var dcount;
var arrDegreeSpec;
var arrDegreeSpecVals;
var arrFunctSpec;
var arrFunctSpecVals;
var validWorldPhoneChars = "0123456789-+ ";
var validNumbers = "0123456789";
// ********
      function checkvalidate(frm)
      {
       var passfieldstrname,passfieldstr,passdisplaystr;
	   for(i=0;i<=frm.length-1;i++)
       {  
         	passfieldstrname = frm.elements[i].name;
	        passfieldstr     = frm.elements[i].value;		

				//alert("After For "+ i +" "+passfieldstrname );

				if(frm.elements[i].getAttribute("validate"))
				{
				   passdisplaystr   = frm.elements[i].getAttribute("displaymessage");
				   var s;
				   s=frm.elements[i].getAttribute("validate");  
				   var val_array=s.split(",");
				   var part_num=0;

				   //		alert("b4 while"+passfieldstrname );

					   while (part_num < val_array.length)
						{
						  switch(val_array[part_num])
						  {
							case "checkdelimeter":
								   //alert(passfieldstrname + "  Case " + val_array[part_num] );								   

								      for (k = 0; k < passfieldstr.length; k++) { 
											Char = passfieldstr.charAt(i); 
											j=k+1;
											if (Char == "<" && j <= passfieldstr.length ) {
													if (sText.charAt(j)=="\""){ 
														alert(passdisplaystr +" Don't Use < After ? Or ? After > Characters");
														return(0);
													}
												}
								  			}						   
									break;
						  } 

						 part_num+=1;
						}  //while 
				} //if
       } // for

      return(1);
      }   //main

function checkstdelimeter(sText,actualval,name1)
{
	sText = actualval;
   for (i = 0; i < sText.length; i++) { 
			Char = sText.charAt(i); 
			j=i+1;
			if (Char == "<" && j <= sText.length ) {
					if (sText.charAt(j)=="\""){ 
						alert(name1 +" Don't Use < After ? Or ? After > Characters");
						return(0);
					}
				}
  }  

  for (i = 0; i < sText.length; i++) { 
			Char = sText.charAt(i); 
			j=i+1;
			if (Char == "\"" && j <= sText.length ) {
					if (sText.charAt(j)==">"){ 
							alert(name1 +" Don't Use < After ? Or ? After > Characters");
							return(0);
					}
				}
  }
    return(1);
}

function isAlphabetic(sText)
	{
		   var ValidChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. ';
    	   var IsValid=true;
		   var Char;
		   for (i = 0; i < sText.length && IsValid == true; i++) 
			    { 
			        Char = sText.charAt(i); 
			        if (ValidChars.indexOf(Char) == -1) 
				        {
				            IsValid = false;
				        }
			    }
		    return IsValid;
	}	

function loadFunctSpecDDStartup(form, field1, field2){
	//alert('loadFunctSpecDDStartup');
	dlen = form.elements[field2].options.length;
	arrFunctSpec = new Array(len);
	arrFunctSpecVals = new Array(len);
	for (var i=0;i<dlen;i++) {
		arrFunctSpecVals[i] = form.elements[field2].options[i].value;
		arrFunctSpec[i] = form.elements[field2].options[i].text;
	}	
	dcount=0;
	var dselcount= new Array(dlen);
	dval2 = new Array(dlen);
	//dval = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	var klen=0;
	var dl=form.elements[field1].options.length;
	//alert("dl "+dl);
	var dval_func=new Array(dl);
	for(var ilen=0;ilen<dl;ilen++)
	{
		if(form.elements[field1].options[ilen].selected)
		{
			dval_func[klen] = form.elements[field1].options[ilen].value;
			klen++;
		}
	}
	if(klen==0)
	{
		for(var t=0;t<dl;t++)
		{
			dval_func[klen] = form.elements[field1].options[t].value;
				klen++;
		}
	}

	var i=0;
	var ii=0;
	var k=0;
	for(i=0,k=0;i<dlen;i++)
	{		
		if(form.elements[field2].options[i].selected)
		{
			dval2[k] = form.elements[field2].options[i].value;
			k++;
		}
	}	
	dindexes = new Array(dlen);
	for(var n=0;n<klen;n++){
		if(parseInt(dval_func[n]) == -1){
			form.elements[field2].options.length=0;
			form.elements[field2].options.length += 1;
			form.elements[field2].options[0].value = -1;
			form.elements[field2].options[0].text = "No Preference";
			form.elements[field2].selectedIndex = 0; 
			return;
		}
	}
}
// ********

function loadFunctSpecDD(form, field1, field2){
	dlen = form.elements[field2].options.length;
	arrFunctSpec = new Array(len);
	arrFunctSpecVals = new Array(len);
	for (var i=0;i<dlen;i++) {
		arrFunctSpecVals[i] = form.elements[field2].options[i].value;
		arrFunctSpec[i] = form.elements[field2].options[i].text;
	}	
	dcount=0;
	var dselcount= new Array(dlen);
	dval2 = new Array(dlen);
	//dval = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	var klen=0;
	var dl=form.elements[field1].options.length;
	var dval_func=new Array(dl);
	for(var ilen=0;ilen<dl;ilen++)
	{
		if(form.elements[field1].options[ilen].selected)
		{
			dval_func[klen] = form.elements[field1].options[ilen].value;
			klen++;
			}	
	}
	if(klen==0)
	{
		for(var t=0;t<dl;t++)
		{
			dval_func[klen] = form.elements[field1].options[t].value;
				klen++;
		}
	}

	var i=0;
	var ii=0;
	var k=0;
	for(i=0,k=0;i<dlen;i++)
	{	
		if(form.elements[field2].options[i].selected)
		{
			dval2[k] = form.elements[field2].options[i].value;
			k++;
		}
	}	

	dindexes = new Array(dlen);
	for (i=0,ii=0;i<dlen;i++)
	{
		for(var n=0;n<klen;n++){
			if (form.elements[field2].options[i].value.substring(0,2) == dval_func[n])
			{
				for(var kk=0;kk<i;kk++)
				{
					if(form.elements[field2].options[i].value == dval2[kk])
					{
						dselcount[ii] = i;
						ii++;
					}
				}	

				dindexes[dcount] = i;
				dcount = dcount+1;
			}
		}
	}

	form.elements[field2].options.length=0;
	var sel = -1;
	for (var i=0;i<dcount;i++) { 
		var j = dindexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrFunctSpecVals[j];
		form.elements[field2].options[i].text = arrFunctSpec[j];
		for(var kk=0;kk<ii;kk++)
		{
			if(j == dselcount[kk])
			{
				form.elements[field2].options[i].selected =true; 	
			}
		}
	}

	for(var n=0;n<klen;n++){
		if(parseInt(dval_func[n]) == -1){
			form.elements[field2].options.length=0;
			form.elements[field2].options.length += 1;
			form.elements[field2].options[0].value = -1;
			form.elements[field2].options[0].text = "No Preference";
			form.elements[field2].selectedIndex = 0; 
			return;
			}
	}
}

function changeFunctSpec(form,field1,field2) {
	dlen = form.elements[field1].options.length;
	dcount=0;
	var dval_func=new Array(dlen);
	var klen=0;
//val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	for(var ilen=0;ilen<dlen;ilen++)
	{
		if(form.elements[field1].options[ilen].selected)
		{
			dval_func[klen] = form.elements[field1].options[ilen].value;
			klen++;
		}	
	}

for(var n=0;n<klen;n++){
	if(parseInt(dval_func[n]) == -1){
		form.elements[field2].options.length=0;
		form.elements[field2].options.length += 1;
		form.elements[field2].options[0].value = -1;
		form.elements[field2].options[0].text = "No Preference";
		form.elements[field2].selectedIndex = 0; 
		return;
	}
}

	dindexes = new Array(dlen);
	for (var i=0;i<arrFunctSpecVals.length;i++) 
	{
	for(var k=0;k<=klen;k++)
		{
			if (arrFunctSpecVals[i].substring(0,2) == dval_func[k])
			{ 
				dindexes[dcount] = i;
				dcount = dcount+1;
			}
		}
	}

	form.elements[field2].options.length=0;
	var sel = 0;
	for (i=0;i<dcount;i++) { 
		var j = dindexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrFunctSpecVals[j];
		form.elements[field2].options[i].text = arrFunctSpec[j];
	}
}
function loadStateCityDD(form, field1, field2){
	len = form.elements[field2].options.length;
	arrStateCity = new Array(len);
	arrStateCityVals = new Array(len);

	for (var i=0;i<len;i++) {
		arrStateCityVals[i] = form.elements[field2].options[i].value;
		arrStateCity[i] = form.elements[field2].options[i].text;
	}	

	count=0;
	val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	indexes = new Array(len);
	for (var i=0;i<len;i++) {
		if (form.elements[field2].options[i].value.substring(0,3) == val) { 
			indexes[count] = i;
			count = count+1;
		}
	}

	form.elements[field2].options.length=0;
	var sel = -1;
	for (var i=0;i<count;i++) { 
		var j = indexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrStateCityVals[j];
		form.elements[field2].options[i].text = arrStateCity[j];
		if(parseInt(form.elements[field2].options[i].value) == 198185)
			form.elements[field2].selectedIndex = i;
	}

	if(parseInt(val) == -1){
		form.elements[field2].options.length=0;
		form.elements[field2].options.length += 1;
		form.elements[field2].options[0].value = -1;
		form.elements[field2].options[0].text = "No Preference";
		form.elements[field2].selectedIndex = 0; 
		return;
	}
}

function loadSearchStateCityDD(form, field1, field2){
	len = form.elements[field2].options.length;
	arrStateCity = new Array(len);
	arrStateCityVals = new Array(len);

	for (var i=0;i<len;i++) {
		arrStateCityVals[i] = form.elements[field2].options[i].value;
		arrStateCity[i] = form.elements[field2].options[i].text;
	}	

	count=0;
	val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	indexes = new Array(len);
	for (var i=0;i<len;i++) {
		if (form.elements[field2].options[i].value.substring(0,3) == val) { 
			indexes[count] = i;
			count = count+1;	
		}
	}

	form.elements[field2].options.length=0;
	var sel = -1;
		form.elements[field2].options.length=0;
		form.elements[field2].options.length += 1;
		form.elements[field2].options[0].value = -1;
		form.elements[field2].options[0].text = "No Preference";
	for (var i=0;i<count;i++) { 
		var j = indexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i+1].value = arrStateCityVals[j];
		form.elements[field2].options[i+1].text = arrStateCity[j];
	}

		form.elements[field2].selectedIndex = 0; 
		return;
}

function loadStateDD(form, field1, field2){
	len = form.elements[field2].options.length;
	arrState = new Array(len);
	arrStateVals = new Array(len);

	for (var i=0;i<len;i++) {
		arrStateVals[i] = form.elements[field2].options[i].value;
		arrState[i] = form.elements[field2].options[i].text;
	}
	count=0;
	val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	indexes = new Array(len);
	for (var i=0;i<len;i++) {
		if (form.elements[field2].options[i].value.substring(0,3) == val) { 
			indexes[count] = i;
			count = count+1;	
		}
	}

	form.elements[field2].options.length=0;
	var sel;
	for (var i=0;i<count;i++) { 
		var j = indexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrStateVals[j];
		form.elements[field2].options[i].text = arrState[j];
		if(parseInt(form.elements[field2].options[i].value) == parseInt(form.hidState.value))
			sel = i;
	}
	form.elements[field2].selectedIndex = sel;
}

function loadCityDD(form, field1, field2){
	len = form.elements[field2].options.length;
	arrCity = new Array(len);
	arrCityVals = new Array(len);

	for (var i=0;i<len;i++) {
		arrCityVals[i] = form.elements[field2].options[i].value;
		arrCity[i] = form.elements[field2].options[i].text;
	}

	count=0;
	val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	indexes = new Array(len);
	for (var i=0;i<len;i++) {
		if (form.elements[field2].options[i].value.substring(0,6) == val) { 
			indexes[count] = i;
			count = count+1;
		}
	}

	form.elements[field2].options.length=0;
	var sel;
	for (var i=0;i<count;i++) {
		var j = indexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrCityVals[j];
		form.elements[field2].options[i].text = arrCity[j];
		if(parseInt(form.elements[field2].options[i].value) == parseInt(form.hidCity.value))
			sel = i;
	}
	form.elements[field2].selectedIndex = sel;
}

function changeStateCity(form,field1,field2) {
	len = arrStateCityVals.length;
	count=0;
	val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	if(parseInt(val) == -1){
		form.elements[field2].options.length=0;
		form.elements[field2].options.length += 1;
		form.elements[field2].options[0].value = -1;
		form.elements[field2].options[0].text = "No Preference";
		form.elements[field2].selectedIndex = 0; 
		return;
	}
	indexes = new Array(len);
	for (var i=0;i<len;i++) {
		if (arrStateCityVals[i].substring(0,3) == val) { 
			indexes[count] = i;
			count = count+1;
		}
	}
	form.elements[field2].options.length=0;
	var sel = 0;
	for (i=0;i<count;i++) { 
		var j = indexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrStateCityVals[j];
		form.elements[field2].options[i].text = arrStateCity[j];
		if(parseInt(form.elements[field2].options[i].value) == 198185)
			sel = i;
	}
	form.elements[field2].selectedIndex = sel;
}
/*----  Added for search forms only*/
function changeSearchStateCity(form,field1,field2) {
	len = arrStateCityVals.length;
	count=0;
	val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	if(parseInt(val) == -1){
		form.elements[field2].options.length=0;
		form.elements[field2].options.length += 1;
		form.elements[field2].options[0].value = -1;
		form.elements[field2].options[0].text = "No Preference";
		form.elements[field2].selectedIndex = 0; 
		return;
	}
	indexes = new Array(len);
	for (var i=0;i<len;i++) {
		if (arrStateCityVals[i].substring(0,3) == val) { 
			indexes[count] = i;
			count = count+1;
		}
	}
	form.elements[field2].options.length=0;
	form.elements[field2].options.length += 1;
	form.elements[field2].options[0].value = -1;
	form.elements[field2].options[0].text = "No Preference";
	for (i=1;i<=count;i++) { 
		var j = indexes[i-1];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrStateCityVals[j];
		form.elements[field2].options[i].text = arrStateCity[j];
	}
	form.elements[field2].selectedIndex = 0;
}
/*----*/
function changeState(form,field1,field2,field3) {
	len = arrStateVals.length;
	count=0;
	val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	indexes = new Array(len);
	for (var i=0;i<len;i++) {
		if (arrStateVals[i].substring(0,3) == val) { 
			indexes[count] = i;
			count = count+1;
		}
	}

	form.elements[field2].options.length=0;
	var sel = 0;
	for (i=0;i<count;i++) { 
		var j = indexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrStateVals[j];
		form.elements[field2].options[i].text = arrState[j];
		if(parseInt(form.elements[field2].options[i].value) == 198103)
			sel = i;
	}
	form.elements[field2].selectedIndex = sel;
	changeCity(form,field2,field3);
}
function changeCity(form,field1,field2) {
	len = arrCityVals.length;
	count=0;
	val = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	indexes = new Array(len);
	for (var i=0;i<len;i++) {
		if (arrCityVals[i].substring(0,6) == val) { 
			indexes[count] = i;
			count = count+1;
		}
	}
	form.elements[field2].options.length=0;
	var sel = 0;
	for (i=0;i<count;i++) { 
		var j = indexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrCityVals[j];
		form.elements[field2].options[i].text = arrCity[j];
		if(parseInt(form.elements[field2].options[i].value) == 198103100)
			sel = i;
	}
	form.elements[field2].selectedIndex = sel;
	}
function checkPositiveInteger(field,name) {
		var fieldValue = field.value;
		//Check for non-integer or negative entries 
		if(isNaN(fieldValue) || parseInt(fieldValue) <= 0 || fieldValue.indexOf(".") != -1)
		{
			field.focus();
			if(name != null)
				alert("Please provide a numeric value for "+name);
			else
				alert("Please provide a numeric value only.");
			field.select();
			field.focus();
			return false;
		}
		return true;
}

function checkFloat(field,name) {
		var fieldValue = field.value;
		//Check for negative entries 
		if(isNaN(fieldValue) || parseInt(fieldValue) <= 0)
		{
			field.focus();
			if(name != null)
				alert("Please provide a numeric value for "+name);
			else
				alert("Please provide a numeric value only.");
			field.select();
			field.focus();
			return false;
		}
		if(fieldValue.indexOf(".") != -1)
		{
			var substring1 = fieldValue.substring(fieldValue.indexOf(".")+1,fieldValue.length);
			if(substring1.length > 2)
			{
			field.focus();
			if(name != null)
				alert("Please provide only two digits after decimal for "+name);
			else
				alert("Please provide only two digits after decimal.");
			field.select();
			field.focus();
			return false;
			}	
		}
		return true;
}
function trim( instr ) {

    	var reFirst = /\S/;		// regular expression for first non-white char
    	var reLast = /\s+$/;	// regular expression for first white char after last non-white char
    	var firstChar = instr.search(reFirst);
    	var lastChar = instr.search(reLast);	
    	if( lastChar == -1 ) 
			lastChar = instr.length;    
    	outstr = instr.substring( firstChar, lastChar );
    	return outstr;
		}
function checkBlank(field,name)
{
	if(trim(field.value) == "")
		{	
		field.focus();
		if(name != null)
			alert(name+" field should not be blank.");
		else
			alert("This field should not be blank.");
		field.value = "";
		field.focus();
		return false;
	}
	return true;
}
//New function added to display correct error/ warning msgs.
function checkBlankNew(field,msg)
{
	if(trim(field.value) == "")
	{	
		field.focus();
		if(msg != null)			
			alert(msg);
		else
			alert("This field is Mandatory");
		field.value = "";
		field.focus();
		return false;
	}
	return true;
}
function replaceQuotes(field){
	if(trim(field.value) != ""){
		if(!parseText(field.value,field))
		{
			alert(" Please Enter Valid Characters  " ) ;
			field.focus();
			return false;
		}
		var myRegExp = /'/g;
		var newString = field.value.replace(myRegExp,"`");
		field.value = newString;
	}
	return true;
}

function isEmail (emailIn){
	var isEmailOk = false;
	var filter = /^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9-]+(\.[a-zA-Z][a-zA-Z-]+)+$/
	if(emailIn.search(filter) != -1)
		isEmailOk = true;
	if(emailIn.indexOf("..") != -1)
		isEmailOk = false;
	if(emailIn.indexOf(".@") != -1)
		isEmailOk = false;
	return isEmailOk;
} // Ends 
function MultipleEmail (emailIn){
	var isEmailOk = false;
	var filter = /^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9-]+(\.[a-zA-Z][a-zA-Z-]+)+$/
	var LastCommaIndex = emailIn.lastIndexOf(',');	
	var separator = ",";
	lastemail = emailIn.substring(LastCommaIndex,emailIn.length);
	emailIn = emailIn.substring(0,emailIn.length);
	if (lastemail.length > 1)
	{ }
	else
	{
		emailIn = emailIn.substring(0,LastCommaIndex);
	}
	var arrayOfStrings = emailIn.split(separator);
	var sizeArr  = arrayOfStrings.length;
	for (em=0;em<sizeArr ;em++ )
	{
		getemailIn = arrayOfStrings[em];
		if(getemailIn.search(filter) != -1)
		{
			isEmailOk = true;
		}
		else
		{
			isEmailOk = false;
			break;
		}
		if(getemailIn.indexOf("..") != -1)
		{
			isEmailOk = false;
		}
		if(getemailIn.indexOf(".@") != -1)
		{
			isEmailOk = false;
		}
		emailIn ="";
	}

	return isEmailOk;
} // Ends

function isSms (sms)
{
	var isSmsOk = false;
	var filter = /^[\+]?[0-9]{10,}\@[a-zA-Z0-9]+(\.[a-zA-Z][a-zA-Z]+)+$/
	if(sms.search(filter) != -1)
		isSmsOk = true;
	return isSmsOk;
}
function validateContactDetailForm(frm)
{	
	if(  frm.chkEmail.checked==false && frm.chkPostalAddress.checked==false  ) {
		alert("Please select atleast one option for contact details.");
		frm.chkEmail.focus();
		return false;
	}
	if(frm.chkEmail.checked && frm.rdoEmail[1].checked) {
		if(!isEmail(trim(frm.txtEmail2.value))){
			alert("Email format is not correct. \nThe entry should be of type 'a@b.c', where 'c' is a valid domain name or a 2-letter country code.");
			frm.txtEmail2.select();
			frm.txtEmail2.focus();
			return false;
		}
		if (!replaceQuotes(frm.txtEmail2))
		{
			return false;
		}
	}
	if(frm.chkPostalAddress.checked)
	{
		if (!replaceQuotes(frm.txtAddress1))
		{
			return false;
		}
		if (!replaceQuotes(frm.txtAddress2))
		{
			return false;
		}
		if (!replaceQuotes(frm.txtTelOff))
		{
			return false;
		}
		if (!replaceQuotes(frm.txtTelOther))
		{
			return false;
		}
	}

	if(frm.chkPostalAddress.checked)
	{
		if(trim(frm.txtPinCode.value) != "")
		if(!checkPositiveInteger(frm.txtPinCode))
		 return false;
	}
	if(frm.chkTerms != null && frm.chkTerms.checked == false)
	{
	var retVal = confirm("Yes! I agree with the Terms of Use.");
		if(retVal){
			frm.chkTerms.checked = true;
			return true;
		}
		else
			return false;
			}
	return true;
}
function checkDate(day,month,year){
	var dd = parseInt(day.options[day.selectedIndex].value);
	var mm = parseInt(month.options[month.selectedIndex].value);
	var yyyy = parseInt(year.options[year.selectedIndex].value);
	if((mm == 4 || mm == 6 || mm == 9 || mm == 11) && (dd > 30))
	{
		alert("Please select a valid date");
		day.focus();
		return false;
	}
	if(mm == 2)
	{
		if(dd > 29)
		{
			alert("Please select a valid date");
			day.focus();
			return false;
		}
		else if (dd == 29) { 
				if(!( ((yyyy%4 == 0) && (yyyy%100 != 0)) || (yyyy%400 == 0) )) {
					alert("Please select a valid date");
					day.focus();
					return false;	
				}
		}
	}
	return true;
}
function isDateBeforeSystemDate(day,month,year,cday,cmonth,cyear)
{	
	var dd = parseInt(day.options[day.selectedIndex].value);
	var mm = parseInt(month.options[month.selectedIndex].value);
	var yyyy = parseInt(year.options[year.selectedIndex].value);

	if(cyear.value < yyyy)
	{
		alert("Date should be before today's date");			
		day.focus();
		return false;
	}

	if((cyear.value == yyyy) && (cmonth.value < mm))
	{
		alert("Date should be before today's date");			
		day.focus();
		return false;
	}

	if((cyear.value == yyyy) && (cmonth.value == mm)  && (cday.value <= dd))
	{
		alert("Date should be before today's date");			
		day.focus();
		return false;
	}

	return true;
}

function isDateBeforeToday(day,month,year)
{
	var dd = parseInt(day.options[day.selectedIndex].value);
	var mm = parseInt(month.options[month.selectedIndex].value);
	var yyyy = parseInt(year.options[year.selectedIndex].value);
	var today = new Date();
	if(today.getFullYear() < yyyy)
	{
		alert("Date should be before today's date");			
		day.focus();
		return false;
	}

	if((today.getFullYear() == yyyy) && ((today.getMonth() + 1) < mm))
	{
		alert("Date should be before today's date");			
		day.focus();
		return false;
	}

	if((today.getFullYear() == yyyy) && ((today.getMonth() + 1) == mm)  && (today.getDate() < dd))
	{
		alert("Date should be before today's date");			
		day.focus();
		return false;
	}
	return true;
}
function isDateBeforeToday1(day,month,year)
{
	var dd = parseInt(day.options[day.selectedIndex].value);
	var mm = parseInt(month.options[month.selectedIndex].value);
	var yyyy = parseInt(year.options[year.selectedIndex].value);
	var today = new Date();
	if(today.getFullYear() < yyyy)
	{
		alert("Death Date should be today's date or before today's date");			
		day.focus();
		return false;
	}
	if((today.getFullYear() == yyyy) && ((today.getMonth() + 1) < mm))
	{
		alert("Death Date should be today's date or before today's date");			
		day.focus();
		return false;
	}

	if((today.getFullYear() == yyyy) && ((today.getMonth() + 1) == mm)  && (today.getDate() < dd))
	{
		alert("Death Date should be today's date or before today's date");			
		day.focus();
		return false;
	}
	return true;
}

function isDateAfterToday(day,month,year)
{
	var dd = parseInt(day.options[day.selectedIndex].value);
	var mm = parseInt(month.options[month.selectedIndex].value);
	var yyyy = parseInt(year.options[year.selectedIndex].value);
	var today = new Date();
	if(today.getFullYear() > yyyy)
	{
		alert("Date should be after today's date");			
		day.focus();
		return false;
	}

	if((today.getFullYear() == yyyy) && ((today.getMonth() + 1) > mm))
	{
		alert("Date should be after today's date");			
		day.focus();
		return false;
	}

	if((today.getFullYear() == yyyy) && ((today.getMonth() + 1) == mm)  && (today.getDate() > dd))
	{
		alert("Date should be after today's date");			
		day.focus();
		return false;
	}
	return true;
}

function compareDates(day1,month1,year1,day2,month2,year2)
{
	var dd1 = parseInt(day1.options[day1.selectedIndex].value);
	var mm1 = parseInt(month1.options[month1.selectedIndex].value);
	var yyyy1 = parseInt(year1.options[year1.selectedIndex].value);
	var dd2 = parseInt(day2.options[day2.selectedIndex].value);
	var mm2 = parseInt(month2.options[month2.selectedIndex].value);
	var yyyy2 = parseInt(year2.options[year2.selectedIndex].value);

	if(yyyy1 > yyyy2)
	{
		alert("'To Date' should be after 'From Date'");			
		day1.focus();
		return false;
	}

	if((yyyy1 == yyyy2) && (mm1 > mm2))
	{
		alert("'To Date' should be after 'From Date'");			
		day1.focus();
		return false;
	}

	if((yyyy1 == yyyy2) && (mm1 == mm2)  && (dd1 > dd2))
	{
		alert("'To Date' should be after 'From Date'");			
		day1.focus();
		return false;
	}
	return true;
}
function compareDates1(cboDeathDay,cboDeathMonth,cboDeathYear,cboBirthDay,cboBirthMonth,cboBirthYear)
{
	var dd1 = parseInt(cboDeathDay.options[cboDeathDay.selectedIndex].value);
	var mm1 = parseInt(cboDeathMonth.options[cboDeathMonth.selectedIndex].value);
	var yyyy1 = parseInt(cboDeathYear.options[cboDeathYear.selectedIndex].value);
	var dd2 = parseInt(cboBirthDay.options[cboBirthDay.selectedIndex].value);
	var mm2 = parseInt(cboBirthMonth.options[cboBirthMonth.selectedIndex].value);
	var yyyy2 = parseInt(cboBirthYear.options[cboBirthYear.selectedIndex].value);

	if(yyyy1 < yyyy2)
	{
		alert("Death Date should be greater than Birth Date");			
		cboDeathDay.focus();
		return false;
	}

	if((yyyy1 == yyyy2) && (mm1 < mm2))
	{
		alert("Death Date should be greater than Birth Date");			
		cboDeathDay.focus();
		return false;
	} 

	if((yyyy1 == yyyy2) && (mm1 == mm2)  && (dd1 < dd2))
	{
		alert("Death Date should be greater than Birth Date");			
		cboDeathDay.focus();
		return false;
	}
	return true;
}
function mandatoryValidate(field1,name)
{
	val = field1.options[field1.selectedIndex].value;
	if(parseInt(val) == -1){
		field1.focus();
		if(name != null)
			alert("Please select some value for "+name);
		else
			alert("Please select some value for this field");
		field1.focus();
		return false;
	}
		return true;
}

function mandatoryValidateList(field1,name)
{
	val =field1.selectedIndex;

	if(parseInt(val) == -1){
		field1.focus();
		if(name != null)
			alert("Please select some value for "+name);
		else
			alert("Please select some value for this field");
		field1.focus();
		return false;
	}
	return true;
}
function mandatoryValidateNew(field1,msg)
	{
	val = field1.options[field1.selectedIndex].value;
	if(parseInt(val) == -1){
		field1.focus();
		if(msg != null)
			alert(msg);
		else
			alert("Please select some value for this field");
		field1.focus();
		return false;
	}
		return true;
	}
// for pasing text

function parseText(text,field) {
	var finaltext = "";
	for(var i = 0; i < text.length ; i++)
	{
		var charCode = text.charCodeAt(i);
		if(charCode == 39 ) {
			finaltext += "`";
		}
		else if(charCode == 9 ) {
			finaltext += " ";
		}
		else if(charCode == 10) {

				finaltext += text.charAt(i);
		}
		else if( !(charCode >= 33 && charCode <= 126 ) ) {

			finaltext += " ";
		}
		else {
			finaltext +=  text.charAt(i);
		}
	}
	field.value = finaltext;
	return true;
}
function replaceSplchar(i,code,str)
{
		var temp=""+str ;
		var replaceWith = "";
		if(code == 183)
			replaceWith ="-";
		else if(code == 8226)
			replaceWith ="-";
		else if(code == 8217)
			replaceWith ="`";
		else if(code == 8216)
			replaceWith ="`";
		else if(code == 8220)
			replaceWith ="\"";
		else if(code == 8221)
			replaceWith ="\"";
		else if(code == 8211)
			replaceWith ="-";
		else if(code == 9)
			replaceWith ="  ";
		else if(code == 8230)
			replaceWith =".";
		else
			replaceWith =" ";	

		temp = str.substring(0,i) +replaceWith + str.substring(i+1,str.length);
	return temp;
}

function loadDegreeSpecDD(form, field1, field2){

	dlen = form.elements[field2].options.length;
	arrDegreeSpec = new Array(len);
	arrDegreeSpecVals = new Array(len);
	for (var i=0;i<dlen;i++) {
		arrDegreeSpecVals[i] = form.elements[field2].options[i].value;
		arrDegreeSpec[i] = form.elements[field2].options[i].text;
	}

	dcount=0;
	dval = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	dindexes = new Array(dlen);
	for (var i=0;i<dlen;i++) {
		if (form.elements[field2].options[i].value.substring(0,3) == dval) { 
			dindexes[dcount] = i;
			dcount = dcount+1;	
		}
	}

	form.elements[field2].options.length=0;
	var sel = -1;
	for (var i=0;i<dcount;i++) { 
		var j = dindexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i].value = arrDegreeSpecVals[j];
		form.elements[field2].options[i].text = arrDegreeSpec[j];	
	}	

	if(parseInt(dval) == -1){
		form.elements[field2].options.length=0;
		form.elements[field2].options.length += 1;
		form.elements[field2].options[0].value = -1;
		form.elements[field2].options[0].text = "No Preference";
		form.elements[field2].selectedIndex = 0; 
		return;
	}
}

function changeDegreeSpec(form,field1,field2) {
	dlen = arrDegreeSpecVals.length;
	dcount=0;
	dval = form.elements[field1].options[form.elements[field1].selectedIndex].value;
	if(parseInt(dval) == -1){
		form.elements[field2].options.length=0;
		form.elements[field2].options.length += 1;
		form.elements[field2].options[0].value = -1;
		form.elements[field2].options[0].text = "No Preference";
		form.elements[field2].selectedIndex = 0; 
		return;
	}
	dindexes = new Array(dlen);
	for (var i=0;i<dlen;i++) {
		if (arrDegreeSpecVals[i].substring(0,3) == dval) { 
			dindexes[dcount] = i;
			dcount = dcount+1;
		}
	}
	form.elements[field2].options.length=0;
	form.elements[field2].options.length += 1;
	form.elements[field2].options[0].value = "-1";
	form.elements[field2].options[0].text = "Select";
	var sel = 0;
	for (i=0;i<dcount;i++) { 
		var j = dindexes[i];
		form.elements[field2].options.length += 1;
		form.elements[field2].options[i+1].value = arrDegreeSpecVals[j];
		form.elements[field2].options[i+1].text = arrDegreeSpec[j];
	}
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {  
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
if (s.length == 0)
	return true;
else 
	return false;
}
function checkNumbers(strPhone){
s=stripCharsInBag(strPhone,validNumbers);
if (s.length == 0)
	return true;
else 
	return false;
}
/* Changes to check for valid phone number on 05 jan 2005 ends here*/
