function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

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 MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function noLetters(obj){

	var match = /[a-zA-Z-!"#$%&()*+,:<=>?@;_`{|}~]/.test(obj.value);
	 
	
	if(match){
	alert("Number(s) can only consist of numbers and periods.\n");
	obj.value="";
	
	}

}

function setCity(cityob, value,zip,zvalue){


if(!cityob) { return; }
if(String(cityob) == "undefined") { return; }
if(cityob == null) { return; }



for (i=0; i<cityob.options.length; i++) {
//alert(	cityob.options[i].text);

	if (cityob.options[i].text == value) {
			cityob.selectedIndex = i;
		}
	}


findzip(cityob.value, zip);


for (i=0; i<zip.options.length; i++) {
	
	if (zip.options[i].text == zvalue) {
			zip.selectedIndex = i;
		}
	}
}



function toLeap (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 setMonths(month, day){
	
	month.options[0].selected = true;
	 day.options[0].selected = true;
	
}

//object is day, object2 is year
function setDays(day, month, year){

if(!year){return;}


 var daysInMonth = new Array();
daysInMonth[1] = 31;
daysInMonth[2] =    toLeap(year.value);//                     29;   // must programmatically check this
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;

var days = daysInMonth[month]; 

day.options.length = 0;

   day.options[0] = new Option('Select ...', '0');		
	for( var i=1; i < days+1;i++){
		day.options[i] = new Option(i,i);
	}
	

}





function update(form, page, retval){
 
var url = page + "#" + retval; 
 
form.action= url;
 
form.submit();
 	
}

function findzip(x, object){
 
 	//alert(x);
	//alert(object);
 
	var zips = new Array() 
	zips = x.split('~');
	
	//zip code select to be affected
	var temp= object; //document.Survey.zip;
	var temp2 = object +"ext";
	
	if(zips[0] == "0") {temp.disabled=true; //temp2.disabled = true; 
	return; }
	
	for (m=temp.options.length-1;m>0;m--)
			temp.options[m]=null
		
	temp.options[0] = new Option('Select ...','0');
		
	for (i=1;i<zips.length+1;i++){
		
		temp.options[i] = new Option(zips[i-1],zips[i-1]);
		
 
	}

		temp.disabled = false;
		//document.Survey.zipext.disabled = false;		
}

 function zipextend(myselect, myobject){
	 
	if(myselect != "0"){myobject.disabled = false;}
	else { myobject.disabled = true; }
	 
 }
 function showext(myselect, myobject){
	 

	if(myselect != "0" ){myobject.disabled = false;}
	else { myobject.disabled = true; }
	 
 }
 
function pobox(test){

var err="";
	
	if(test.substring(0,8).toLowerCase() == "p.o. box") { err+=" address can not be a P.O. Box.\n"; };
	if(err.length == 0) {
	if(test.substring(0,6).toLowerCase() == "po box")   { err+=" address can not be a P.O. Box.\n"; };
	}if(err.length == 0) {
	if(test.substring(0,5).toLowerCase() == "pobox")   { err+=" address can not be a P.O. Box.\n"; };
	}if(err.length == 0) {
	if(test.substring(0,7).toLowerCase() == "p.o.box")   { err+=" address can not be a P.O. Box.\n"; };
	}if(err.length == 0) {
	if(test.substring(0,2).toLowerCase() == "po")   { err+=" address can not be a P.O. Box.\n"; };
	}if(err.length == 0) {
	if(test.substring(0,4).toLowerCase() == "p.o.")   { err+=" address can not be a P.O. Box.\n"; };
	}
	return err;
}

function textCounter(field, countfield, maxlimit) {

 

if (field.value.length > maxlimit) {// if too long...trim it!


		field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
}else{ 
	countfield.value = maxlimit - field.value.length;
	}
}




function isDate(mydate){
 
	var now = new Date();
	
	var tmp = mydate.split("/");
	var err ="";
	var pass = true;
	
	var monthMax = new Array(31,31,29,31,30,31,30,31,31,30,31,30,31);
	
	 
	if(tmp.length == 3){
	
for(var i=0;i<tmp.length;i++){
		
		//month between 1 and 12
    	if(i == 0){
			
			if(tmp[i] >= 1 ) {
				if(tmp[i] >= 13 ) {  
				 pass = false;   err+= " has invalid number of months.\n";
			  } 
			} else {  pass = false;   err+= " has invalid number of months.\n"; }
		}
		//days
		if(i == 1 && pass) {  
		    
			if(tmp[i]-1 >= 0) {              
				if(tmp[i]-1 >= monthMax[tmp[0]]) {    
					pass = false; err+= " has invalid number of days in month.\n";
				} 
			}else{ pass = false; err+= " has invalid number of days in month.\n";}
		}
		if(i == 2 && pass){ 
	     
	      if(tmp[i] >= 1930) { 
				if(tmp[i] -1 >= now.getFullYear()) { 
						pass = false; err+= " has invalid year.\n";
				}    
			}else { pass = false; err+= " has invalid year.\n"; }
		}
		
	}//end loop
	
}else{ err+= " has invalid date.\n"; }
//	if(!pass){alert(err);}
//	alert(pass);
//	alert(err);
return err;
}


function formatDecimal(number){

//alert(number);
if(isNaN(number))
	return "0"; 
	
	
	
if(number == "")
	return "0";	
 
var nbrin = new String(number);

 
	
var retval ="";  
var num = nbrin.split('.');

//put in loop to make sure there is both a left and a right side of the number
for(var i=0; i < num.length; i++){

	if(i == 0) { retval += num[i] }
	
	//if there is a num[1] then there is a decimal part grab the last two digits
	else if(i == 1 ) {
			var test = new String(num[i]).length;
			for(var p=0; p < (test-2); p++){ num[i] = Math.ceil((num[i]/10)); }
			retval += "." + num[1];	
		}
 
	}//end for loop
	
 
	 
	return parseFloat(retval);

}



function chkZip(nbrin){

//alert(nbrin);

if(isNaN((nbrin.value))){
	return "NaN"; 
}

if(nbrin.value.length != 5)
	return "Digits";

var part = parseInt((nbrin.value)/100);

if (part <= 369)
	return "Low";
	
if (part >= 387)
	return "High";
		
return part;
 
}


function noGOBack(){
  javascript:history.go(-1);
}

//function doAdd(){

//var name = document.Course.name.value;
//var hour = document.Course.hours.value;
//alert(name +", " + hour);
//document.Course.Action.disabled = false;
//}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}


function doAdd2(){

var building = document.Sites.building.value;
var address = document.Sites.address.value;
var zip = document.Sites.zip.value;
//alert(building +", " + address + "," + zip);
document.Sites.Action.disabled = false;
}

function validateEmail(form){

var err ="";
var test = "";

test = formatString(form.mymessage.value);
if(test.value == "") {  err += "You must enter a message.\n"; }
 
test = formatString(form.subject.value);
if(test.value == "0") { err += "You must select a subject.\n"; }

test = formatString(form.fname.value);
if(test.value == "") { err += "You have to enter your first name.\n"; }

test = formatString(form.lname.value);
if(test.value == "") { err += "You have to enter your last name.\n"; }

test = formatString(form.fname.value);
if(test.value == "") { err += "You have to enter your first name.\n"; }

test = isEmail(formatString(form.email.value));
if(test == "1"){  err += "Email missing a @ sign.\n";}
if(test == "2"){  err += "Email not long enough.\n";}
if(test == "3"){  err += "Email domain not recognized.\n";}

form.phone.value = test = formatphone(form.phone.value);
 if(test == "Few")      {  err += "Phone Number is not long enough.\n"; }
 else if(test == "Many"){  err += "Phone Number is too long.\n";}
 else if(test == "NaN") {  err += "Phone Number can not contain letters.\n";}

if(err.length > 0) { alert(err); return false; }

//return false;
return true;

}



function formatString(strin){
    
   var myRegExp = /'/g;
   strin = strin.replace(myRegExp, "`");
 
   var myRegExp = /\n/g;
   strin = strin.replace(myRegExp, "");
      
   var myRegExp = /\r/g;
   strin = strin.replace(myRegExp, "");
   
   var myRegExp = /,/g;
   strin = strin.replace(myRegExp, "~");
  
   myRegExp = /"/g;
   strin = strin.replace(myRegExp, "`");
   
   myRegExp = /&/g;
   strin = strin.replace(myRegExp, "");
 
   myRegExp = /\\/g;
   strin = strin.replace(myRegExp, "");
   
  // myRegExp = /\//g;
//   strin = strin.replace(myRegExp, "");
 
     myRegExp = /\*/g;
   strin = strin.replace(myRegExp, "");
   
      myRegExp = /\?/g;
   strin = strin.replace(myRegExp, "");
   
         myRegExp = /\!/g;
   strin = strin.replace(myRegExp, "");
//sloppy very sloppy how do i do addresss?
  strin = strin.charAt(0).toUpperCase() + strin.substring(1,strin.length);
  
   
  
   //return trim(strin);
	return strin;
}


function isEmail(strin){
 
    if(strin.search('@') == -1){  return "1"; 	}
	
//	alert(strin.length);
	
	if(strin.length <= 3) { return "2"; }
	
	var test = strin.substring(strin.length - 4, strin.length).toLowerCase();
	
	if(test == ".com") return;
	if(test == ".net") return;
	if(test == ".org") return;
	if(test == ".gov") return;
	if(test == ".edu") return;
	if(test == ".mil") return;
	
	var test = strin.substring(strin.length - 3, strin.length).toLowerCase();
	
	if(test == ".us") return;
	if(test == ".cc") return;
	if(test == ".tv") return;
 
	return "3";
}

function formatphone(nbrin){

   var nunbr =  new String(nbrin);
   var nbrout = nunbr;
    
   var myRegExp = /\s/g;
   var mystr = nunbr.replace(myRegExp, "");
 
   myRegExp = /-/g;
   var mystr1 = mystr.replace(myRegExp, "");
 
   myRegExp = /\(/g;
   var mystr2 = mystr1.replace(myRegExp, "");
 
   myRegExp = /\)/g;
   var mystr3 = mystr2.replace(myRegExp, "");
 
   myRegExp = /\./g;
   var mystr4 = mystr3.replace(myRegExp, ""); 
  
   nunbr = mystr4;

if(isNaN(nunbr))
	return "NaN";
	   
   if (nunbr.length == 10)
   {
     var nbrout = "";
     nbrout = nunbr.substr(0, 3) + "." ; 
     nbrout = nbrout + nunbr.substr(3, 3) + ".";
     nbrout = nbrout + nunbr.substr(6, 4);
     return nbrout;
     }
   	
  	if(nunbr.length <= 9)
		return "Few";  
	
	if(nunbr.length >= 11)
		return "Many"; 
		
		return"";
 }

function showZip(zip){
	
	//alert(zip);
	train.Zip.value = zip;
	
}


function SQL_Injection(form){
//	alert(form.name);
	
	//alert("!");
	for(var i=0; i< form.elements.length; i++){ 

	var strin = form.elements[i].value;
	
	
	
	strin = strin.toLowerCase();
	//alert(strin);
	var test = 0;
	
    test = strin.indexOf('drop ');
	test += strin.indexOf('<code');
	test += strin.indexOf('<a href');
 test += strin.indexOf('insert ');
  test += strin.indexOf('select ');
   test += strin.indexOf('update ');
   test += strin.indexOf('<script');
//  alert (test);

  if( test  != -7 ) { alert("You can not use key words!"); return false; }

}
//  myRegExp = /drop/i;
//  strin= strin.replace(myRegExp, ""); 
	  
//	    myRegExp = /update/i;
 // strin= strin.replace(myRegExp, ""); 
	  
 // myRegExp = /insert/i;
 // strin= strin.replace(myRegExp, ""); 

 // myRegExp = /delete/i;
 // strin= strin.replace(myRegExp, ""); 

	//  myRegExp = /select/i;
	// strin= strin.replace(myRegExp, ""); 
	  
	  //  myRegExp = /<script>/i;
	// strin= strin.replace(myRegExp, ""); 	
  //form.elements[i].value  =  formatString(form.elements[i].value);
  return true;
}
	
	
function isDate3(obj) {


dateStr = obj.value;

var test = true;

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
return false;
}

month = matchArray[1]; // p@rse date into variables
day = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
test = false;
}

if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
test = false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn`t have 31 days!")
test = false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
alert("February " + year + " doesn`t have " + day + " days!");
test = false;
}
}


month = matchArray[1]; // p@rse date into variables
day = matchArray[3];
year = matchArray[5]

var when = new Date(year, month-1,day,0,0,0,0);




var today = new Date(); 

//alert(when);
//alert(today);

if(when < today) {alert("Date cannot be in the past!"); test = false;}


if(!test){ 

obj.value = 'mm/dd/yyyy';


}

return test; // date is valid






}



function isDate2(obj) {


dateStr = obj.value;

var test = true;

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
return false;
}

month = matchArray[1]; // p@rse date into variables
day = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
test = false;
}

if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
test = false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn`t have 31 days!")
test = false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
alert("February " + year + " doesn`t have " + day + " days!");
test = false;
}
}


month = matchArray[1]; // p@rse date into variables
day = matchArray[3];
year = matchArray[5]

var when = new Date(year, month-1,day,0,0,0,0);




var today = new Date(); 

//alert(when);
//alert(today);

if(when > today) {alert("Date cannot be in the future!"); test = false;}


if(!test){ 

obj.value = 'mm/dd/yyyy';


}

return test; // date is valid






}

	
	


 