function verifyBlank(frm, str_cntrls, str_captions) {
	var cntrlArray= str_cntrls.split('++');
	var captionArray= str_captions.split('++');
	
  for (var ai=0; ai< cntrlArray.length; ai++)  {
	var elem= cntrlArray[ai];
	
	var msg=  captionArray[ai];	
	var status= isNotBlank(frm,elem,msg);	
	if(status == "blank")
		return false;
  }
	return true;
}

function isNotBlank(frm,elem,warningtext) {

var chk_val= document.getElementById(elem).value;

chk_val_trimed=chk_val.replace(/^\s+|\s+$/g, '') ;

		 if(chk_val_trimed==null || chk_val_trimed.length==0)
			 { 
				
				if(warningtext !='') {
					alert("Please Enter " + warningtext);
					document.getElementById(elem).focus();					
				}
					
				document.getElementById(elem).focus();
				return "blank";					            
				
		     }
		else
	          {		
				return "correct";						
			  }
			  
} //isNotBlank

function isNotBlank_withoutFocus(namecontrol,warningtext) {

var chk_val=namecontrol.value;

chk_val_trimed=chk_val.replace(/^\s+|\s+$/g, '') ;

		 if(chk_val_trimed==null || chk_val_trimed.length==0)
			 { 
				alert(warningtext + " can not be blank");
				//namecontrol.focus();
				return "blank";					            
		     }
		else
	            {		return "correct";				
			  }
			  
} //isNotBlank

function isNumber(sText) {

if (sText=="") return false;
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
var dotCnt = 0;

	for (i = 0; i < sText.length && IsNumber == true; i++) {
		Char = sText.charAt(i);
		if (Char==".") dotCnt = dotCnt +1;
		if (ValidChars.indexOf(Char) == -1 || dotCnt>1) {
			IsNumber = false;
		}
	}
return IsNumber;

} //isNumber

function isInteger(sText) {

var s= sText;
if (s.toString().search(/^[0-9]+$/) == 0) {
	return true;
} else {  	
	return false;
}

} //is integer

function isValidTime(namecontrol,warningtext) {

var timeStr= namecontrol.value;

chk_val_trimed=timeStr.replace(/^\s+|\s+$/g, '') ;

		 if(chk_val_trimed==null || chk_val_trimed.length==0)
			 { 
				//alert(warningtext + " can not be blank");
				//namecontrol.focus();
				return "correct";					            
		     }

//else continue validation for values which are not blank

// Checks if time is in HH:MM:SS AM/PM format.
// The seconds and AM/PM are optional.

///var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))$/;

var matchArray = timeStr.match(timePat);
if (matchArray == null) {
	
	alert(warningtext + " is blank or not valid");
	namecontrol.focus();
	return "blank";		
} 

hour = matchArray[1];
minute = matchArray[2];
second = matchArray[4];
ampm = matchArray[6];

if (second=="") { second = null; }
if (ampm=="") { ampm = null }

if (hour < 0  || hour > 23) {
	alert(warningtext + " is not valid");
	//namecontrol.focus();
	return "blank";	
}
if (hour <= 12 && ampm == null) {
	/*
	if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
		alert("You must specify AM or PM.");
		return false;
   }*/
}
if  (hour > 12 && ampm != null) {
	/*
	alert("You can't specify AM or PM for military time.");
	return false;
	*/
	alert(warningtext + " is not valid");
	//namecontrol.focus();
	return "blank";	
}
if (minute<0 || minute > 59) {
	/*
	alert ("Minute must be between 0 and 59.");
	return false;
	*/
	alert(warningtext + " is not valid");
	//namecontrol.focus();
	return "blank";	
}
if (second != null && (second < 0 || second > 59)) {
	/*
	alert ("Second must be between 0 and 59.");
	return false;
	*/
	alert(warningtext + " is not valid");
	//namecontrol.focus();
	return "blank";	
}
return false;

} //IsValidTime

