// JavaScript Document
<!--
/**
  * General functions..
  */
// Replaces all instances of the given substring.
String.prototype.replaceAll = function( 
	strTarget, // The substring you want to replace
	strSubString // The string you want to replace in.
	){
	var strText = this;
	var intIndexOfMatch = strText.indexOf( strTarget );
	 
	// Keep looping while an instance of the target string
	// still exists in the string.
	while (intIndexOfMatch != -1){
		// Relace out the current instance.
		strText = strText.replace( strTarget, strSubString )
		 
		// Get the index of any next matching substring.
		intIndexOfMatch = strText.indexOf( strTarget );
	}
	 
	// Return the updated string with ALL the target strings
	// replaced out with the new substring.
	return( strText );
}

function trim(str) {
   return rtrim(ltrim(str));
}

function ltrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

function rtrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

function validateHDate(day_field,mon_field,now,whre) {
	var	d=(document.getElementById(day_field)).options[(document.getElementById(day_field)).selectedIndex].value;
	var	m=(document.getElementById(mon_field)).options[(document.getElementById(mon_field)).selectedIndex].value;
	var y = now.substr(now.length-4);
	if((y%100)==0) {
		if(y%400==0) var leap=1;
		else var leap=0;
	}
	else {
		if(y%4==0) var leap=1;
		else var leap=0;
	}
	if(m==4 | m==6 | m==9 | m==11) {
		if(d==31) {
			alert("Enter Correct "+whre+" day."); 
			return false;
		}
	}
	if(m==2 && d>29) {
		alert("Verify "+whre+" day in February.");
		return false;
	}
	if(m==2 && d<30) {
		if(d>28 && leap==0) {
			alert("Verify "+whre+" day in February (Is this Leap Year?).");
			return false;
		}
	}
	return true;
}

function validateDate(day_field,mon_field,year_field,whre) {
	var	d=(document.getElementById(day_field)).options[(document.getElementById(day_field)).selectedIndex].value;
	var	m=(document.getElementById(mon_field)).options[(document.getElementById(mon_field)).selectedIndex].value;
	var	y=(document.getElementById(year_field)).options[(document.getElementById(year_field)).selectedIndex].value;
	
	if((y%100)==0) {
		if(y%400==0) var leap=1;
		else var leap=0;
	}
	else {
		if(y%4==0) var leap=1;
		else var leap=0;
	}
	if(m==4 | m==6 | m==9 | m==11) {
		if(d==31) {
			alert("Enter Correct "+whre+" day."); 
			return false;
		}
	}
	if(m==2 && d>29) {
		alert("Verify "+whre+" day in February.");
		return false;
	}
	if(m==2 && d<30) {
		if(d>28 && leap==0) {
			alert("Verify "+whre+" day in February (Is this Leap Year?).");
			return false;
		}
	}
	return true;
}

function validateBEDate(bd_field,bm_field,by_field,ed_field,em_field,ey_field) {
	var bd_elem = document.getElementById(bd_field);
	var bm_elem = document.getElementById(bm_field);
	var by_elem = document.getElementById(by_field);
	var ed_elem = document.getElementById(ed_field);
	var em_elem = document.getElementById(em_field);
	var ey_elem = document.getElementById(ey_field);
	
	var	bd= parseInt(bd_elem.options[bd_elem.selectedIndex].value);
	var	bm= parseInt(bm_elem.options[bm_elem.selectedIndex].value);
	var	by= parseInt(by_elem.options[by_elem.selectedIndex].value);
	var	ed= parseInt(ed_elem.options[ed_elem.selectedIndex].value);
	var	em= parseInt(em_elem.options[em_elem.selectedIndex].value);
	var	ey= parseInt(ey_elem.options[ey_elem.selectedIndex].value);
	
	//alert(bd+"/"+bm+"/"+by+"-->"+ed+"/"+em+"/"+ey);
	if(!validateDate(bd_field,bm_field,by_field,'Begin')) {
		return false;
	}
	
	if(!validateDate(ed_field,em_field,ey_field,'End')) {
		return false;
	}
	
	if(by<=ey) {
		if(by==ey && bm>em) {
			alert("Begin-month must be before/on End-month.");
			return false;
		}
		else if(by==ey && bm==em) {
			if(bd>ed) {
				alert("Begin-day must be before/on End-day.");
				return false;
			}
		}
	}
	else {
		alert("Begin-Year must be before/on End-Year.");
		return false;
	}
	return true;
}

