//function MM_findObj(n, d)  
//function MM_setTextOfTextfield(objName,x,newText)  
//function tmt_confirm(msg)
//function MM_openBrWindow(theURL,winName,features)  
//function YY_checkform() 
//function MM_showHideLayers() 
//function TM_UpperCase(strInput)
//function tmt_winOpen(u,id,f,df)
//function IsValidTime(obj,timeStr) 
//function leadingzero(val)
//function backzero(val)
//function createnewoption(formname,selboxname,addvalue)
//function putoptions(frm,obj,obj1nm){  only used in nurse registrations
//function putunits(frm,objget,objput,str){ used in admhospitalrates
//function checkcortime(shift,obj,typ)( called from cross tabulation
//function CheckDate(Obj,dtformat) {
//function Revalidatepassword(obj1,obj2){
//function catchEvent(){ 
//function TM_UpperCase(strInput){
//function textCounter(field, maxlimit,updn) {
//function Trim(X)
//function Mycompdate(X)
//function emailidcheck(objemail)

//for USA phone format


var global_valfield;	// retain valfield for timer thread

function setFocusDelayed()
{  global_valfield.focus();
}
function setfocus(valfield)
{  // save valfield in global variable so value retained when routine exits
  global_valfield = valfield;
  setTimeout( 'setFocusDelayed()', 1);
}

function jm_phonemask(t)
{var patt1 = /(\d{3}).*(\d{3}).*(\d{4})/;
var patt2 = /^\((\d{3})\).(\d{3})-(\d{4})$/;
var str = t.value;
var result;
if (!str.match(patt2))
{result = str.match(patt1);
if (result!= null)
{t.value = t.value.replace(/[^\d]/gi,'');
str = '(' + result[1] + ') ' + result[2] + '-' + result[3];
t.value = str;
}else{
if (t.value.match(/[^\d]/gi))
t.value = t.value.replace(/[^\d]/gi,'');
}}}

//for auto currency format function
function currencyFormat(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
if (whichCode == 13) return true;  // Enter
if (whichCode == 8) return true;  // Delete (Bug fixed)
key = String.fromCharCode(whichCode);  // Get key value from key code
if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}


function checkname(obj)
{
	var val=obj.value;
	if(val.indexOf("!")>=0 || val.indexOf("@")>=0 || val.indexOf("/")>=0  || val.indexOf(";")>=0 || val.indexOf(">")>=0 || val.indexOf("<")>=0 || val.indexOf("?")>=0 || val.indexOf(":")>=0 || val.indexOf("`")>=0 || val.indexOf("#")>=0 || val.indexOf("$")>=0 || val.indexOf("%")>=0 || val.indexOf("^")>=0 || val.indexOf("*")>=0 || val.indexOf("(")>=0 || val.indexOf(")")>=0 || val.indexOf("[")>=0)
	{
		alert("The Following Characters Are Not Allowed\n ! @ / ; > < ? ~ : # $ % ^ * ( )");
		obj.focus();
	}
}

function fnputdefval(frm,objget,strnm,stridnm,editbtn){
// this fn put default values in another field called in hospital rates 
	var str1=eval("frm."+stridnm)
	genarr=new Array();
	if (MM_findObj(editbtn)!="null"){
		genarr=str1.value.split(",");
		for(var k=0;k<=((genarr.length)-1);k++){
		   	eval("frm."+strnm+genarr[k]+".value="+objget.value);
		}
		for (var i=0;i<=frm.elements.length-1;i++){
			if (frm.elements[i].type=="checkbox" && frm.elements[i].name==editbtn){
				for(var k=0;k<=((genarr.length)-1);k++){
					if (frm.elements[i].value==genarr[k]){
						eval("frm.elements["+i+"].checked=true");
					}
				}
			}
		}
	}
}


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function putzerovalue(obj,typ){	obj.value=parseFloat(obj.value);if (obj.value=="NaN"){if (typ!=''){obj.value=typ;} else {obj.value="1";} }  }
function MM_setTextOfTextfield(objName,x,newText) { var obj = MM_findObj(objName); if (obj) obj.value = newText;}
function tmt_confirm(msg){document.MM_returnValue=(confirm(unescape(msg)));}
function MM_openBrWindow(theURL,winName,features) { window.open(theURL,winName,features);}

