// $Log:   R:/pvcs/website/archives/SentryServ/functions.js-arc  $
//
//   Rev 1.0   Apr 04 2005 09:11:00   bartek
//Initial revision.
//Resolution for 22177: CF Application Infrastructure Design and Development

// these are site-wide scripts
// (((((((((((((((((((((((((((((((((((0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
// (((((((((((((((((((((((((((((((((((0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))	

// put focus on first form field 
		function placeFocus() {
			if (document.forms.length > 0) {
				var field = document.forms[0];
				for (i = 0; i < field.length; i++) {
				//this is a hack to ignore fieldset tags when looking thru form elements...didn't have time for a more elegant solution
				if (field.elements[i].id != "ignore"){
					if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea") || (field.elements[i].type.toString().charAt(0) == "s")) {
						document.forms[0].elements[i].focus();
						break;
					 }
				 	}
			  }
		   }
		}

// (((((((((((((((((((((((((((((((((((0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
// student search validation...do not allow blank form to be submitted at at least two characters long
	function validateST(){
		//alert('intofunction');
		if (document.forms.submitform.st_first_name.value == "" && document.forms.submitform.st_last_name.value == "" && document.forms.submitform.st_number.value == ""){
			alert("Please enter at least one of the following: \n First Name \n Last Name \n  RMU ID");
			return false;
		}
		/*if (document.forms.submitform.st_first_name.value.length < 3){
			alert("NOT FREAKING LONG ENOUGH");
			return false;
		} */
	}

// (((((((((((((((((((((((((((((((((((0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
// pe search validation...do not allow blank form to be submitted
	function validatePE(){
		if (document.forms.submitform.pe_first_name.value == "" && document.forms.submitform.pe_last_name.value == "" && document.forms.submitform.pe_number.value == ""){
			alert("Please enter at least one of the following: \n first name \n last name \n pe number");
			return false;
		}
	}
	

// (((((((((((((((((((((((((((((((((((0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))	
// pop new winders
		function NewWindow(mypage, myname, w, h, toolbar, resizable, scrollbars) {
			var winl = (screen.width - w) / 2;
			var wint = (screen.height - h) / 2;
			winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+', toolbar='+toolbar+', resizable='+resizable+', scrollbars='+scrollbars+','
			win = window.open(mypage, myname, winprops)
			if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
		}

// (((((((((((((((((((((((((((((((((((0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))	
// (((((((((((((((((((((((((((((((((((DATE VALIDATE)))))))))))))))))))))))))))))))))))))))))))))))))))))))))	

// date validation
		var dtCh= "/";
		var minYear=1900;
		var maxYear=2100;
		
		function isInteger(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"))) return false;
			}
			// All characters are numbers.
			return true;
		}
		
		function stripCharsInBag(s, bag){
			var i;
			var returnString = "";
			// Search through string's characters one by one.
			// If character is not in bag, append to 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){
			// February has 29 days in any year evenly divisible by four,
			// EXCEPT for centurial years which are not also divisible by 400.
			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 isDate(dtStr){
			var daysInMonth = DaysArray(12);
			var pos1=dtStr.indexOf(dtCh);
			var pos2=dtStr.indexOf(dtCh,pos1+1);
			var strMonth=dtStr.substring(0,pos1);
			var strDay=dtStr.substring(pos1+1,pos2);
			var strYear=dtStr.substring(pos2+1);
			strYr=strYear;
			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 (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
			}
			month=parseInt(strMonth, 10);
			day=parseInt(strDay);
			year=parseInt(strYr);
			if (pos1==-1 || pos2==-1){
				alert("The date format should be : mm/dd/yyyy");
				return false;
			}
			if (strMonth.length<1 || month<1 || month>12){
				alert("Please enter a valid month");
				return false;
			}
			if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
				alert("Please enter a valid day");
				return false;
			}
			if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
				alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
				return false;
			}
			if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
				alert("Please enter a valid date");
				return false
			}
		return true;
		}
		
		function checkDate(objName){
			var dt=objName;
			if ((dt.value != '') && (isDate(dt.value)==false)){
				objName.focus();
				objName.select();
				return false;
			}
			return true;
		 }

// (((((((((((((((((((((((((((((((((((0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))	


//resets form fields on forms that are pre-populated and load at bottom of search results page

	function resetLoadedForm(form) {
			formElements = form.elements;
			//alert('into function');
			//loop thru form elements and set value to null
			for(i=0;i<formElements.length;i++){
				//alert(formElements[i].type);
				if(formElements[i].type == 'text' || formElements[i].type == 'hidden' ||
					formElements[i].type == 'select-one'){
					formElements[i].value = '';
					}//close if not submit or button
				if(formElements[i].type == 'radio'){
					formElements[i].checked = false;
					}//close if
				if(formElements[i].type == 'checkbox'){
					formElements[i].checked = false;
					}//close if
				}//close for
			
			}//close function
	
	//(((((((((((((((((((((((((((((((((((((((((((((((((0))))))))))))))))))))))))))))))))))))))))))))
//<><><><><<<<RFS>>>>><><><><>

	//show required fields

	function ShowRequired(){
		formElements = document.forms.submitform.elements;
		for (i=0; i<formElements.length; i++){
				if(formElements[i].title == 'required'){
					//text inputs get bordercolor red and selects get background red
					if(formElements[i].type == 'select-one'){
						formElements[i].style.background = '#005196';
						}
					else {
						formElements[i].style.borderColor = '#005196';
					}
				}//close if title = required
		}//close for
	}//close main
	   
	