var alphabet = "abcdefghijklmnopqrstuvwxyz";
var numeric  = "0123456789";
function IsDateinPast_Today(dtStr,Label,element){
	if(IsDate(dtStr,Label,element)){
		today = new Date();
		indate = new Date();
		dtStr = trim(dtStr);
		if(dtStr!=""){
			dateArr = dtStr.split("/");
			indate.setDate(dateArr[0]); indate.setMonth(dateArr[1]-1); indate.setFullYear(dateArr[2]);
			if(indate>today){
				alert("Invalid "+Label+"\n"+Label+" must be in the Past or Today");
				element.focus();
				element.select();
			}
		}
	}
}

function IsDate(dtStr,Label,element){
	var daysInMonth = DaysArray(12)
	var dtCh = "/";
    var minYear = 1900;
    var maxYear = 2100;
	var errmsg;
	var isDate = true;
	dtStr = trim(dtStr);
	if(dtStr!=""){
		var pos1 = dtStr.indexOf(dtCh)
		var pos2 = dtStr.indexOf(dtCh,pos1+1)
		var strMonth = dtStr.substring(pos1+1,pos2)
		var strDay = dtStr.substring(0,pos1)
		var strYear = dtStr.substring(pos2+1)
		if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
		if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
		for (var i = 1; i <= 3; i++) {
			if (strYear.charAt(0)=="0" && strYr.length>1) strYear=strYear.substring(1)
		}
		month = parseInt(strMonth)
		day = parseInt(strDay)
		year = parseInt(strYear)
		if (pos1==-1 || pos2==-1) 
			{errmsg = "Enter a valid Date for "+Label+"\nDate Format is dd/mm/yyyy";
			isDate = false;}
		if (strMonth.length<1 || month<1 || month>12)
			{errmsg = "Enter a valid month between 1 and 12 for "+Label+"\nDate Format is dd/mm/yyyy";
			isDate = false;}
		if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
			{errmsg = "Enter a valid date for "+Label+"\nDate Format is dd/mm/yyyy";
			 isDate = false;}	
		if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
		  {	errmsg = "Enter a valid year between "+minYear+" and "+maxYear+" for "+Label+"\nDate Format is dd/mm/yyyy";  
			isDate = false;}
		if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr,dtCh))==false)
		   {errmsg = "Enter a valid Date for "+Label+"\nDate Format is dd/mm/yyyy";
			isDate = false;}
		if(!isDate)	{
		  alert(errmsg); 
		  element.focus();
		  element.select();
		}
   	}
  	return isDate;	
}

function IsFutStartDate(sDate,eDate,Label){
	var d1 = eDate;
	DateArray = d1.split("/");
	var dd = sDate;
	var Dob = dd.split("/");
	if(DateArray[2]<Dob[2]) {
		return false;
	}
	if(DateArray[2]==Dob[2]){ 
		if(DateArray[1]<Dob[1]){
			return false;
		}
		if(DateArray[1]==Dob[1]){
			if(DateArray[0]<Dob[0]){
				return false;
			}
		}
		return true;
	}
	return true;
}
////////////////////////////////////////////////////////////Date Validation Script function END///////////////////////////////////////////////////
function IsNumber(sText,Label){
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
	if(sText=="") {alert(Label+ " Should not be Empty");return false}
	for (i = 0; i < sText.length && IsNumber == true; i++)  { 
	  Char = sText.charAt(i); 
	  if(ValidChars.indexOf(Char) == -1) {
		 IsNumber = false;
	  }
	}
	if(!IsNumber)
		alert(Label+ " Must Be numeric")
	return IsNumber;
}

function IsNumberBusiness(sText,Label){
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
	  Char = sText.charAt(i); 
	  if(ValidChars.indexOf(Char) == -1) {
		 IsNumber = false;
	  }
	}
	if(!IsNumber)
		alert(Label+ " Must Be numeric")
	return IsNumber;
}

