<!--//

//Disable the batch approval button until they select something
function enableBatch(){
var i;
var fmObject=document.forms[0];
	if(fmObject !=undefined){
		for(i=0;i<fmObject.length;i++){
			if(fmObject.elements[i].type=='checkbox'){
				if(fmObject.elements[i].checked==true){
					fmObject.Submit.disabled=false;
					break;
				}else{
					fmObject.Submit.disabled=true;
				}
			}
		}
	}
}
//Make sure Approve & Reject checkboxes are not both seleted
function compCheck(objName,objValue){
	var fmObject=document.forms[0];
	var checkArray = fmObject[objName]; 
	var isChecked = objValue.substring(0,1);
	if(isChecked=='Y' && checkArray[0].checked==true){
		checkArray[1].checked = false;
	}
	if (isChecked=='N' && checkArray[1].checked==true){
		checkArray[0].checked = false;
	}
}

function selAll(){
	var fmObject=document.forms[0];
	var checkArray;
	if(fmObject !=undefined){
		for(i=0;i<fmObject.length;i++){
			if(fmObject.elements[i].type=='checkbox'){
				checkArray=(fmObject[fmObject.elements[i].name])
				checkArray[0].checked=true;
				checkArray[1].checked=false;
			}
		}
	}
	fmObject.Submit.disabled=false;
}
//Disable the enter key so forms wont be submitted
function kH(e) {
	var nav = window.Event ? true : false; 
	var pK = document.all? window.event.keyCode:e.which;
	if(nav){
		if(e.target.type != 'textarea'){
			return pK != 13;
		}	
	}else{
		if(event.srcElement.type!='textarea'){
			return pK != 13;
		}
	}
}
document.onkeypress = kH;
if (document.layers) document.captureEvents(Event.KEYPRESS);

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 findObj(objname) {
	var n, i;
	for ( n = 0; n < document.forms.length; n++ ) {
		for ( i = 0; i < document.forms[n].elements.length; i++ ) {
			if ( document.forms[n].elements[i].name == objname ) {
				return document.forms[n].elements[i];			
			}
		}	
	}
	return null;
}

function findObjWindow(objname,winName) {
	var n, i;
	for ( n = 0; n < winName.document.forms.length; n++ ) {
		for ( i = 0; i < winName.document.forms[n].elements.length; i++ ) {
			if ( winName.document.forms[n].elements[i].name == objname ) {
				return winName.document.forms[n].elements[i];			
			}
		}	
	}
	return null;
}

