function openWin(url,left,top,screenX,screenY,w,h){
	helpWin=window.open(url,'Window','left='+left+',top='+top+',screenX='+screenX+',screenY='+screenY+',width='+w+',height='+h+',menubar=yes,resizable=1,scrollbars');
}

function preloadImages(){
	if (document.images){
		var imgFiles = preloadImages.arguments;
		if (document.preloadArray==null)
			document.preloadArray = new Array();
		var i = document.preloadArray.length;
		for (var j=0; j<imgFiles.length; j++) 
			if (imgFiles[j].charAt(0)!="#"){
				document.preloadArray[i] = new Image;
				document.preloadArray[i++].src = imgFiles[j];
			}
	}
}

function DoAlert(datField, message){
    alert(message);
    datField.focus();
    datField.select();
}

function NumericCheck(datString){
	var i, s;
	
	for (i = 0; i < datString.length; i++){
		s = datString.substr(i, 1);
		if	((s < "0" || s > "9") && s != "." && s != "-")
			return false;
	}
	return true;	
}

function DaysInFebruary (year) {
	return (((year%4 == 0) && ((!(year%100 == 0)) || (year%400 == 0))) ? 29 : 28 )
}

function DateValidate(datField){
	var datYear, datMonth, datDay;
	
	if (datField.value == "")
		return false;
	
	msg0 = "Invalid date format. Please ensure date is in [MMM DD, YYYY] format.";
	msg1 = "Invalid Year.";
	msg2 = "Invalid Month.";
	msg3 = "Invalid Day of the Month.";
	msg4 = "Invalid Day.";
		
	datYear = datField.value.substr(8,4);
	datMonth = datField.value.substr(0,3);
	datDay = datField.value.substr(4,2);
	
	datMonth = datMonth.toUpperCase( );

	//check the format
	if	(datField.value.length != 12 ||
		datField.value.substr(3,1) != " " ||
		datField.value.substr(6,1) != "," || 
		datField.value.substr(7,1) != " "){
			DoAlert(datField, msg0);
			return false;
	}
	
	//Check the Year
	if (datYear < 1900 || datYear > 2200 ||NumericCheck(datYear) == false){
		DoAlert(datField, msg1);
		return false;
	}
	
	//Check the Day
	if (datDay == 0 || datDay > 31 || NumericCheck(datDay) == false){
		DoAlert(datField, msg4);
		return false;
	}

	//Check the Month and day of the Month
	switch (datMonth){
		case "JAN":
		case "MAR":
		case "MAY":
		case "JUL":
		case "AUG":
		case "OCT":
		case "DEC":
			if (datDay > 31){
				DoAlert(datField, msg3);
				return false;
			}
			break;
		case "APR":
		case "JUN":
		case "SEP":
		case "NOV":
			if (datDay > 30){
				DoAlert(datField, msg3);
				return false;
			}
			break;
		case "FEB":
			if (datDay > DaysInFebruary(datYear)){
				DoAlert(datField, msg3);
				return false;
			}
			break;
		default:
			DoAlert(datField, msg2);
			return false;
			break;
	}//End of switch
	return true;
}

function displayStatus(type, lenght){
	var s;
	
	switch (type.substr(0,1)){
		case "d" : //date
			s = new String("Enter date in format MMM DD, YYYY");
			break;
		case "f" : //float
			s = new String("Enter ");
			s = s.concat(lenght);
			s = s.concat(" numerics including 2 decimals");
			break;
		case "o" : //optional
			s = new String("Enter ");
			s = s.concat(lenght);
			s = s.concat(" numerics; decimals when required");
			break;
		default : // chars; numerics
			s = new String("Enter ");
			s = s.concat(lenght);
			s = s.concat(" ");
			s = s.concat(type);
			break;
	}
	
	window.self.status = s;
	return true;
}

function removeStatus(){
	window.self.status = '';
	return true;
}

function DoAlert(datField, message){
    alert(message);
    datField.focus();
    datField.select();
}

function checkValue(fld, type){
	switch (type.substr(0,1)){
		case "n" : //numerics
		case "f" : //float
		case "o" : //optional
			if (NumericCheck(fld.value) == false){
				msg = "Please enter a numeric value";
				DoAlert(fld, msg);
				return false;
			}
			break;
		case "d" : //date
			DateValidate(fld);
			break;
		default : //chars
			break;
		
	}
	return true;
}

function checkAction(ActionType, FormName){
	var msg, str;
	
	msg = "This action will ";
	
	switch (ActionType.substr(0,1)){
		case "D" :
			str = "delete";
			break;
		case "C" :
			str = "cancel";
			break;
		default :
			str = "";
			break;
	}
	msg = msg.concat(str);
	msg = msg.concat(" current entry. Do you want to continue?");
	
	if (confirm(msg)){
		str = "document.";
		str = str.concat(FormName);
		str = str.concat(".submit()");
		eval(str);
		return true;
	} 
	else
		return false;
}

function defineTarget(redir, lredir){
	if (lredir != '')	
		document.MainForm.target = '_top';	
	else if (redir != '' )
		document.MainForm.target = '_self';
}

function expandIt(whichEl, Lbl1, Lbl2){
		whichEl.style.display = (whichEl.style.display == "none" ) ? "" : "none";
		Lbl1.style.display = (Lbl1.style.display == "none" ) ? "" : "none";
		Lbl2.style.display = (Lbl2.style.display == "none" ) ? "" : "none";
}