function IsValidText(sText,Label){	
	var ValidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
	var IsValidText=true;
	var Char;
	if(sText=="") {alert(Label+ " Shouldx not be Empty");return false}
	for (i = 0; i < sText.length && IsValidText == true; i++) { 
	  Char = sText.charAt(i).toUpperCase(); 
	  if(ValidChars.indexOf(Char) == -1) {
		 IsValidText = false;
	  }
	}
	if(!IsValidText)
		alert(Label+ " Must Be Alpha Numeric")
	return IsValidText;
}
function IsAlphaAndNumeric(sText,Label){
	   var ValidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
	   var IsAlphaAndNumeric=true;
	   var Char;
	   if(trim(sText)!=""){
		   if(sText=="") {alert(Label+ " Should not be Empty");return false}
		   sText = trim(sText)
		   for (i = 0; i < sText.length && IsAlphaAndNumeric == true; i++)  { 
			  Char = sText.charAt(i).toUpperCase(); 
			  if(ValidChars.indexOf(Char) == -1)  {
				 IsAlphaAndNumeric = false;
			  }
		   }
	   }
	   if(!IsAlphaAndNumeric)
		alert(Label+ " Must Be Alpha Numeric")
	   return IsAlphaAndNumeric;
}

function IsValidURLhttp(strURL,n){
	strURL 			= strURL.toUpperCase();
	var strlen 		= strURL.split("//");
	var thePrefix 	= strlen[0]+"//";
	if(!(thePrefix=="HTTP://" || thePrefix=="HTTPS://")){
		alert("Invalid URL");
		return false;
	}	
	if(n!=-1) if(strURL.split("/").length>n) return false;		
	return true
}

function IsFax(sText,Label){
	var ValidChars = "0123456789-().";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if(ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	if(!IsNumber)
		alert(Label+ " Must Be in Format eg:229-230-4443 or (229)-230-4443 or 229.230.4443")
	return IsNumber;
}

function IsPhone(sText,Label){
	var ValidChars = "0123456789-().";
	var IsNumber=true;
	var Char;
	if(sText=="") {alert(Label+ " Should not be Empty");return false}
	for (i = 0; i < sText.length && IsNumber == true; i++)  { 
		Char = sText.charAt(i); 
	  	if(ValidChars.indexOf(Char) == -1)   {
		 	IsNumber = false;
	  	}
	}
	if(!IsNumber)
		alert(Label+ " Must Be in Format eg:229-230-4443 or (229)-230-4443 or 229.230.4443")
	return IsNumber;
}

function IsPhoneBusiness(sText,Label){
	var ValidChars = "0123456789-().";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++)  { 
		Char = sText.charAt(i); 
		if(ValidChars.indexOf(Char) == -1)   {
	 		IsNumber = false;
		}
	}
	if(!IsNumber)
		alert(Label+ " Must Be in Format eg:229-230-4443 or (229)-230-4443 or 229.230.4443")
	return IsNumber;
}

function IsPhoneSymbol(sText,Label){
	var ValidChars = "0123456789-()+";
	var IsNumber=true;
	var Char;
	if(sText=="") {alert(Label+ " Should not be Empty");return false}
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
  		if(ValidChars.indexOf(Char) == -1)
	 		IsNumber = false;
	}
	if(!IsNumber)
		alert(Label+ " Must Be in Format eg:229-230-4443")
	return IsNumber;
}
function isWhitespace(s){
	var spaces = " \n\t\r"
	var i;
	for(i=0;i<s.length;++i)
	if (spaces.indexOf(s.charAt(i)) == -1) 
			return false;
	return true;
}

function IsPassword(sPass1,Lable){
	if(trim(sPass1)=="")	{
		alert(Lable +" Should Not be Empty")
		return false
	}else if(!IsValidText(sPass1, Lable))
		return false
    else if (sPass1.length < 6){
		alert("Password must have atleast 6 Characters");
		return false
	}else if (sPass1.length > 10){
		alert("Password must be of maximum 10 Characters");
		return false}
	else
		return true;
}

function IsAmount(sText){
	var ValidChars = "0123456789.,";
	var IsAmount = true;
	var Char;
	if(sText=="") return false
	for (i = 0; i < sText.length && IsAmount == true; i++){ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1)
			IsAmount = false;
	}
	return IsAmount;
}

function IsValidAmount(sText,Label){
	if(!IsAmount(sText)){
		alert("Invalid "+Label+".. "+Label+" Must Have Numeric Values")
		return false;
	}
	AmtArray = sText.split(".")
	if(AmtArray.length>2){
		alert("Invalid "+Label+".. "+Label+" Must have single Period for Float")
		return false;
	}
	if(AmtArray.length>1){
		FloatAmt = AmtArray[1];
		if(FloatAmt.length>2)		{
			alert("Invalid "+Label+"..  Float Value must have two Digits")
			return false;
		}
	}
	return true
}