//display calender with sat only date option or with all dates option for expenses
function showCal(objname,wloc,event,name,calFlag) {
	var varName = document.forms[0].name;
	var date = (objname);
	var nFile = "include/Calendar.asp?date=" + date +"&fmName=" + varName +  "&calFlag=" + calFlag+"&fldName=" +name;	
	var width = 300, height = 167;
	var xPos=event.screenX;
	var yPos=event.screenY;
	//incase they are using netscape
	if (xPos == "undefined" || xPos == null){
		xPos=(eventObj.screenX);
		yPos=(eventObj.screenY);
	}
	var left = xPos, top = yPos - (height + 50);
	if ( top < 20 )	top = 20;		
	if ( (left + width) > screen.width ) left = screen.width - (width + 10);
	if ( wloc == undefined )
		wloc = '';
	else if ( wloc != '' ) {
		wloc = wloc + '/';
	}
	props = 'status=no,titlebar=no,resizable=no,left=' + left + ',top=' + top + ',width=' + width + ',height=' + height
	win = window.open(wloc + nFile, 'calendar', props);
	return false;
}
//make sure weekending date is in M/D/YY format
//This function is used in Expenses and Time sheets
function valWeek(fmName,varName,CalcType){
var fmObject=document[fmName];
	if((fmObject.weekend==null)||(fmObject.weekend=="undefined")){
		var wValue=varName.value;
		var expFlag='true';
	}else{
		var wValue=fmObject.weekend.value;
	}
var wExp = /^\d{1,2}\/\d{1,2}\/\d{2}$/;
var mssg="Your weekending date\nmust be in MM/DD/YY format";
var mssgExp="Your expense date\nmust be in MM/DD/YY format";
	if(wExp.test(wValue)==false){
		if(expFlag=='true'){
			var expFlag=mssgExp;
			return expFlag;
			return false;
		}else{
			alert(mssg);
			return false;
		}
	}
	else{
		var StringVal = wValue.indexOf("/");
		var comNum = parseInt(wValue.substring(0,StringVal),10);
			if ((comNum > 12) || (comNum <= 0)){
				if(expFlag=='true'){
					var expFlag=mssgExp;
					return expFlag;
					return false;
				}else{
					alert(mssg);
					return false;
				}
			}
		var midVal = wValue.lastIndexOf("/");
		var midNum = parseInt(wValue.substring((StringVal+1),midVal),10);
			if ((midNum > 31) || (midNum <= 0)){
				if(expFlag=='true'){
					var expFlag=mssgExp;
					return expFlag;
					return false;
				}else{
					alert(mssg);
					return false;
				}
			}
	}
	//If its expenses compare the date to make sure its not more than 2 mons old
	if(expFlag=='true'){
		var textArray=CalcType.split('/');
		var enterDate=new Date();
			enterDate.setFullYear(parseInt(textArray[2]),(parseInt(textArray[0])-1),parseInt(textArray[1]));
		var exitArray=wValue.split('/');
		var exitDate=new Date();
		var	varYear=20+exitArray[2];
			exitDate.setFullYear(parseInt(varYear),(parseInt(exitArray[0])-1),parseInt(exitArray[1]));
		var difference=enterDate-exitDate//unit is milliseconds
			formatdifference=Math.round(difference/1000/60/60/24) //now unit is days
			if(formatdifference >= 60){
				confirm('Please Verify Dates!');
			}
	}
	return true;
}

//make sure weekending application dates are in  MM/DD/YY format
function valDates(varName,strErrors,bgColor){
var fmObject=document.forms[0];
var fmObjWName=fmObject[varName];
var wValue=fmObject[varName].value;
var wExp = /^\d{2}\/\d{2}\/\d{2}$/;
var errors=strErrors;
	if(wExp.test(wValue)==false){
		fmObjWName.style.background=bgColor;
		return errors=errors+'Dates must be in MM/DD/YY format\n';
	}
	else{
		var StringVal = wValue.indexOf("/");
		var comNum = parseInt(wValue.substring(0,StringVal),10);
			if ((comNum > 12) || (comNum <= 0)){
				fmObjWName.style.background=bgColor;
				return	errors=errors+'Dates must be in MM/DD/YY format\n';
			}
		var midVal = wValue.lastIndexOf("/");
		var midNum = parseInt(wValue.substring((StringVal+1),midVal),10);
			if ((midNum > 31) || (midNum <= 0)){
				fmObjWName.style.background=bgColor;
				return	errors=errors+'Dates must be in MM/DD/YY format\n';
			}else{
				return '';
			}
	}
}
//make sure weekending application dates are in  MM/YYYY format
function valDatesShort(varName,strErrors,bgColor){
var fmObject=document.forms[0];
var fmObjWName=fmObject[varName];
var wValue=fmObject[varName].value;
var wExp = /^\d{2}\/\d{4}$/;
var errors=strErrors;
	if(wExp.test(wValue)==false){
		fmObjWName.style.background=bgColor;
		return errors=errors+'Dates must be in MM/YYYY format\n';
	}
	else{
		var StringVal = wValue.indexOf("/");
		var comNum = parseInt(wValue.substring(0,StringVal),10);
			if ((comNum > 12) || (comNum <= 0)){
				fmObjWName.style.background=bgColor;
				return	errors=errors+'Dates must be in MM/YYYY format\n';
			}else{
				return '';
			}
	}
}