function checkcompleted(obj)
{
  if (obj.value < 0 || obj.value > 100)
  {
	 alert("Percent Completed should be in the range of 0 to 100");
  }
}
function YY_checkform() { //v3.02
   var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;
  var myForm = MM_findObj(args[0]);
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){var myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
	var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));//eval(myForm+'.'+args[i]);
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
		while(myObj.value.substring(0,1)==" ")
		   {myObj.value=myObj.value.substring(1,myObj.value.length);}
		while(myObj.value.substring(myObj.value.length-1,myObj.value.length)==" ")
		   {myObj.value=myObj.value.substring(0,myObj.value.length-1);}
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1))
      { //fromto
		//alert(myV);
        if (isNaN(parseInt(myV,10))||myV<args[i+1].substring(0,args[i+1].indexOf('_'))/1||myV > args[i+1].substring(args[i+1].indexOf('_')+1)/1)
        {
			addErr=true
		}
		else 
		{//alert(parseFloat(myV));
			myObj.value=parseFloat(myV)
		}
      }
      if ((myV.length>0)&&(args[i+2]==2)&&!myV.match("^[\\w\\.=-]+@[\\w\\.-]+\\.([A-Z]|[a-z]){2,4}$")){addErr=true}// email
      if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myD=''; myM=''; myY=''; myYY=0; myDot=true;
        for(var j=0;j<args[i+1].length;j++){
          var myAt = args[i+1].charAt(j);
          if(myAt=='D')myD=myD.concat(myObj.value.charAt(j));
          if(myAt=='M')myM=myM.concat(myObj.value.charAt(j));
          if(myAt=='Y'){myY=myY.concat(myObj.value.charAt(j)); myYY++}
          if(myAt=='-'&&myObj.value.charAt(j)!='-')myDot=false;
          if(myAt=='.'&&myObj.value.charAt(j)!='.')myDot=false;
          if(myAt=='/'&&myObj.value.charAt(j)!='/')myDot=false;
        }
        if (isNaN(myD)||isNaN(myM)||isNaN(myY))myDot=false;
        if(parseInt(myD,10)<1||parseInt(myD,10)>31||parseInt(myM,10)<1||parseInt(myM,10)>12||myY.length!=myYY)myDot=false;
        if((parseInt(myM,10)==4||parseInt(myM,10)==6||parseInt(myM,10)==9||parseInt(myM,10)==11)&&(parseInt(myD,10)>30))myDot=false;
        if(parseInt(myY,10)%4!=0&&parseInt(myM,10)==2&&parseInt(myD,10)>28)myDot=false;
        if(parseInt(myY,10)%4==0&&parseInt(myM,10)==2&&parseInt(myD,10)>29)myDot=false;
        if(!myDot){addErr=true}
       }
      if ((myV.length>0)&&(args[i+2]==4)){ // time
        myDot=true;
        var myH = myObj.value.substr(0,myObj.value.indexOf(':'))/1;
        var myM = myObj.value.substr(myObj.value.indexOf(':')+1,2)/1;
        var myPold = myObj.value.substr(myObj.value.indexOf(':')+3,3);
		var myP = myPold.replace(" ","");
        if ((args[i+1])=="12:00pm"){if(myH<0||myH>12||myM<0||myM>59||(myP.toUpperCase()!="PM"&&myP.toUpperCase()!="AM")||myObj.value.length>8)myDot=false;}
        if ((args[i+1])=="12:00"){if(myH<0||myH>12||myM<0||myM>59||myObj.value.length>5)myDot=false;}
        if ((args[i+1])=="24:00"){if(myH<0||myH>23||myM<0||myM>59||myObj.value.length>5)myDot=false;}
        if(!myDot){addErr=true}
      }
      if (myV.length>0&&args[i+2]==5){
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(!myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")].checked){addErr=true} // check this 2
          }
    }else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
      if (args[i+2]==1&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='- ' +args[i+3]+'\n'}
      }
    }else
    if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    }else
    if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}

    }else
    if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='- '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!='')
  {
  alert('The required information is incomplete or contains errors:\t\n______________________________________________\n\n'+myErr+'______________________________________________\n Please re-enter and submit again')
  }
  document.MM_returnValue = (myErr=='');
}