function IsFloat(sText,Label){
	if(!IsAmount(sText))	{
		alert("Invalid "+Label+".. "+Label+" Must Have Numeric Values")
		return false;
	}
	AmtArray = sText.split(".")
	if(AmtArray.length>2)	{
		alert("Invalid "+Label+".. "+Label+" Must have single Period for Float")
		return false;
	}
	return true
}
function isEmail(s,Label){
	var i = 1,Length = s.length,result;
	if(s==""){
		alert(Label+" should not be empty");
		return false;
	}
	while((i<Length) && (s.charAt(i) != '@')) i++;
	if ((i == Length) || (s.charAt(i) != '@')){
		alert(Label+" don\'t have the character @ after the login name");
		return false;
	}
	i+=2;
	while((i<Length) && (s.charAt(i) != '.')) i++;
	if ((i == Length) || (s.charAt(i) != '.'))	{
		alert(Label+" don\'t have the character after the domain name ");
		return false;
	}
	if (i+1 >= Length)	{
		alert(Label+" should have atleast one character after.");
		return false;
	}
	return true;
}

function isEmailAddr(email){
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}
//This function checks the matching of Passwords.
function IsMatch(Val1,val2,Label){
	if(trim(Val1)!=trim(val2))	{
		alert(Label+"  Should Not Match")
		return false
	}
	return true
}

function trim(Val){
	while(''+Val.charAt(0)==""){
	Val = Val.substring(1,Val.length);	
	return Val
	}
}

function IsValid(Val,Label){
	if(trim(Val)==""){
		alert(Label+" Should Not be Empty")
		return false
	}
	return true
}


function splitText(theNotes){
	theString = theNotes.split("\n")
	NewString = ""
	for(i=0;i<theString.length;i++)	{
		NewString+=theString[i]+"|"
	}
	return NewString
}
function floatRound(number,X) {
	X = (!X ? 2 : X);
	return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}
var dtCh= "/";
var minYear=1900;
var maxYear=2100;
function isInteger(s,Lable){
	if(s!=""){
		var i;
    	for (i = 0; i < s.length; i++){   
        	// Check that current character is number.
        	var c = s.charAt(i);
        	if (((c < "0") || (c > "9"))){
				alert(Lable+" Should be Numeric ")
		 		return false;
			}
    	}
	}else
		return true
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}
function isPassword(s,Label){
	if (s.length < 5){
		alert("min. length of "+Label+" is 5");
		return false;
	}
	if (isWhitespace(s)){
		alert("please enter the "+Label+" without spaces");
		return false;
	}
	return true;
}
function isLogin(s)	{
	if (s.length < 5){
		alert("min. length of username is 5");
		return false;
	}
	if (isWhitespace(s)){
		alert("Please enter the username without spaces");
		return false;
	}
	if (!isValidwithBag(s,alphabet + numeric + "-._"))	{
		alert("UserName should contain only the characters from alphabet, numbers,score and Dot Operators");
		return false;
	}
	if (!isValidwithBag(s.charAt(s.length-1),alphabet + numeric)){
		alert("UserName should end with an alphanumeric characters.");
		return false;
	}
	if (!isValidwithBag(s.charAt(0),alphabet + numeric)){
		alert("UserName should start with an alphanumeric characters.");
		return false;
	}
	return true;
}
function isLoginName(s)	{	
	if (!isValidwithBag(s,alphabet + numeric + "-_!@~ `"))	{
		alert("UserName should contain only the characters from alphabet, numbers and  -_!@~` Operators");
		return false;
	}
	if (!isValidwithBag(s.charAt(s.length-1),alphabet + numeric)){
		alert("UserName should end with an alphanumeric characters.");
		return false;
	}
	if (!isValidwithBag(s.charAt(0),alphabet)){
		alert("UserName should start with an alphabets.");
		return false;
	}
	return true;
}
function isValidwithBag(name,Bag){
	var i;
	name = name.toLowerCase();
	for(i=0;i<name.length;++i)
		if (Bag.indexOf(name.charAt(i)) == -1) 
			return false;
	return true;
}		

function isEmpty(s)	{
	return((s==null) || (s.length==0));
}