//Hats for Skills Long App
var waitwin;
function waitmsg(varType) {
	if(varType=='skill'){
		var nFile = "popups/loadhats.htm";
	}else{
		var nFile = "popups/loadcerts.htm";
	}	
	if(varType=='loadPage'){
		var nFile = "popups/loadPage.htm";
	}
	var w = 300, h = 175;	
	var top = (screen.height - h)/2
	var left = (screen.width - w)/2;
	waitwin = window.open(nFile, 'hat_wait','status=no,titlebar=no,resizable=no,left=' + left + ',top=' + top + ',width=' + w + ',height=' + h);		
	return false;
}

function updateSelections() {
	var selArray;
	with ( document.mandinfo ) {
		selArray = new Array(hatselect.options.length);		
		reqskills.value = "";
		for ( i = 0; i < hatselect.options.length; i++ ) {
			if ( hatselect.options[i].value != "" )
				selArray[i] = hatselect.options[i].value;
		}				
		reqskills.value = selArray.join();				
	}
}

function selectHat(hid, hdesc) {	
	var maxAdd = 255;
	with ( document.mandinfo ) {		
		cnt = hatselect.options.length;
		if ( cnt >= maxAdd ) {
			alert('You are only allowed to have ' + maxAdd + ' skills.')
			return;
		}
		hatselect.options[cnt] = new Option(hdesc, hid, false, false);			
		updateSelections();				
	}	
}

function removeHats(fAll) {
	var i;
	with ( document.mandinfo ) {		
		for ( i = 0; i < hatselect.options.length ; ) {
			if ( (fAll == 'true') || hatselect.options[i].selected )				
				hatselect.options[i] = null;
			else
				i++;	
		}
	}	
	updateSelections();	
}

//dynamically select list boxes
function selectOption(selobj, scode) {
	var i
	for ( i = 0; i < selobj.length; i ++ ) {
		if ( selobj.options[i].value == scode ) {                              
			selobj.options[i].selected = true;
			break;
		}
	}
}
 
function selectOptions(selobj, slist) {
	var i, carray       
	carray = slist.split(",");    
	for ( i = 0; i < carray.length; i++ ) {                                   
		selectOption(selobj, carray[i]);   
	}
}

//Submitted time and expenses nag(unsubmit?) 9-19-07
function runSubmit(pageWithQueryVals){
	var fmObject=document.forms[0];
	fmObject.action = pageWithQueryVals;
}

function isSubmitted(subValue,tcViewer){
	if(subValue=='true'){
		var answer = confirm("'Warning!! You are about to unsubmit your T&E report.\nThis may affect your pay. Do you wish to continue? ")
	}else{
		return newTimeSubmit(tcViewer); // this routine is in timefunction.asp
	}
	if(answer == true){
		return newTimeSubmit(tcViewer); 
	}else{
		return false;
	}
}

//states, countries and schools 
//Set globals for child window
var parentForm ='';
var hiddenValue ='';
var hideName ='';
var showName ='';

function popSelect(displayState,hiddenVal,hiddenName,showStateName,event){
	var varName = document.forms[0].name;
	if(window.winOpen){
		window.winOpen.close()
	}
	if(event.keyCode == 9){
		return false;
	}
	
	var nFile = "showLocation.asp?displayState=" + displayState 
		if (displayState == 'displayState'){
			var width = 285, height = 10;
		}else if(displayState =='displayCountry'){
			var width = 260, height = 10;
		}else if(displayState=='displaySchool'){
			var width = 590, height = 10;
		}
	var xPos=event.screenX;
	var yPos=event.screenY;
	//incase they are using netscape
	if (xPos == "undefined" || xPos == null){
		xPos=(eventObj.screenX);
		yPos=(eventObj.screenY);
	}
	var left = xPos, top = yPos - (height + 50);
	if ( top < 20 )	top = 20;		
	if ( (left + width) > screen.width ) left = screen.width - (width + 10);
	
	//set the variables the window will need when it opens
	hiddenValue = hiddenVal;
	hideName = hiddenName;
	showName = showStateName;
	parentForm = varName;
	
	props = 'status=no,titlebar=no,resizable=no,left=' + left + ',top=' + top + ',width=' + width + ',height=' + height
	var winOpen = open(nFile, 'Location', props);

}

//-->