function is_date(val_date)
{
num = val_date;
for(i=0;i<num.length;i++)
  {
     if(((num.charAt(i) >= '0') && (num.charAt(i) <='9')) || (num.charAt(i) == '/'))
      {
      null;
      }
      else
      {
			alert("Invalid Date format");
			return "not_valid";
      }
}   
 var ir=0,jr=0,kr=0,f_mon=0,f_day,date_flag_set=0;
 var is=0,js=0,ks=0,date_flag_sys=0,len=0;
 var year_str;
 var change_date_set;
 var set_date_string;
 var sys_date_string;
 var set_con_date;
 var sys_con_date;
 var sys_day=0,sys_mon=0,sys_year=0;
 var set_day=0,set_mon=0,set_year=0;
 
 err_date='';
 chk_con_date = new Date(1970,1,1);
 
// sys_date_string=val_date.value;
 sys_date_string=val_date;

 js=sys_date_string.length;
 //sys date checking
 for(is=0;is<js;is++)
 {
 //Check first two digit for day.
	if (((sys_date_string.charAt(is) == "/")) && (ks==0))
	 {
	  sys_day = sys_date_string.substring(0,is);
	  sys_day = parseInt(sys_day,10);
		if (isNaN(sys_day))
		{
		 date_flag_sys=1;
		}
		ks=is+1;
	 }
  //check next two digit for month.
	else if (((sys_date_string.charAt(is)=="-") ||
	(sys_date_string.charAt(is)=="/")) && (ks>0))
	{
		sys_mon=parseInt(sys_date_string.substring(ks,is),10);
	 //if variable contains garbage value
		if (isNaN(sys_mon))
		{
			date_flag_sys = 1;
		}
		ks=is+1;
	  }
	  
    //if variable already contains date &
    //month then take the value of year exit from the loop
    if ((sys_day != 0) && (sys_mon !=0))
    {
        sys_year = parseInt(sys_date_string.substring(ks),10);
		if (isNaN(sys_year))
		{
		  date_flag_sys = 1;
		}
        break;
    }
}
    //check the date & month
    if((sys_day > 31) || (sys_mon > 12) || (sys_day < 1) ||
    (sys_mon < 1) || (date_flag_sys == 1)||(sys_year<1900))
    {
			alert("Invalid Date format");
			return "not_valid";

//	   err_date = err_date + '*Invalid Date Format should be dd-mm-yyyy.\n';
    }
    if (((sys_mon == 4)||(sys_mon == 6)||(sys_mon == 9)||(sys_mon == 11)) & (sys_day == 31)) 
    {
			alert("Invalid Date format");
			return "not_valid";

    }  
    
    sys_mon--;
    sys_con_date = new Date(sys_year,sys_mon,sys_day);
    sys_con_date.setYear(sys_year);
    sys_date=new Date();
    

    //check year for 1970
	/*
    if (sys_con_date >sys_date)
    {
   			alert("Invalid Date format");
			return "not_valid";

    } */
    
    return sys_con_date;
}  //is_date


function is_date_withoutAlert(val_date)
{

num = val_date;
for(i=0;i<num.length;i++)
  {
     if(((num.charAt(i) >= '0') && (num.charAt(i) <='9')) || (num.charAt(i) == '/'))
      {
      null;
      }
      else
      { 
			//alert("Invalid Date format");
			return "not_valid";
      }
  }    
 var ir=0,jr=0,kr=0,f_mon=0,f_day,date_flag_set=0;
 var is=0,js=0,ks=0,date_flag_sys=0,len=0;
 var year_str;
 var change_date_set;
 var set_date_string;
 var sys_date_string;
 var set_con_date;
 var sys_con_date;
 var sys_day=0,sys_mon=0,sys_year=0;
 var set_day=0,set_mon=0,set_year=0;
 
 err_date='';
 chk_con_date = new Date(1970,1,1);
 
// sys_date_string=val_date.value;
 sys_date_string=val_date;

 js=sys_date_string.length;
 //sys date checking
 for(is=0;is<js;is++)
 {
 //Check first two digit for day.
	if (((sys_date_string.charAt(is) == "/")) && (ks==0))
	 {
	  sys_day = sys_date_string.substring(0,is);
	  sys_day = parseInt(sys_day,10);
		if (isNaN(sys_day))
		{
		 date_flag_sys=1;
		}
		ks=is+1;
	 }
  //check next two digit for month.
	else if (((sys_date_string.charAt(is)=="-") ||
	(sys_date_string.charAt(is)=="/")) && (ks>0))
	{
		sys_mon=parseInt(sys_date_string.substring(ks,is),10);
	 //if variable contains garbage value
		if (isNaN(sys_mon))
		{
			date_flag_sys = 1;
		}
		ks=is+1;
	  }
	  
    //if variable already contains date &
    //month then take the value of year exit from the loop
    if ((sys_day != 0) && (sys_mon !=0))
    {
        sys_year = parseInt(sys_date_string.substring(ks),10);
		if (isNaN(sys_year))
		{
		  date_flag_sys = 1;
		}
        break;
    }
}
    //check the date & month
    if((sys_day > 31) || (sys_mon > 12) || (sys_day < 1) ||
    (sys_mon < 1) || (date_flag_sys == 1)||(sys_year<1900))
    {
			//alert("Invalid Date format");
			return "not_valid";

//	   err_date = err_date + '*Invalid Date Format should be dd-mm-yyyy.\n';
    }
    if (((sys_mon == 4)||(sys_mon == 6)||(sys_mon == 9)||(sys_mon == 11)) & (sys_day == 31)) 
    {
			//alert("Invalid Date format");
			return "not_valid";

    }  
    
    sys_mon--;
    sys_con_date = new Date(sys_year,sys_mon,sys_day);
    sys_con_date.setYear(sys_year);
    sys_date=new Date();
    

    //check year for 1970
	/*
    if (sys_con_date >sys_date)
    {
   			alert("Invalid Date format");
			return "not_valid";

    } */
    
    return sys_con_date;
}  //is_date_withoutAlert