function URLEncode(url) { //Function to encode URL.
	var SAFECHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.!~*'()"; // RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";
	var plaintext = url;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
		if (ch == " ") {
			encoded += "+"; // x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
			encoded += ch;
		} else {
			var charCode = ch.charCodeAt(0);
			if(charCode > 255) {
				alert("Unicode Character '"+ch+"' cannot be encoded using standard URL encoding.\r\n(URL encoding only supports 8-bit characters.)\r\nA space (+) will be substituted.");
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	}
	return encoded;
}

/**
  * Upload script functions..
  */

function onChngChk(frm) {
	var sfield = document.getElementById('status');
	var xfile = trim(frm.pFile.value);
	if(xfile!="") {
		if(validate4XML(xfile,sfield)) {
			return true;
		}
		return false;
	}
	else {
		sfield.innerHTML = "<b>Error: <span class='errmsg'>Browse file to upload.</span></b>"
		return false;
	}
}

function validate4XML(xml_file,stsField) {
	var slash_idx = xml_file.indexOf("\\");
	while(slash_idx!=-1) {
		xml_file = xml_file.slice(slash_idx+1);
		slash_idx = xml_file.indexOf("\\");
	}
	var extn = xml_file.slice(xml_file.indexOf(".")).toLowerCase();
	if(extn!=".xml") {
		stsField.innerHTML = "<b>Error: <span class='errmsg'>Upload only XML files.</span></b>"
		return false;
	}
	else {
		stsField.innerHTML = "<b>Browsed XML Profile: <span class='succmsg'><i>"+xml_file+"</i> Click 'Upload' button.</span></b>";
		return true;
	}
}

function processUpload(frm) {
	var sfield = document.getElementById('status');
	var xfile = trim(frm.pFile.value);
	if(xfile!="") {
		if(validate4XML(xfile,sfield)) {
			frm.upfile.value = 1;
			frm.submit();
		}
	} else {
		sfield.innerHTML = "<b>Error: <span class='errmsg'>Browse file to upload.</span></b>"
		return false;
	}
}

/**
  * Authentication script functions..
  */

function loginValidate()	{
	var emailID = document.login.email_id;
	var pwd = document.login.pwd;

	if ((trim(emailID.value)==null)||(trim(emailID.value)==""))
	{
		alert("Please Enter your Email ID.");
		emailID.focus();
		return false;
	}
	if (echeck(trim(emailID.value))==false)
	{
		emailID.value="";
		emailID.focus();
		return false;
	}
	if ((trim(pwd.value)==null)||(trim(pwd.value)==""))
	{
		alert("Please Enter Password.");
		pwd.focus();
		return false;
	}
	return true;
}

function forgotValidate()	{
	var emailID = document.forgot.email_id;
	
	if ((trim(emailID.value)==null)||(trim(emailID.value)==""))
	{
		alert("Please Enter your Email ID.");
		emailID.focus();
		return false;
	}
	if (echeck(trim(emailID.value))==false)
	{
		emailID.value="";
		emailID.focus();
		return false;
	}
	return true;
}


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("Please enter a valid Email ID.");
   		return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
	   alert("Please enter a valid Email ID.");
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
	    alert("Please enter a valid Email ID.");
	    return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1)
	 {
	    alert("Please enter a valid Email ID.");
	    return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	 {
	    alert("Please enter a valid Email ID.");
	    return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1)
	 {
	    alert("Please enter a valid Email ID.");
	    return false;
	 }
	
	 if (str.indexOf(" ")!=-1)
	 {
	    alert("Please enter a valid Email ID.");
	    return false;
	 }

	return true;					
}