function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function TM_UpperCase(strInput){
    var theString = strInput.value;
    var strOutput = "";// Our temporary string used to build the function's output
    var sp = " ";
    var small = false;
    var smallWords = new Array('the','an','a','in','of','to') //words that shouldn't be  capitalized
    theString = theString.replace(/(\s*)([^\s])/,"$2")//remove leading spaces
    theString = theString.toLowerCase();  
    var inputArray = theString.split(sp);
    strOutput = inputArray[0].slice(0,1).toUpperCase()+inputArray[0].slice(1);
    for (i = 1; i < inputArray.length; i++){ 
        small=false;
        for (ii=0;ii<smallWords.length-1;ii++){
           if(inputArray[i] == smallWords[ii]) small = true;
           }
        if(!small) inputArray[i] = inputArray[i].slice(0,1).toUpperCase()+inputArray[i].slice(1);
        strOutput = strOutput + sp + inputArray[i];  
        }
    strInput.value = strOutput;
}

function tmt_winOpen(u,id,f,df){
	if(eval(id)==null||eval(id+".closed")){
	eval(id+"=window.open('"+u+"','"+id+"','"+f+"')");eval(id+".focus()");}
	else if(df){eval(id+".focus()");}
	else{eval(id+"=window.open('"+u+"','"+id+"','"+f+"')");eval(id+".focus()");}
}

function IsValidTime(obj,timeStr) {
	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm|aM|Am|Pm|pM))?$/;
	var matchArray=timeStr.match(timePat);
	if (matchArray==null) {alert("Time is not in a valid format. e.g 04:00AM");obj.focus();return false;}
	hour=matchArray[1];minute=matchArray[2];second=matchArray[4];ampm=matchArray[6];
	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }
	if (ampm == null) {	alert("You must specify AM or PM.");obj.focus();return false;}
	if (hour < 0  || hour > 23) {alert("Hour must be between 0 and 12.");obj.focus();return false;}
	if (hour <= 12 && ampm == null) {alert("You must specify AM or PM.");obj.focus();return false;}
	if (hour > 12 && ampm != null) {alert("Hours are between 0 - 12 only");obj.focus();return false;}
	if (minute<0 || minute > 59) {alert ("Minute must be between 0 and 59.");obj.focus();return false;}
	//if (second != null) {alert ("Seconds not Allowed");	obj.focus();return false;}
    obj.value=leadingzero(hour)+":"+leadingzero(minute)+""+ampm.toUpperCase();
    return true;
}

function leadingzero(val){
	var temp=""+val;
	while (temp.length<2){	temp="0"+temp;	}
	return temp;
}

function backzero(val){
	var temp=""+val;
	while (temp.length<2){	temp=temp+"0";	}
	return temp;
}

function createnewoption(formname,selboxname,addvalue,addtext){
	addvalue=""+addvalue;
	addtext=""+addtext;
	if(eval("document."+formname+"."+selboxname)=="[object]"){
	    var lenofsel = eval("document."+formname+"."+selboxname+".options.length");//got options length
		for(var i=0;i<lenofsel;i++){
		    if(eval("document."+formname+"."+selboxname+".options["+i+"].value=='"+addvalue+"'"))
			{ 
			  alert(addvalue+" already exists in the select box. Enter different content.");
			  return false;																			 				  	         
			}	
		}			
		eval("document."+formname+"."+selboxname+".options.length="+(lenofsel));
        eval("document."+formname+"."+selboxname+".options["+lenofsel+"]= new Option(addtext,addvalue,true,true)");		
		return true;
	}
}

function putoptions(frm,obj,obj1nm){
	var i=0;
    for (i=eval("document."+frm+"."+obj1nm+".options.length");i>0;i--)
		eval("document."+frm+"."+obj1nm+".options["+i+"]="+null);
    for(i=1;i<obj.options.length;i++){
        if (obj.options.selectedIndex != i){
           createnewoption(frm,obj1nm,obj.options[i].value,obj.options[i].text);
        }
    }
	eval("document."+frm+"."+obj1nm+".options[0].selected="+true);
	if (obj1nm=="speciality2"){
        for (i=eval("document."+frm+"."+"speciality3"+".options.length");i>0;i--)
		    eval("document."+frm+"."+"speciality3"+".options["+i+"]="+null);
	}
}