function isWhitespace(s){
	if (isEmpty(s)) return true;	
	var spaces = " \n\t\r"
	var i;
	for(i=0;i<s.length;++i)
		if (spaces.indexOf(s.charAt(i)) == -1) 
			return false;
	return true;
}
function DateDiff(obj2,obj1) {
	var cal1 = obj1.value;
	var Date1;
	var calMode = 0;
	if (cal1.length == 10){
		if(calMode == 0){
			Day1 = cal1.substr(3,2)
			Month1 = cal1.substr(0,2);
		}else{
			Day1 = cal1.substr(0,2)
			Month1 = cal1.substr(3,2);
		}
		Year1 = cal1.substr(6,4);
		Date1 = new Date(Year1,Month1-1,Day1);
		return (Date1 - obj2);
	}
}

function isYear(valu){ 
	var ret = true;
	year = new Date();
	var currentyearvalue = year.getYear();
	var oper = currentyearvalue-18;
	var yearval = valu;
	if((yearval <1900)||(yearval>oper)){ 
		ret = false;
	 	return ret;
	}
	return ret;
}
// JavaScript Document
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 E-mail ID")
	   return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   alert("Invalid E-mail ID")
	   return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		alert("Invalid E-mail ID")
		return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
		alert("Invalid E-mail ID")
		return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		alert("Invalid E-mail ID")
		return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
		alert("Invalid E-mail ID")
		return false
	}
	if (str.indexOf(" ")!=-1){
		alert("Invalid E-mail ID")
		return false
	}
	return true					
}

function getX(e){	
	posX=0;
	var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10);
	if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1)
		posX=35;
	else
		posX=30;
	if (!e) var e = window.event; 
	if (e.pageX )
		return (e.pageX-posX); 
	else if (e.clientX)
		return (e.clientX + document.body.scrollLeft-posX); 
}

function getY(e){
	posY=0;
	var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10);
	if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1)
		posY=120;
	else
		posY=200;
		
	if (!e) var e = window.event; 
	if (e.pageY)
		return (e.pageY-posY);
	else if (e.clientY)
		return (e.clientY + document.body.scrollTop-posY);
}
//// Check javascript URL Validation - Added by magiashok.
function checkURL(value) {
	var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)");
	if(urlregex.test(value)){
		return(true);
	}
	return(false); 
}


function checkDomain(nname)
{
var arr = new Array(
'.com','.net','.org','.biz','.coop','.info','.museum','.name',
'.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
'.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
'.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
'.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
'.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
'.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
'.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
'.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
'.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
'.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
'.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
'.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
'.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
'.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
'.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
'.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
'.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
'.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
'.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
'.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
'.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
'.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
'.wf','.ye','.yt','.yu','.za','.zm','.zw');

var mai = nname;
var val = true;

var dot = mai.lastIndexOf(".");
var dname = mai.substring(0,dot);
var ext = mai.substring(dot,mai.length);
//alert(ext);
	
if(dot>2 && dot<57)
{
	for(var i=0; i<arr.length; i++)
	{
	  if(ext == arr[i])
	  {
	 	val = true;
		break;
	  }	
	  else
	  {
	 	val = false;
	  }
	}
	if(val == false)
	{
	  	 alert("Your domain extension "+ext+" is not correct");
		 return false;
	}
	else
	{
		for(var j=0; j<dname.length; j++)
		{
		  var dh = dname.charAt(j);
		  var hh = dh.charCodeAt(0);
		  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
		  {
			 if((j==0 || j==dname.length-1) && hh == 45)	
		  	 {
		 	  	 alert("Domain name should not begin are end with '-'");
			      return false;
		 	 }
		  }
		else	{
		  	 alert("Your domain name should not have special characters");
			 return false;
		  }
		}
	}
}
else
{
 alert("Invalid domain");
 return false;
}	
return true;
}

function alphanumeric(alphane){
	/*var numaric = alphane;
	for(var j=0; j<numaric.length; j++){
		  var alphaa = numaric.charAt(j);
		  var hh = alphaa.charCodeAt(0);
		  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123)){
		  }
		else{
			 alert("Only alpha numeric characters are allowed for PostalCode");
			 return false;
		  }
	}
 return true;*/
 if(trim(alphane)==""){
		alert("PostalCode Should Not be Empty")
		return false
	}
	return true
}

function ShiftPage(tab,trigger,Page,Display,searchval,action)	{
		document.forms[document.forms.length-1].tabToLoad.value=tab
		document.forms[document.forms.length-1].triggerEvent.value=trigger
		document.forms[document.forms.length-1].Page.value=Page
		document.forms[document.forms.length-1].Display.value=Display
		document.forms[document.forms.length-1].Search.value=searchval
		document.forms[document.forms.length-1].Action.value=action
		document.forms[document.forms.length-1].submit();
}