function regValidate()
{
	var emailID = document.register.email_id;
	var pwd = document.register.pwd;
	var cnf_pwd = document.register.cnf_pwd;
	var first_name = document.register.first_name;
	var middle_name = document.register.middle_name;
	var last_name = document.register.last_name;
	var phone_number = document.register.phone_number;

	if ((trim(emailID.value)==null)||(trim(emailID.value)==""))
	{
		alert("Please Enter your Email ID.");
		emailID.focus();
		return false;
	}
	if (echeck(trim(emailID.value))==false)
	{
		emailID.value="";
		emailID.focus();
		return false;
	}
	if ((trim(pwd.value)==null)||(trim(pwd.value)==""))
	{
		alert("Please Enter Password.");
		pwd.focus();
		return false;
	}
	if(pwd.value.length<8) {
		alert("Password Length must be at least eight Characters.");	
		pwd.focus();
		return false;
	}
	if ((trim(cnf_pwd.value)==null)||(trim(cnf_pwd.value)==""))
	{
		alert("Please Enter Confirm Password.");
		cnf_pwd.focus();
		return false;
	}
	if(pwd.value != cnf_pwd.value)
	{
		alert("Password and Confirm Passwords are different. Please verify.");
		pwd.focus();
		return false;
	}
	if ((trim(first_name.value)==null)||(trim(first_name.value)==""))
	{
		alert("Please Enter First Name.");
		first_name.focus();
		return false;
	}
	if ((trim(middle_name.value)==null)||(trim(middle_name.value)==""))
	{
		alert("Please Enter Middle Name.");
		middle_name.focus();
		return false;
	}
	if ((trim(last_name.value)==null)||(trim(last_name.value)==""))
	{
		alert("Please Enter Last Name.");
		last_name.focus();
		return false;
	}
	if ((trim(phone_number.value)==null)||(trim(phone_number.value)==""))
	{
		alert("Please Enter Phone Number.");
		phone_number.focus();
		return false;
	}
	
	var alt_email = document.register.alt_email;
	var aemail = trim(alt_email.value);
	if(aemail!="") {
		if(echeck(aemail)==false) {
			alt_email.value="";
			alt_email.focus();
			return false;
		}
	}
	return true;
}

function editValidate(taskValue)
{
	var emailID = document.register.email_id;
	var first_name = document.register.first_name;
	var last_name = document.register.last_name;
	var phone_number = document.register.phone_number;
	
	alert("hello");
	
	document.register.task.value = taskValue;

	if ((trim(emailID.value)==null)||(trim(emailID.value)==""))
	{
		alert("Please Enter your Email ID.");
		emailID.focus();
		return false;
	}
	if (echeck(trim(emailID.value))==false)
	{
		emailID.value="";
		emailID.focus();
		return false;
	}
	if ((trim(first_name.value)==null)||(trim(first_name.value)==""))
	{
		alert("Please Enter First Name.");
		first_name.focus();
		return false;
	}
	if ((trim(last_name.value)==null)||(trim(last_name.value)==""))
	{
		alert("Please Enter Last Name.");
		last_name.focus();
		return false;
	}
	if ((trim(phone_number.value)==null)||(trim(phone_number.value)==""))
	{
		alert("Please Enter Phone Number.");
		phone_number.focus();
		return false;
	}
	
	var alt_email = document.register.alt_email;
	var aemail = trim(alt_email.value);
	if(aemail!="") {
		if(echeck(aemail)==false) {
			alt_email.value="";
			alt_email.focus();
			return false;
		}
	}
	return true;
}

function changePasswd(frm) {
	var np = trim(frm.newpass.value);
	var cp = trim(frm.cnfpass.value);
	if(np==null | np=="") {
		alert("Please Enter new password.");
		frm.newpass.focus();
		return false;
	}
	if(np.length<8) {
		alert("New password must be minimum of 8 Characters");
		frm.newpass.focus();
		return false;
	}
	if(cp==null | cp=="") {
		alert("Please Enter Confirm Password.");
		frm.cnfpass.focus();
		return false;
	}
	if(frm.newpass.value!=frm.cnfpass.value) {
		alert("New Password and Confirm Passwords are different. Please Check.");
		frm.newpass.focus();
		return false;
	}
	return true;
}

/**
  * Dash board JS 
  */
function toggleClamShellMenu(objectID) {
	domStyle = findDOM(objectID,1);
	if (domStyle.display =='block')  domStyle.display='none';
	else domStyle.display='block';
	return;
}

function findDOM(objectID,withStyle) {
	if (withStyle == 1)
		return (document.getElementById(objectID).style) ;
	else
		return (document.getElementById(objectID)) ;
}