function putunits(frm,objget,objput,str){
	Hospidarray=new Array();Hospnmarray=new Array();Unitsidarray=new Array();Unitsnmarray=new Array();
	genarr=new Array();temparr=new Array();
	genarr=str.split("||");
	for(z=objput.length-1;z>0;z--)
	   eval("frm."+objput+".options["+z+"]=null");
	for(k=0;k<=((genarr.length)-1);k++){
		temparr=genarr[k].split("::");
		Hospidarray[k]=temparr[0];Hospnmarray[k]=temparr[1];Unitsidarray[k]=temparr[2];Unitsnmarray[k]=temparr[3];
		if (Unitsnmarray[k]==""){Unitsnmarray[k]="No Units"}
	}// for end 
    eval("frm."+objput+".options[0].value=''");
	eval("frm."+objput+".options[0].text='---Select---'");
	myarray=new Array();n=1;
	for(s=0;s<=(Hospidarray.length);s++){


		if(objget.options[objget.selectedIndex].value != ''){	
			if(objget.options[objget.selectedIndex].value == Hospidarray[s]){
			   	myarray[n]=new Option(Unitsnmarray[s],Unitsidarray[s]);
			   	eval("frm."+objput+".options["+n+"]=myarray["+n+"]");
			   	eval("frm."+objput+".options[0].selected=true");
				n=n+1;
			}
		}
	}
	if(objget.options[objget.selectedIndex].value == ''){
	   n=0;
	   myarray[n]=new Option('select','');
	   eval("frm."+objput+".options["+n+"]=myarray["+n+"]");
	   eval("frm."+objput+".options[0].selected=true");
    }	
  }

function timediff(st,et,tm) {
	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm|aM|Am|Pm|pM))?$/;
	var marray1 = st.match(timePat);var h1 = marray1[1];var m1 = marray1[2];var s1 = marray1[4];var a1 = marray1[6];
	var marray2 = et.match(timePat);var h2 = marray2[1];var m2 = marray2[2];var s2 = marray2[4];var a2 = marray2[6];
	var newst=parseFloat(h1+"."+m1);	var newet=parseFloat(h2+"."+m2);
	if (a1=="PM"){
		if (parseFloat(h1)!=12)  {newst=newst+12;h1=parseInt(h1,10)+12;}
    }
	if (a2=="PM"){
		if (parseFloat(h2)!=12)  {newet=newet+12;h2=parseInt(h2,10)+12;}
	}
	if (a1=="AM"){
		if (parseFloat(h1)==12)  {newst=newst+12;h1=parseInt(h1,10)+12;}
    }
	if (a2=="AM"){
		if (parseFloat(h2)==12)  {newet=newet+12;h2=parseInt(h2,10)+12;}
	}


	h1=h1-1;h2=h2-1;
	d1= new Date('26 Apr 1926 '+":"+h1+":"+m1);
	if(newet-newst>=0) {
	   d2=new Date('26 Apr 1926 '+":"+h2+":"+m2);
	}
	else {
	   d2=new Date('27 Apr 1926 '+":"+h2+":"+m2);
	}
	var a=d2-d1;
	var b=60*60*1000;
	tm.value=Math.round(a/b,-2);
	var v=Math.ceil((Math.floor(((a/b)-parseInt(a/b,10))*100)*60)/100);
	// the above is in minutes now I am converting this to time
	v=Math.floor(v*100/60);
    tm.value=parseInt(a/b,10)+"."+v;
}


