
	function validateInteger(value){
		return(parseInt(value)==value-0);
	}

	function emailCheck(field){
		txt=field.value;
		
		if(txt == '')return true;
		
		if (txt.indexOf("@")<1){
			alert("I'm sorry. This email address seems invalid. Please"
			+" check the address or include the '@' sign.");
			field.focus();
			return false;
		}
		if (txt.indexOf(".")<5){
			alert("I'm sorry. This email address seems invalid. Please"
			+" check the address or include the '@' sign.");
			field.focus();
			return false;
		}
		return true;
	}
	
	function validateCurrency(value){
		var i;
		var validChars;
		
		if(value == ''){return true};
		
		validChars = '0123456789.-$';
		
		for(i = 0; i < value.length; i++){
			if(validChars.search(value.substr(i,1)) < 0){
				return false;
			}
		}

		return true;
	}
	
	function validateNumeric(value){
		var i;
		var validChars;
		
		if(value == ''){return true};
		
		validChars = '0123456789.-';
		
		for(i = 0; i < value.length; i++){
			if(validChars.search(value.substr(i,1)) < 0){
				return false;
			}
		}

		return true;
	}
	
	function validatePercent(value){
		var i;
		var validChars;
		
		if(value == ''){return true};
		
		validChars = '0123456789.-%';
		
		for(i = 0; i < value.length; i++){
			if(validChars.search(value.substr(i,1)) < 0){
				return false;
			}
		}

		return true;
	}	
	
	function validateTime(value, requireAMPM){
		var hour;
		var min;
		var sec;
		var amPM;
		var firstColonPos;
		var secondColonPos;
		var spacePos;
		var validChars;
		var i;
		var car;
		var text;

		text = value.toUpperCase();
		validChars = '0123456789APM :';
		sec = 0;

		// check for colon
		firstColonPos = text.indexOf(':');

		// check for AM/PM
		if(requireAMPM){
			if(text.indexOf('AM')==-1){
				if(text.indexOf('PM')==-1){
					return false;
				}
			}
		}
		
		if(firstColonPos==-1){
			hour = text.substring(0,2);
			if(hour.length < 2){
				return false;
			}
		}
		else{
			hour = text.substring(0,firstColonPos);
		}
		
		secondColonPos = text.indexOf(':',firstColonPos+1);
		
		if(secondColonPos==-1){
			if(text.indexOf(' ')==-1){
				if(firstColonPos==-1){
					min = text.substring(2,4);
					if(min.length < 2){
						return false;
					}
				}
				else{
					min = text.substring(firstColonPos+1);
				}
			}
			else{
				min = text.substring(firstColonPos+1,text.indexOf(' '));
			}
		}
		else{
			min = text.substring(firstColonPos+1, secondColonPos);
			
			if(text.indexOf(' ')==-1){
				sec = text.substring(secondColonPos+1);
			}
			else{
				sec = text.substring(secondColonPos+1,text.indexOf(' '));
			}
		}

		// Check values
		if(requireAMPM){
			if((hour < 1)||(hour > 12)){
				return false;
			}
		}
		else{
			if((hour < 0)||(hour > 24)){
				return false;
			}
		}
		

		if((min < 0)||(min > 59)){
			return false;
		}
		if(sec!=0){
			if((sec < 0)||(sec > 59)){
				return false;
			}
		}
		
		// Check for invalid chars
		for (i=0; i<text.length; i++) {
			car = text.substring(i,i+1);
			if(validChars.indexOf(car)==-1){
				return false;
			}
		}

		return true;
	}

	function validateZip(value){
		if(validateInteger(value)){
			if(value.length < 5){
				return false;
			}
		}
		else{
			return false;
		}

		return true;
	}

	function validateDate(field, useCustomAlert){
		var value;
		var year;
		var day;
		var month;
		var ok;

		value=field.value;

		if(value=='') return value
		if(value.length==6){
			if((value.substring(1,2)=='/'&&value.substring(3,4)=='/')||(value.substring(1,2)=='-'&&value.substring(3,4)=='-')) {
				day=value.substring(0,1);
				month=value.substring(2,3);
				year=value.substring(4,6);
			}
			else{
				day=value.substring(0,2);
				month=value.substring(2,4);
				year=value.substring(4,6);
			}

			if(day<10) day="0"+day;
			if(month<10) month="0"+month;

			if(year>5) value=day+'/'+month+'/19'+year;
			else value=day+'/'+month+'/20'+year;
		}
		else if(value.length==7){
			ok = true
			if((value.substring(1,2)=='/'&&value.substring(4,5)=='/')||(value.substring(1,2)=='-'&&value.substring(4,5)=='-')) {
				day=value.substring(0,1);
				month=value.substring(2,4);
				year=value.substring(5,7);
			}
			else if((value.substring(2,3)=='/'&&value.substring(4,5)=='/')||
					 (value.substring(2,3)=='-'&&value.substring(4,5)=='-')) {
				day=value.substring(0,2);
				month=value.substring(3,4);
				year=value.substring(5,7);
			}
			else
				ok=false;

			if(ok){
				if(day<10) day="0"+day;
				if(month<10) month="0"+month;
				if(year>5) value=day+'/'+month+'/19'+year;
				else value=day+'/'+month+'/20'+year;
			}
		}
		else if(value.length==8){
			if(value.indexOf( '/' )>=0){
				// missing the century perhaps?
				if((value.substring(5,6)=='/'&&value.substring(2,3)=='/')||(value.substring(5,6)=='-'&&value.substring(2,3)=='-')) {
					day=value.substring(0,2);
					month=value.substring(3,5);
					year=value.substring(6,8);

					if(year>5) {
						value=day+'/'+month+'/19'+year;
					}
					else{
						value=day+'/'+month+'/20'+year;
					}
				}
			}
			else{
				day=value.substring(0,2);
				month=value.substring(2,4);
				year=value.substring(4,8);

				value=day+'/'+month+'/'+year;
			}
		}

		var dateobj=new Date( value )

		if (isNaN(dateobj.getFullYear())){
			value='';
			return value;
		}

		var today=new Date();

		while (dateobj.getFullYear()<1000)
			dateobj.setFullYear( dateobj.getFullYear()+1000 );

		while (dateobj>today)
			dateobj.setFullYear( dateobj.getFullYear()-100 );

		month=(dateobj.getMonth()+1);
		day= dateobj.getDate();

		if(day<10) day="0"+day;
		if(month<10) month="0"+month;

		value=month+"/"+day+"/"+dateobj.getFullYear();

		return value;
	}