function isValidEmail(namecontrol,warningtext)
{
    emailStr = namecontrol.value
// This function returns false if the email address pattern is wring else returns true
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

if (matchArray==null) 
{
//	return false;
	if(warningtext !='')
		alert(warningtext + " is not valid");
		
     return "notValid";
}
var user=matchArray[1];
var domain=matchArray[2];

for (i=0; i<user.length; i++) 
{
	if (user.charCodeAt(i)>127) 
	{
//		return false;

		if(warningtext !='')
			alert(warningtext + " is not valid");
			
        return "notValid";
	}
}

for (i=0; i<domain.length; i++) 
{
	if (domain.charCodeAt(i)>127) 
	{
//		return false;
		if(warningtext !='')
			alert(warningtext + " is not valid");
			
        return "notValid";
	}
}

if (user.match(userPat)==null) 
{
	// return false;
	  if(warningtext !='')
		alert(warningtext + " is not valid");
		
       return "notValid";
}

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) 
{
	for (var i=1;i<=4;i++) 
	{
		if (IPArray[i]>255) 
		{
       // return false;
		 if(warningtext !='')
			alert(warningtext + " is not valid");
			
         return "notValid";
		}
	}
return true;
}
 
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) 
{
	if (domArr[i].search(atomPat)==-1) 
	{
	//	return false;
	    if(warningtext !='')
			alert(warningtext + " is not valid");
			
        return "notValid";	
	}
}


if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) 
{
//	return false;
    if(warningtext !='')
		alert(warningtext + " is not valid");
		
    return "notValid";
}

if (len<2) 
{
	//return false;
	if(warningtext !='')
		alert(warningtext + " is not valid");
		
       return "notValid";

}
	return "validEmail";
} //is valid email

function isUnsignedInteger(namecontrol, warningtext){ 

var s=namecontrol.value;
if (s.toString().search(/^[0-9]+$/) == 0) {
	return "valid";
} else {
	if(warningtext !='')
		alert(warningtext + " is not valid");
		
	namecontrol.focus();
	return "notValid";
}

} //isUnsignedInteger

function openWindow(page,width,height) {

OpenWin = this.open(page, "CtrlWindow", "toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width="+width+',height='+height);

} //openWindow

function openwindow_position(page, width, height, top, left) {

		if(!width)
			var width = 400;
		if(!height)
			var width = 400;
		if(!left)
			var width = 20;
		if(!top)
			var width = 20;

		OpenWin = this.open(page, "CtrlWindow", "toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,left="+left+",top="+top+",height="+height+",width="+width+"");

} //openwindow_position

function openwindow_position_controls(page, width, height, top, left) {

		if(!width)
			var width = 400;
		if(!height)
			var width = 400;
		if(!left)
			var width = 20;
		if(!top)
			var width = 20;

		OpenWin = this.open(page, "CtrlWindow", "toolbar=no,menubar=yes,location=no,scrollbars=yes,resizable=yes,left="+left+",top="+top+",height="+height+",width="+width+"");

} //openwindow_position

function confirm_del(pname) {

	ans=confirm("Are you sure to delete this record?");
		if(ans)
		{
			location.href=pname		 
		 }
		 
} //confirm_del	 

function omo_tr_bgcolor(trId) { //onMouseOut toggle tr background
//if(document.getElementById("chk_arr"+trId).checked!=true)
	document.getElementById("tr"+trId).style.backgroundColor="#FFFFFF";
//else
//	document.getElementById("tr"+trId).style.backgroundColor="#FFCC00";
} //omo_tr_bgcolor


function omovr_tr_bgcolor(trId) { //onMouseOver toggle tr background
//if(document.getElementById("chk_arr"+trId).checked!=true)
	document.getElementById("tr"+trId).style.backgroundColor="#F5F5F5";
//else
//	document.getElementById("tr"+trId).style.backgroundColor="#FFCC00";
} //omovr_tr_bgcolor

function list_to_str(cntrl) {
	obj= document.getElementById(cntrl);
	var str='';
	for (var i = 0; i < obj.options.length; i++) {
		if (obj.options[ i ].selected) {
			if(str=='')
				str= obj.options[i].value;
			else
				str= str+','+obj.options[i].value;
		}
		
	} //for	
	return(str);
}