function checkcortime(frm,nurseid,shift,obj,typ){
    var xstdate="";
    var xenddate=""; 
	if (shift=="d")	        { xstdate=new Date(2001,1,1,7,0) ; xenddate=new Date(2001,1,1,15,0);}
	else if	(shift == "e")	{ xstdate=new Date(2001,1,1,15,0); xenddate=new Date(2001,1,1,23,0);}
	else if	(shift == "n")  { xstdate=new Date(2001,1,1,23,0); xenddate=new Date(2001,1,2,7,0) ;}
	else if	(shift == "D")	{ xstdate=new Date(2001,1,1,7,0) ; xenddate=new Date(2001,1,1,19,0);}
	else if (shift == "N")	{ xstdate=new Date(2001,1,1,19,0); xenddate=new Date(2001,1,2,7,0) ;}
	if (xstdate!="" && xenddate!=""){
	    var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm|aM|Am|Pm|pM))?$/;
		var matchArray=obj.value.match(timePat);
		if (matchArray==null) {alert("Time is not in a valid format. e.g 04:00AM");obj.focus();return false;}
		hour=matchArray[1];minute=matchArray[2];second=matchArray[4];ampm=matchArray[6];
		if (second=="") { second = null; }
		if (ampm=="") { ampm = null }
		if (ampm == null) {	alert("You must specify AM or PM.");obj.focus();return false;}
		if (hour < 1  || hour > 23) {alert("Hour must be between 1 and 12.");obj.focus();return false;}
		if (hour <= 12 && ampm == null) {alert("You must specify AM or PM.");obj.focus();return false;}
		if (hour > 12 && ampm != null) {alert("Hours are between 0 - 12 only");obj.focus();return false;}
		if (minute<0 || minute > 59) {alert ("Minute must be between 0 and 59.");obj.focus();return false;}
        if (ampm=="PM"){hour=parseFloat(hour)+12;}
	    var xchkdate=new Date(2001,1,1,hour,minute)
	    if (xchkdate<xstdate || xchkdate>xenddate){alert("!!!Warning!!!\nYou are Exceeding the Shift Timmings.\nSplitting of Shifts is done ONLY in Nurse Schedule");}
	}
}

function CheckDate(Obj,dtformat) {
	var myfnvar=true;
	if ((Obj.value.length>0)&&(dtformat.length>0)){ 
	  var myD=''; myM=''; myY=''; myYY=0; 
	  for(var j=0;j<dtformat.length;j++){
	    var myAt = dtformat.charAt(j);
	    if(myAt=='D')myD=myD.concat(Obj.value.charAt(j));
	    if(myAt=='M')myM=myM.concat(Obj.value.charAt(j));
	    if(myAt=='Y'){myY=myY.concat(Obj.value.charAt(j)); myYY++}
	    if(myAt=='-'&&Obj.value.charAt(j)!='-')myfnvar=false;
	    if(myAt=='.'&&Obj.value.charAt(j)!='.')myfnvar=false;
	    if(myAt=='/'&&Obj.value.charAt(j)!='/')myfnvar=false;
	  }
	  if (isNaN(myD)||isNaN(myM)||isNaN(myY))myfnvar=false;
	  if(parseInt(myD,10)<1||parseInt(myD,10)>31||parseInt(myM,10)<1||parseInt(myM,10)>12||myY.length!=myYY)myfnvar=false;
	  if((parseInt(myM,10)==4||parseInt(myM,10)==6||parseInt(myM,10)==9||parseInt(myM,10)==11)&&(parseInt(myD,10)>30))myfnvar=false;
	  if(parseInt(myY,10)%4!=0&&parseInt(myM,10)==2&&parseInt(myD,10)>28)myfnvar=false;
	  if(parseInt(myY,10)%4==0&&parseInt(myM,10)==2&&parseInt(myD,10)>29)myfnvar=false;
	 }
     if(myfnvar){return true} else {alert("Invalid Date"+"\n"+"Please enter date in MM/DD/YYYY format");Obj.focus();return false}
}

function Revalidatepassword(obj1,obj2){
	if (obj1.value != obj2.value) {
		alert("Passwords do not match\nPlease Retype your Passwords");
		obj1.focus();return false;
	}	
}

function TM_UpperCase(strInput){
    var theString = strInput.value;
    strInput.value = theString.toUpperCase();  
}

function textCounter(field, maxlimit,updn) {
    if (window.event.keyCode!=35 && window.event.keyCode!=36 && window.event.keyCode!=37 && window.event.keyCode!=38 && window.event.keyCode!=39 && window.event.keyCode!=40)  {
		if (field.value.length > maxlimit)	{
			// if too long...trim it!
			field.value = field.value.substring(0, maxlimit);
		}
		if (updn==1 && field.value.length >= maxlimit){ 
			alert('The text entered has exceeded the maximum number of characters ie ' +maxlimit+' chars.');
		}
    }
}

function RemoveGurantee(statusobj,guraobj){
  if (statusobj.options[statusobj.selectedIndex].value!="C") {guraobj.checked=false;}
}

function ChkGurantee(statusobj,guraobj){
  if (guraobj.checked==true){
	 if (statusobj.options[statusobj.selectedIndex].value!="C") {
	    alert("Only Confirmed shifts can be Guranteed.");guraobj.checked=false;
	 }
  }	 
}