/**
  * Profile JS  
  */
 function verifyProfile(frm,cat) {
	 var allowedChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ -:'";
	 allowedChars += '"';
	 var licenseChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	 var pname = trim(frm.profn.value);
	 var lpart1 = frm.lic1;
	 var lpart2 = frm.lic2;
	 var lpart3 = frm.lic3;
	 var lpart4 = frm.lic4;
	 var lic = lpart1.value+lpart2.value+lpart3.value+lpart4.value;
	 if(pname=="") {
		 alert("Please provide a profile name.");
		 frm.profn.focus();
		 return false;
	 }
	 if(lic.length!=16) {
		 alert("Please provide full license key.");
		 lpart1.focus();
		 return false;
	 }
	 
	 if(!IsValidString(pname,allowedChars,frm.profn)) {
		 return false;
	 }
	 
	 if(!IsValidString(lpart1.value.toUpperCase(),licenseChars,lpart1)) {
		 return false;
	 }
	 if(!IsValidString(lpart2.value.toUpperCase(),licenseChars,lpart1)) {
		 return false;
	 }
	 if(!IsValidString(lpart3.value.toUpperCase(),licenseChars,lpart1)) {
		 return false;
	 }
	 if(!IsValidString(lpart4.value.toUpperCase(),licenseChars,lpart1)) {
		 return false;
	 }
	 return true;
 }
 
function IsValidString(str,allowed,elem) {
	var len = str.length;
	var i=0;
	var char;
	while(i<len) {
		char = str.charAt(i);
		if(allowed.indexOf(char)==-1) {
			alert("'"+char+"' is not a valid character.");
			if(elem) elem.focus();
			return false;
		}
		++i;
	}
	return true;
}
 
function MoveCursor(curr,nxt) {
	if(curr.value.length==4) nxt.focus();
}

function verifyPName(frm,flg,id) {
	if(flg) {
		var allowedChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ -:'";
		allowedChars += '"';
		var currVal = trim(frm.profn.value);
		if(currVal=="") {
			alert("Please enter a profile name.");
			frm.profn.focus();
			return false;
		}
		
		if(!IsValidString(currVal,allowedChars,frm.profn)) {
			 return false;
		}
		frm.action = "index.php?action=3&task=savname&pid="+id+"&pname="+currVal;
		return true;
	}
	else {
		frm.action = "index.php?action=3&task=view";
		return true;
	}
}

function coparentValidate()
{
	var emailID = document.register.email_id;
	var pwd = document.register.pwd;
	var cnf_pwd = document.register.cnf_pwd;
	var first_name = document.register.first_name;
	//var middle_name = document.register.middle_name;
	var last_name = document.register.last_name;
	var phone_number = document.register.phone_number;

	if ((trim(emailID.value)==null)||(trim(emailID.value)==""))
	{
		alert("Please Enter your Email ID.");
		emailID.focus();
		return false;
	}
	if (echeck(trim(emailID.value))==false)
	{
		emailID.value="";
		emailID.focus();
		return false;
	}
	if ((trim(pwd.value)==null)||(trim(pwd.value)==""))
	{
		alert("Please Enter Password.");
		pwd.focus();
		return false;
	}
	if(pwd.value.length<8) {
		alert("Password Length must be at least eight Characters.");	
		pwd.focus();
		return false;
	}
	if ((trim(cnf_pwd.value)==null)||(trim(cnf_pwd.value)==""))
	{
		alert("Please Enter Confirm Password.");
		cnf_pwd.focus();
		return false;
	}
	if(pwd.value != cnf_pwd.value)
	{
		alert("Password and Confirm Passwords are different. Please verify.");
		pwd.focus();
		return false;
	}
	if ((trim(first_name.value)==null)||(trim(first_name.value)==""))
	{
		alert("Please Enter First Name.");
		first_name.focus();
		return false;
	}
	/*if ((trim(middle_name.value)==null)||(trim(middle_name.value)==""))
	{
		alert("Please Enter Middle Name.");
		middle_name.focus();
		return false;
	}*/
	if ((trim(last_name.value)==null)||(trim(last_name.value)==""))
	{
		alert("Please Enter Last Name.");
		last_name.focus();
		return false;
	}
	if ((trim(phone_number.value)==null)||(trim(phone_number.value)==""))
	{
		alert("Please Enter Phone Number.");
		phone_number.focus();
		return false;
	}
	
	var alt_email = document.register.alt_email;
	var aemail = trim(alt_email.value);
	if(aemail!="") {
		if(echeck(aemail)==false) {
			alt_email.value="";
			alt_email.focus();
			return false;
		}
	}
	
	return true;
}

//-->
