//Standard Validation Javascript
//2003- Chris Marshall - Migrant Student Records System
//Sept '03 -- Added code to disable submit buttons when an error is thrown
//June 15th 2004 - Change /validates if date is 5 days in future or 2 years in past for Enrollments to 3 years
//Sept 14th 2004 pgw - Added ValNum2

var currSubmitDisabled = false;
var errorCallerID;

function CountWordsLeft(myForm, field, count, no_words) {
    var text=field.value + " ";
    if(no_words>0)
    {
        var iwhitespace = /^[^A-Za-z0-9]+/gi; // remove initial whitespace
        var left_trimmedStr = text.replace(iwhitespace, "");
        var na = rExp = /[^A-Za-z0-9]+/gi; // non alphanumeric characters
        var cleanedStr = left_trimmedStr.replace(na, " ");
        var splitString = cleanedStr.split(" "); 
        var word_count = splitString.length -1;
        count.value=word_count;
    }
}

//--></
		//validates text
		function valText(objectName){
			frmObject = document.getElementById(objectName);
			if((frmObject.value.search(/^[a-zA-Z\x20]+$/)) == -1){
				if(frmObject.value != '' && frmObject.value != ' '){
			 		hideErrorDiv(objectName);
			 		changeErrorText('Text Only', objectName);
					errorCallerID = objectName;
					disableSubmit(true,objectName);
			 		return 1;
				} else {
					hideErrorDiv(objectName);
					disableSubmit(false,objectName);
			  		return 0;
				}
			}else{
			  hideErrorDiv(objectName);
			  disableSubmit(false,objectName);
			  return 0;
			}
		}
		
		//validates Not * Only
		function valStar(objectName){
			frmObject = document.getElementById(objectName);
			if (frmObject.value.length=1) {
				if (frmObject.value=="*"){
			 		hideErrorDiv(objectName);
			 		changeErrorText('Can Not Have * Only', objectName);
					errorCallerID = objectName;
					disableSubmit(true,objectName);
			 		return 1;
				} else {
					hideErrorDiv(objectName);
					disableSubmit(false,objectName);
			  		return 0;
				}
			}else{
			  hideErrorDiv(objectName);
			  disableSubmit(false,objectName);
			  return 0;
			}
		}

		
		function valTerm(termObjectID, yearID, edate){
			objTerm = document.getElementById(termObjectID);
			objYear = document.getElementById(yearID);
			
			var dateParts = new Array;
			var yearParts = new Array;
			var currSY;
			
			dateParts = edate.split('/'); //Split up the date in to MM DD YYYY
			yearParts = objYear.value.split('-'); //in case there is a YYYY-YYYY school year rather than YYYY
			
			if(dateParts[0]>=8 & dateParts[0]<=12){
				currSY = dateParts[2];
			} else {
				currSY = dateParts[2]-1;
			}
			
			if(objTerm.value == 'FALL' || objTerm.value == 'WNTR'){
				if(yearParts[0] != currSY){
					hideErrorDiv(termObjectID);
					changeErrorText('Please Verify Year and Term', termObjectID);
				} else {
					hideErrorDiv(termObjectID);
				}
			} else {
				if(yearParts[0] != ((currSY/1) + 1)){ //I know, it looks dumb, but JS treats it as a string../1 forces it as an int
					hideErrorDiv(termObjectID);
					changeErrorText('Please Verify Year and Term', termObjectID);
				} else {
					hideErrorDiv(termObjectID);
				}
			
			}
		}
		
		
		
		function valDate(objectName){
			frmObject = document.getElementById(objectName);
			if((frmObject.value.search(/^([1-9]|(0[1-9])|(1[0-2]))\/([1-9]|(0[1-9])|([1-2][0-9])|3[0-1])\/[0-9]{4}$/)) == -1){     
					if(frmObject.value != '' && frmObject.value != ' '){
						 hideErrorDiv(objectName);
			 			 errorCallerID = objectName;
			 			 changeErrorText('Please Enter a Valid Date MM/DD/YYYY', objectName);
			 			 disableSubmit(true,objectName);
			 			 return 1;} 
					else {
						hideErrorDiv(objectName);
						disableSubmit(false,objectName);
						return 0;}
				}
			else{
				hideErrorDiv(objectName);
				disableSubmit(false,objectName);
				return 0;}
		}
		
		//checks if a given date is within so many days of the future
		function valFutureDate(objectName,days) {
			var ItemValue = document.getElementById(objectName);
			var testDate=new Date(Date.parse(ItemValue.value));
			if (document.getElementById(objectName).value != ' ' && document.getElementById(objectName).value != '') {
					if(testDate.getFullYear()) {
								var today = new Date();
								diff=testDate.valueOf()-today.valueOf();
								var daydiff = diff /1000 / 60 / 60 / 25;
								
								if (valDate(objectName) != 1){
									if((daydiff) < (days)){
										hideErrorDiv(objectName);
										errorCallerID = objectName;
										disableSubmit(false,objectName);
										return 0;}
									}
								else {
									hideErrorDiv(objectName); //check to make sure div doesn't exist already
									changeErrorText('This Date is More Than ' + days + ' Days in the Future',objectName);
									errorCallerID = objectName;
									disableSubmit(true,objectName);
									return 1;}
						}
						else{
						hideErrorDiv(objectName); //check to make sure div doesn't exist already
						changeErrorText('Please Enter a Valid Date MM/DD/YYYY', objectName);
						errorCallerID = objectName;
						disableSubmit(true,objectName);
						return 1;} 
				}
				else{
					hideErrorDiv(objectName);
					disableSubmit(false,objectName);
					return 0;}	
			//}
		}
		//checks if a given date is within so many days of the past
		function valPastDate(objectName,days) {
			var ItemValue = document.getElementById(objectName);
			var testDate=new Date(Date.parse(ItemValue.value));	 
			if(ItemValue.value != ' ' && ItemValue.value != '') {
					if(testDate.getFullYear()) {
							var today = new Date();
							diff=today.valueOf()-testDate.valueOf();
							var daydiff = diff /1000 / 60 / 60 / 25;
							
							if (valDate(objectName) != 1){
								if( !((daydiff) > (days))){
									hideErrorDiv(objectName);
									disableSubmit(false,objectName);
									return 0;} 
								else {
									hideErrorDiv(objectName); //check to make sure div doesn't exist already
									changeErrorText('This Date is More Than ' + days + ' Days in the Past',objectName);
									errorCallerID = objectName;
									disableSubmit(true,objectName);
								return 1;}
							} 
							else {
								hideErrorDiv(objectName); //check to make sure div doesn't exist already
								changeErrorText('Please Enter a Valid Date MM/DD/YYYY', objectName);
								errorCallerID = objectName;
								disableSubmit(true,objectName);
								return 1;}
				}
				else{
					hideErrorDiv(objectName);
					disableSubmit(false,objectName);
					return 0;}	
			}
		}
		
		//validates if a date is before another date (based on the two dates passed in)
		function valBdate(objectName,stu_bdate) {
			 var ItemValue = document.getElementById(objectName);
			 var testDate = new Date(Date.parse(ItemValue.value));
			 var bdate = new Date(Date.parse(stu_bdate));
			 
			 if(ItemValue.value != ' ' && ItemValue.value != '') {
					 if(testDate.getFullYear()) {
					 
							if (valDate(objectName) != 1){ 
								 if( !((bdate.valueOf()) > (testDate.valueOf()))){
									hideErrorDiv(objectName);
									errorCallerID = objectName;
									disableSubmit(false,objectName);
									return 0;
								} else {
									hideErrorDiv(objectName); //check to make sure div doesn't exist already
									changeErrorText('Can Not Be Before ' +stu_bdate,objectName);
									errorCallerID = objectName;
									disableSubmit(true,objectName);
									return 1;
								}
							 }
							else{
							 	hideErrorDiv(objectName); //check to make sure div doesn't exist already
								changeErrorText('Please Enter a Valid Date MM/DD/YYYY', objectName);
								errorCallerID = objectName;
								disableSubmit(true,objectName);
								return 1;}
				}
				else{
					hideErrorDiv(objectName);
					disableSubmit(false,objectName);
					return 0;}
			}
			
		}
		
		//validates if a date is after another date (based on the two dates passed in)
		function valAdate(objectName,stu_date) {
			 var ItemValue = document.getElementById(objectName);
			 var testDate = new Date(Date.parse(ItemValue.value));
			 var bdate = new Date(Date.parse(stu_date));
			 
			 if(ItemValue.value != ' ' && ItemValue.value != '') {
					 if(testDate.getFullYear()) {
					 
							if (valDate(objectName) != 1){ 
								 if( !((bdate.valueOf()) < (testDate.valueOf()))){
									hideErrorDiv(objectName);
									errorCallerID = objectName;
									disableSubmit(false,objectName);
									return 0;
								} else {
									hideErrorDiv(objectName); //check to make sure div doesn't exist already
									changeErrorText('Can Not Be After ' +stu_date,objectName);
									errorCallerID = objectName;
									disableSubmit(true,objectName);
									return 1;
								}
							 }
							else{
							 	hideErrorDiv(objectName); //check to make sure div doesn't exist already
								changeErrorText('Enter a Valid Date MM/DD/YYYY', objectName);
								errorCallerID = objectName;
								disableSubmit(true,objectName);
								return 1;}
				}
				else{
					hideErrorDiv(objectName);
					disableSubmit(false,objectName);
					return 0;}
			}
			
		}
				
		//validates if date is 5 days in future or 3 years in past for Enrollments
		function valedate(objectName) {
				if(valDate(objectName) == 1) {
					return 1;} 
				else if (valFutureDate(objectName, 5)== 1){
					return 1;}
				else if (valPastDate(objectName, 1095)== 1){
					return 1;}
				else {
					hideErrorDiv(objectName);
					return 0;}
				
				

				if(document.getElementById(objectName).value == ' ' || document.getElementById(objectName).value == '') {
					hideErrorDiv(objectName);
					disableSubmit(false,objectName);
					return 0;
				} else {
					hideErrorDiv(objectName);
					changeErrorText('Please Enter a Valid Date',objectName);
					errorCallerID = objectName;
					disableSubmit(true,objectName);
					return 1;
				}
	
		}
		
		//validates if Student Birthdate is more than two years ahead or behind appropriate grade age
		//This function is not working properly for the criteria above.
		/*function valgradeage(objectName, stu_bdate) {
			//object Name - enrollment date passed in
			// stu_bdate - student birthdate
			
			//checks to see if objectName is before stu_bdate
			 var ItemValue = document.getElementById(objectName);
			 var testDate = new Date(Date.parse(ItemValue.value));
			 var bdate = new Date(Date.parse(stu_bdate));
			 var dateflag = 0;
			  
			 if(ItemValue.value != ' ' && ItemValue.value != '' && stu_bdate != ' ' && stu_bdate != '') {
					 if(testDate.getFullYear()) {
							diff=bdate.valueOf()-testDate.valueOf();
							var daydiff = diff /1000 / 60 / 60 / 25;
							alert(daydiff);
							if (valDate(objectName) != 1){ 
								if( !((daydiff) > (360))){
									hideErrorDiv(objectName);
									disableSubmit(false,objectName);
									return 0;
								} else {
									hideErrorDiv(objectName); //check to make sure div doesn't exist already
									changeErrorText('This date is more than 360 days in the past',objectName);
									disableSubmit(true,objectName);
								return 1;}
							}
							else{
							 	hideErrorDiv(objectName); //check to make sure div doesn't exist already
								changeErrorText('Please Enter a Valid Date MM/DD/YYYY', objectName);
								disableSubmit(true,objectName);
								return 1;}
				}
			}
			else{
					hideErrorDiv(objectName);
					disableSubmit(false,objectName);
					return 0;}
			 
		}*/
		
		//validates if a date is between two dates (based on the two dates passed in)
		function valBetweenDates(objectName, bedate, eedate) {
			 var ItemValue = document.getElementById(objectName);
			 var testDate = new Date(Date.parse(ItemValue.value));
			 var eedate = new Date(Date.parse(eedate));
			 var bedate = new Date(Date.parse(bedate));
			 
			 if(ItemValue.value != ' ' && ItemValue.value != '') {
					 if(testDate.getFullYear()) {
					 	if (valDate(objectName) != 1){
							if( !( 	(testDate.valueOf() < bedate.valueOf()) || (testDate.valueOf() > eedate.valueOf()) ) ){	
								hideErrorDiv(objectName);
								disableSubmit(false,objectName);
								return 0;} 
							else {
								hideErrorDiv(objectName); //check to make sure div doesn't exist already
								changeErrorText('Date Must Be Between '+bedate.toDateString() +' And '+eedate.toDateString(),objectName);
								errorCallerID = objectName;
								disableSubmit(true,objectName);
								return 1;}
						}
						else {
								hideErrorDiv(objectName); //check to make sure div doesn't exist already
								changeErrorText('Please Enter a Valid Date MM/DD/YYYY', objectName);
								errorCallerID = objectName;
								disableSubmit(true,objectName);
								return 1;}
					}
					
				}
				else{
						hideErrorDiv(objectName);
						disableSubmit(false,objectName);
						return 0;}
			}
		
		
		//validates numbers
		function valNum(objectName){
			frmObject = document.getElementById(objectName);
			if(frmObject){
				if((frmObject.value.search(/[^\d\x2E]/)) != -1){
					if(frmObject.value != '' && frmObject.value != ' '){
						hideErrorDiv(objectName);
						errorCallerID = objectName;
						changeErrorText('Numbers Only', objectName);
						disableSubmit(true,objectName);
						return 1;
					} else {
						hideErrorDiv(objectName);
						disableSubmit(false,objectName);
						return 0;
					}
				}else{
				  hideErrorDiv(objectName);
				  disableSubmit(false,objectName);
				  return 0;
				}
			}
		}
		
		//validates first 2 are letters and rest are numbers
		function valNum2(objectName)
		{
		frmObject = document.getElementById(objectName);
		if(frmObject){
		
		var themessage = "";
		var valid1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
		var valid2 = "0123456789";
	
		var ok = "yes";
		var temp;
		
			//validates text
			for (var i=0; i<2; i++) {
			temp = "" + frmObject.value.substring(i, i+1);
			if (valid1.indexOf(temp) == "-1") ok = "no";
			}
		
		 	//validates numeric	
			for (var i=2; i<frmObject.value.length; i++) {
			temp = "" + frmObject.value.substring(i, i+1);
			if (valid2.indexOf(temp) == "-1") ok = "no";
			}	 
		
			if (ok == "no") {
				 		hideErrorDiv(objectName);
				 		changeErrorText('Text Only In First Two Fields, Numbers Only After First Two Fields', objectName);
						errorCallerID = objectName;
						disableSubmit(true,objectName);
				 		return 1;
			} 
		
			else {
						hideErrorDiv(objectName);
						disableSubmit(false,objectName);
				  		return 0;
			}
		}else{
		  hideErrorDiv(objectName);
		  disableSubmit(false,objectName);
		  return 0;
		}			
	}
		 
		//validates email addresses
		function valEmail(objectName){
			frmObject = document.getElementById(objectName);
			if((frmObject.value.search(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/)) == -1){
					if(frmObject.value != '' && frmObject.value != ' '){
						  hideErrorDiv(objectName);
						  errorCallerID = objectName;
						  changeErrorText('Please Enter a Valid Email', objectName);
						  disableSubmit(true,objectName);
						  return 1;
					} else {
						hideErrorDiv(objectName);
						disableSubmit(false,objectName);
						return 0;
					}
			}else{
			  hideErrorDiv(objectName);
			  disableSubmit(false,objectName);
			  return 0;
			}
		}
		
		//validates phone numbers
		function valPhone(objectName){
			frmObject = document.getElementById(objectName);
			if((frmObject.value.search(/^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$/)) == -1){
			  hideErrorDiv(objectName);
			  errorCallerID = objectName;
			  changeErrorText('Please Enter a Valid Phone Number XXX-XXX-XXXX', objectName);
			  disableSubmit(true,objectName);
			  return 1;
			}else{
			  hideErrorDiv(objectName);
			  disableSubmit(false,objectName);
			  return 0;
			}
		}
		
		//validates NGG Credits granted must be numeric and <= 1
		function valCredit(objectName){
			frmObject = document.getElementById(objectName);
			var objVal = (frmObject.value * 100);
			if((objVal < 0 || objVal > 100) || (frmObject.value.search(/^\d$/) == -1)){
			  hideErrorDiv(objectName);
			  errorCallerID = objectName;
		  	  changeErrorText('Credits Must be Between 0 and 1', objectName);
			  disableSubmit(true,objectName);
			  return 1;
			}else{
			  hideErrorDiv(objectName);
			  disableSubmit(false,objectName);
			  return 0;
			}
		}
		
		
		//this functuon requires two objectIDs to work correctly
		//and sets the scoring type for certain tests.
		function valTests(testNameObjectID, scoreTypeObjectID) {
			//formObject is really the ID of the object
			var test = document.getElementById(testNameObjectID);
			var score = document.getElementById(scoreTypeObjectID);
			switch(test.value){
				case(test='WASL'):
					score.text = 'Scaled Score';
					score.value = 'Scaled Score'
					score.disabled = 'enabled';
					break
				case(test='WLPT'):
					score.text = 'Scaled Score';
					score.value = 'Scaled Score'
					score.disabled = 'enabled';
					break
				case(test='OLPTS'):
					score.text = 'Level';
					score.value = 'Level'
					score.disabled = 'enabled';
					break
				default:
					score.disabled = '';
			}
			//changeErrorText('Test Error', objectName);
		}
		
		//this function takes two params, the scoreTypeID field (an <option> usually) and the scoreID
		//which holds the value the user entered. This function also interacts with the valNum function
		//to make sure that only numeric data has been entered
		function valTestScore(scoreTypeID,scoreID){
			var scoreType = document.getElementById(scoreTypeID);
			var score = document.getElementById(scoreID);
			var theScore = score.value;
			hideErrorDiv(scoreID); // clear any existing errors generated by this function
			
			if (valNum(scoreID) == 1) {
				disableSubmit(false,scoreID);
				return
			}
			
				
			if (scoreType.value == 'CRITERION'){	
				if ((theScore > 99) || (theScore < 0)){
				    errorCallerID = scoreID;
					changeErrorText('A Criterion Score Must be a Number Between 0 and 99', scoreID);
					disableSubmit(true,scoreID);
				}
			}	
			else if (scoreType.value == 'GRADE EQUIVALENT'){
				if ((theScore > 13) || (theScore < 1)){
					errorCallerID = scoreID;
					changeErrorText('A Grade Equivalent Score Must be a Number Between 1 and 13', scoreID);
					disableSubmit(true,scoreID);
				}
			}
			else if (scoreType.value == 'NORMAL CURVE EQUIVALENCE'){
				if ((theScore > 99) || (theScore < 0)){
					errorCallerID = scoreID;
					changeErrorText('A Normal Curve Equivalence Score Must be a Number Between 0 and 99', scoreID);
					disableSubmit(true,scoreID);
				}
			}
			else if (scoreType.value == 'PERCENTILE'){
				if ((theScore > 100) || (theScore < 0)){
					errorCallerID = scoreID;
					changeErrorText('A Percentile Score Must be a Number Between 0 and 100', scoreID);
					disableSubmit(true,scoreID);
				}
			}
			else if (scoreType.value == 'RAW SCORE'){
				if ((theScore > 700) || (theScore < 0)){
					errorCallerID = scoreID;
					changeErrorText('A Raw Score Must be a Number Between 0 and 700', scoreID);
					disableSubmit(true,scoreID);
				}
			}
			else if (scoreType.value == 'SCALED SCORE'){
				if ((theScore > 600) || (theScore < 0)){
					errorCallerID = scoreID;
					changeErrorText('A Scaled Score Must be a Number Between 0 and 600', scoreID);
					disableSubmit(true,scoreID);
				}
			}
			else if (scoreType.value == 'STANINE'){
				if ((theScore > 10) || (theScore < 1)){
					errorCallerID = scoreID;
					changeErrorText('A Stanine Score Must be a Number Between 1 and 10', scoreID);
					disableSubmit(true,scoreID);
				}
			}												
	
		}
		
		function findPosX(obj) {
			var curleft = 0;
			if (obj.offsetParent)
			{ while (obj.offsetParent) {
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			} } else if (obj.x)
				curleft += obj.x;
				return curleft;
		}

		function findPosY(obj) {
			var curtop = 0;
			if (obj.offsetParent)
			{ while (obj.offsetParent) {
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}} else if (obj.y)
				curtop += obj.y;
				return curtop;
		}
		
		
		//creates a div containing a table with a red errorMsg.
		//creation relies on the creation of a new node within the DOM
		function changeErrorText(errorMsg, formObject) {
			if(document.getElementById(formObject + 'ErrorMsg')){
				var errorLine = document.getElementById(formObject+'ErrorMsg');
				errorLine.innerHTML = errorMsg;
			} else {
				var errorNodeMsg=document.createTextNode(errorMsg);
				var formObj = document.getElementById(formObject);
				 var errorDiv=document.getElementById('errorDiv');
				 var t=document.createElement('table');  
				 var tb=document.createElement('tbody');  	
				 var tr=document.createElement('tr');  	
				 var td=document.createElement('td');
				 var errorDiv = document.createElement("DIV");
	
				t.style.fontFamily = 'Arial, Helvetica, sans-serif';
				t.style.fontFamily = fontSize = '14px';
				t.style.color = '#FF0000';
				t.style.fontWeight = 'bold';
				t.style.backgroundColor = '#FFFFFF';
				td.style.color = '#FF0000';
				
				 td.appendChild(errorNodeMsg);  					// - put the text node in the table cell
				 tr.appendChild(td); 						// - put the cell into the row
				 tb.appendChild(tr); 						// - put the row into the tbody
				 t.appendChild(tb);
	
				 errorDiv.style.position = 'absolute';
				 errorDiv.style.visibility = 'hidden';
				 errorDiv.style.zIndex = 3;
				 errorDiv.style.left = '50px';
				 errorDiv.style.top = '50px';
				
				 errorDiv.appendChild(t); // - put the tbody into the table
									// - put the table into the div
				//errorDiv
	
				errorDiv.style.top = findPosY(formObj) + 20;
				errorDiv.style.left = (findPosX(formObj) - (errorMsg.length * 2)+4);
				errorDiv.style.visibility = 'visible';
				errorDiv.setAttribute('id','errorDiv' + formObject);
				document.body.appendChild(errorDiv); //create the div
			}
		}

		//deletes the node, clearing the error message
		function hideErrorDiv(formObject) {		
			if (document.getElementById('errorDiv' + formObject)) {
				var errorDiv = document.getElementById('errorDiv' + formObject);
				document.body.removeChild(errorDiv); //destroy the div
			}
			if(document.getElementById(formObject+'ErrorMsg')){
				document.getElementById(formObject+'ErrorMsg').innerHTML = '';
			}
		}
		
		//this function is not of my own creation.... it is being included to maintain the delete functionality of
		//some of the MSIS pages. --CM
		function ShowPopup(popupurl) {
			var now = new Date();
			var popup = window.open(popupurl,"Popup",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=450,height=400');
			// set the opener if it's not already set.  it's set automatically
			// in netscape 3.0+ and ie 3.0+.
			if( navigator.appName.substring(0,8) == "Netscape" )
			{
					popup.location = popupurl;
			}
		}

		//disabled the submit button
		
		function disableSubmit(submitDisabled, callerID){
			//alert(disableSubmit.caller);
			if(errorCallerID == '' || errorCallerID == callerID){
				if(currSubmitDisabled != submitDisabled){
					currSubmitDisabled = submitDisabled
					findSubmit(document.body,submitDisabled)
				}
			}
		}
		
		function findSubmit(node,status) {
			var currentNode = node.firstChild;
			while (currentNode != node.lastChild && currentNode != null) {
				if(currentNode.nodeName.toUpperCase() == 'INPUT' && currentNode.type.toUpperCase() == 'SUBMIT'){
					currentNode.disabled = status;
				}
				if (currentNode.hasChildNodes) {
					findSubmit(currentNode,status);
				}
				currentNode = currentNode.nextSibling;
			}
			if (node.lastChild != null) {
				if(node.lastChild.nodeName.toUpperCase() == 'INPUT' && node.lastChild.type.toUpperCase() == 'SUBMIT'){
					node.lastChild.disabled = status;
				}
				if (node.lastChild.hasChildNodes) {
					findSubmit(node.lastChild,status);
				}
			}
		}

		//intercepts the key event and checks to see if an enter has been pressed.
		function disableBackspace() {

		   if (window.event && window.event.keyCode == 13 && currSubmitDisabled) { // try to cancel the backspace  !(window.event.srcElement.name)
			  window.event.cancelBubble = true;
			  window.event.returnValue = false;
			  //alert('caught');
			  return false;
		   }
		}
		
		document.onkeydown = disableBackspace; //sets the keydown event to trigger the disableEnter function
		
		//document.khtml_keydown = disableBackspace;
		if(typeof(Event) != "undefined"){
			document.captureEvents(Event.KEYDOWN)
		}