function generateoptions(objput,str) {
	//alert(objput.name + " " + str);
	var val=objput.options[objput.selectedIndex].value;
	idarray=new Array();nmarray=new Array();
	genarr=new Array();temparr=new Array();
	genarr=str.split("||");
	for(z=objput.length-1;z>0;z--)
	   eval("objput.options["+z+"]=null");
	for(k=0;k<=((genarr.length)-1);k++){
		temparr=genarr[k].split("::");
		idarray[k]=temparr[0];nmarray[k]=temparr[1];
	}// for end 
    eval("objput.options[0].value=''");
	eval("objput.options[0].text='---Select---'");
	eval("objput.options[0].selected=true");
	myarray=new Array();n=1;
	for(s=0;s<=(idarray.length)-1;s++){
		myarray[n]=new Option(nmarray[s],idarray[s]);
		eval("objput.options["+n+"]=myarray["+n+"]");
		if (idarray[s]==val) {eval("objput.options["+n+"].selected=true"); } 
		n=n+1;
	}
}

function mycompdate(fdate,sdate,comptype,msg){
//pass whether fdate should be greater,equal or less then second date. 
	var dt1 = new Date(fdate);
	var dt2 = new Date(sdate);
	var rtnval = false
	rtnval=false; //assume their is an error
	master:
	switch(comptype){
		case "G" :	if(dt1>dt2)
					rtnval=true;
					break master;	
		case "L" :  if(dt1<dt2)
					rtnval=true;
					break master;
		case "GE":  if(dt1>=dt2)
					rtnval=true;
					break master;

		case "LE":  if(dt1<=dt2)
					rtnval=true;
					break master;
		}
   if(!rtnval&&msg!=""){alert(msg);}  		
   return rtnval; 	 
}


function trim(x){
    var tempword=x;
	if(tempword==""||tempword==null){tempword="";}
	if (tempword==""){return tempword;}
	while(tempword.substring(0,1)==" "){ tempword=tempword.substring(1,tempword.length);}
	while(tempword.substring(tempword.length-1,tempword.length)==" "){tempword=tempword.substring(0,tempword.length-1);}   
	return tempword;
}

function emailidcheck(objemail)
{
  if(objemail.value!="")
    {
	 str1=objemail.value.indexOf("@");
	 str2=objemail.value.indexOf(".");
	 flag=false;
	 if(str1>0 && str2>0)
	    {
		str1=parseInt(str1)+1;
		if(str2>str1)
			{
			   flag=true;
			}
	    }
	 if(flag==false)
	   {
		alert("enter the Correct Email-Id");
		objemail.value="";
		objemail.focus();
	   }
    }

}

function mycheckdate(obj)
{
	var d=obj.value;
	var mm=d.substr(0,2);
	var dd=d.substr(3,2);
	var yy=d.substr(6,4);
	var dt = new Date();
	var cyr = dt.getFullYear();
	//alert(cyr);
	if(obj.value!="")
    {
if(obj.value==""||obj.value==null||obj.value.indexOf("/")==obj.value.lastIndexOf("/")||obj.value.indexOf("/")<0||obj.value.length<8||obj.value.length==8 ||obj.value.length>10 ||obj.value.length==9||obj.value.indexOf("/")==0||obj.value.lastIndexOf("/")==obj.value.length-1) 
	{
		 //obj.value = "";
		alert("Enter Date in MM/DD/YYYY Format. e.g. 01/10/2002");
		 obj.focus();
		 return false;
	}
	var flag="y";
	var y=d.split("/");
	for(var i=0;i<=y.length-1;i++){ //check for alphabets
		if(isNaN(y[i])){ //isNaN(d[0]) && isNaN(d[1]) && isNaN(d[2]))
							flag="n";
						}
									} //for loop
		if (flag=="n"){
					//obj.value = "";
					alert("Please enter valid characters.");
		   			obj.focus();
					return false; 
						} //if
	if(yy%4!=0&&mm==02&&dd>28){
						//check for leap year
						//obj.value = "";
						alert("Invalid Date, February Month has only 28 days for the entered year.");
						obj.focus();
						return false;
										} //if
	if(dd<=0||dd>31||mm<=0||mm>12||yy<=0000){
		//alert("(Day)Invalid Date");
		//obj.value = "";
		alert("Check Month,Day And Year. Year must be greater than 0000.");
		obj.focus();
		return false;
												}
	if(mm%2!=0&&(mm==09||mm==11)&&(dd>30)){
		//obj.value = "";
		alert("Please Check your date part for the Given Month.");
		
		obj.focus();
					return false;
										 }
	if((mm==04||mm==06)&&dd>30){
			   //obj.value = "";
			 
		alert("Please Check your date part for the Given Month.");
		
			   obj.focus();
			   return false;
					}
	/*if (yy > cyr)
	{
	//obj.value = "";
	 
	alert("Year cannot be greater than current year.");
	obj.focus();
	return false;
	}*/	
	return true;
  }
 }



function setFocusDelayed()
{
  global_valfield.focus();
}
function setfocus(valfield)
{
  // save valfield in global variable so value retained when routine exits
  global_valfield = valfield;
  setTimeout( 'setFocusDelayed()', 1);
}

function checkdate(objName){
var datefield = objName;
if (datefield.value!=""){
if(datefield.value.length<8)
{
	datefield.select();
	alert("That date is invalid.  Please try again.");
	setfocus(datefield);
	return false;
}
else{
if (chkdate(objName) == false)
{
	datefield.select();
	alert("That date is invalid.  Please try again.");
	setfocus(datefield);
	return false;
}
else 
{
return true;
}
}
}}


function chkdate(objName) {
var strDatestyle = "US"; //United States date style
//var strDatestyle = "EU";  //European date style
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "01"//"Jan";
strMonthArray[1] = "02"//"Feb";
strMonthArray[2] = "03"//"Mar";
strMonthArray[3] = "04"//"Apr";
strMonthArray[4] = "05"//"May";
strMonthArray[5] = "06"//"Jun";
strMonthArray[6] = "07"//"Jul";
strMonthArray[7] = "08"//"Aug";
strMonthArray[8] = "09"//"Sep";
strMonthArray[9] = "10"//"Oct";
strMonthArray[10] ="11"//"Nov";
strMonthArray[11] ="12"//"Dec";
strDate = datefield.value;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
if (strYear.length == 2) {
strYear = '20' + strYear;
}
// US style
if (strDatestyle == "US") {
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}
else {
if (intday > 28) {
err = 10;
return false;
}
}
}
if (strDatestyle == "US") {
datefield.value = strMonthArray[intMonth-1] + "/" + intday+ "/" + strYear;
}
else {
datefield.value = intday + "/" + strMonthArray[intMonth-1] + "/" + strYear;
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
function doDateCheck(from, to) {
if (Date.parse(from.value) <= Date.parse(to.value)) {
alert("The dates are valid.");
}
else {
if (from.value == "" || to.value == "") 
alert("Both dates must be entered.");
else 
alert("To date must occur after the from date.");
   }
} 
 /*function mycheckdate(obj)
{
	var d=obj.value;
	var mm=d.substr(0,2);
	var dd=d.substr(3,2);
	var yy=d.substr(6,4);
	var dt = new Date();
	var cyr = dt.getFullYear();
	//alert(cyr);
	if(obj.value!="")
    {
if(obj.value==""||obj.value==null||obj.value.indexOf("/")==obj.value.lastIndexOf("/")||obj.value.indexOf("/")<0||obj.value.length<8||obj.value.length==8 ||obj.value.length>10 ||obj.value.length==9||obj.value.indexOf("/")==0||obj.value.lastIndexOf("/")==obj.value.length-1) 
	{
		 //obj.value = "";
		 if ((obj = document.frmdata.txtdob)||(obj = document.frmmem.txtdob))
		 {
		 alert("Enter Date of birth in MM/DD/YYYY Format e.g. 01/10/2002");
		 }
		 if ((obj = document.frmdata.txtdod)||(obj = document.frmmem.txtdod))
		 {
		 alert("Enter Date of death in MM/DD/YYYY Format e.g. 01/10/2002");
		 }
		 if ((obj = document.frmdata.txtdom)||(obj = document.frmmem.txtdom))
		 {
		 alert("Enter Date of marriage in MM/DD/YYYY Format e.g. 01/10/2002");
		 }
		 obj.focus();
		 return false;
	}
	var flag="y";
	var y=d.split("/");
	for(var i=0;i<=y.length-1;i++){ //check for alphabets
		if(isNaN(y[i])){ //isNaN(d[0]) && isNaN(d[1]) && isNaN(d[2]))
							flag="n";
						}
									} //for loop
		if (flag=="n"){
					//obj.value = "";
					 if ((obj = document.frmdata.txtdob)||(obj = document.frmmem.txtdob))
					{
		   			alert("Please enter valid characters for Date of birth");
		   			}
		   			 if ((obj = document.frmdata.txtdod)||(obj = document.frmmem.txtdod))
					{
		   			alert("Please enter valid characters for Date of death");
		   			}
		   			 if ((obj = document.frmdata.txtdom)||(obj = document.frmmem.txtdom))
					{
		   			alert("Please enter valid characters for Date of marriage");
		   			}
		   			obj.focus();
					return false; 
						} //if
	if(yy%4!=0&&mm==02&&dd>28){
						//check for leap year
						//obj.value = "";
						 if ((obj = document.frmdata.txtdob)||(obj = document.frmmem.txtdob))
						{
						alert("Invalid Date of birth, February Month has only 28 days for the entered year.");
						}
						if ((obj = document.frmdata.txtdod)||(obj = document.frmmem.txtdod))
						{
						alert("Invalid Date of death, February Month has only 28 days for the entered year.");
						}
						if ((obj = document.frmdata.txtdom)||(obj = document.frmmem.txtdom))
						{
						alert("Invalid Date of marriage, February Month has only 28 days for the entered year.");
						}
						obj.focus();
						return false;
										} //if
	if(dd<=0||dd>31||mm<=0||mm>12||yy<=0000){
		//alert("(Day)Invalid Date");
		//obj.value = "";
		 if ((obj = document.frmdata.txtdob)||(obj = document.frmmem.txtdob))
		{
		alert("Check Month,Day And Year of Date of birth . Year must be greater than 0000.");
		}
		if ((obj = document.frmdata.txtdod)||(obj = document.frmmem.txtdod))
		{
		alert("Check Month,Day And Year of Date of death . Year must be greater than 0000.");
		}
		if ((obj = document.frmdata.txtdom)||(obj = document.frmmem.txtdom))
		{
		alert("Check Month,Day And Year of Date of marriage . Year must be greater than 0000.");
		}
		obj.focus();
		return false;
												}
	if(mm%2!=0&&(mm==09||mm==11)&&(dd>30)){
		//obj.value = "";
		 if ((obj = document.frmdata.txtdob)||(obj = document.frmmem.txtdob))
		{
		alert("Please Check your date part for the Given Month of Date of birth.");
		}
		if ((obj = document.frmdata.txtdod)||(obj = document.frmmem.txtdod))
		{
		alert("Please Check your date part for the Given Month of Date of death.");
		}
		if ((obj = document.frmdata.txtdom)||(obj = document.frmmem.txtdom))
		{
		alert("Please Check your date part for the Given Month of Date of marriage.");
		}
		obj.focus();
					return false;
										 }
	if((mm==04||mm==06)&&dd>30){
			   //obj.value = "";
			   if ((obj = document.frmdata.txtdob)||(obj = document.frmmem.txtdob))
		{
		alert("Please Check your date part for the Given Month of Date of birth.");
		}
		if ((obj = document.frmdata.txtdod)||(obj = document.frmmem.txtdod))
		{
		alert("Please Check your date part for the Given Month of Date of death.");
		}
		if ((obj = document.frmdata.txtdom)||(obj = document.frmmem.txtdom))
		{
		alert("Please Check your date part for the Given Month of Date of marriage.");
		}
			   obj.focus();
			   return false;
					}
	if (yy > cyr)
	{
	//obj.value = "";
	 if ((obj = document.frmdata.txtdob)||(obj = document.frmmem.txtdob))
		{
	alert("Year cannot be greater than current year for Date of birth.");
	}
	if ((obj = document.frmdata.txtdod)||(obj = document.frmmem.txtdod))
		{
	alert("Year cannot be greater than current year for Date of death.");
	}
	if ((obj = document.frmdata.txtdom)||(obj = document.frmmem.txtdom))
		{
	alert("Year cannot be greater than current year for Date of marriage.");
	}
	obj.focus();
	return false;
	}	
	return true;
  }
 }*/

