	function checkrequired(which) 
	{
		var pass=true;
		if (document.images) 
		{
			for (i=0;i<which.length;i++) 
			{
				var tempobj=which.elements[i];
				if (tempobj.name.substring(0,8)=="required") 
				{
					if (((tempobj.type=="text"||tempobj.type=="textarea")&&
tempobj.value==''||tempobj.value=='Type here')||(tempobj.type.toString().charAt(0)=="s"&&
tempobj.selectedIndex==0)) 
					{
						pass=false;
						break;
         				}
      				}
   			}
		}
		if (!pass) 
		{
			shortFieldName=tempobj.name.substring(8,30).toUpperCase();
			alert("Please make sure the "+shortFieldName+" field was properly completed.");
			return false;
		}
		else
		return true;
	}
	
	function CheckNumeric()
	{
   		// Get ASCII value of key that user pressed
   		var key = window.event.keyCode;
		// Was key that was pressed a numeric character (0-9)?
   		if ( key > 47 && key < 58 )
      		return; // if so, do nothing
   		else
      		window.event.returnValue = null; // otherwise discard character
	}
	
	function validateZIP(field) 
	{
		var valid = "0123456789-";
		var hyphencount = 0;

		if (field.length!=5 && field.length!=10) 
		{
			alert("You must enter your 5 or 5+4 digit zip code using yyyyy or yyyyy-zzzz.");
    			document.PlaceOrder.Zip.select()
    			document.PlaceOrder.Zip.focus()
			return false;
		}
		for (var i=0; i < field.length; i++) 
		{
			temp = "" + field.substring(i, i+1);
			if (temp == "-") hyphencount++;
			if (valid.indexOf(temp) == "-1") 
			{
				alert("Invalid characters in your zip code.  Please try again.");
				document.PlaceOrder.Zip.select()
				document.PlaceOrder.Zip.focus()
				return false;
			}
			if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) 
			{
				alert("Please use a hyphen and the format yyyyy-zzzz");
    				document.PlaceOrder.Zip.select()
    				document.PlaceOrder.Zip.focus()
				return false;
   			}
		}
		return true;
	}
	
	function check_date(field)
	{
		var checkstr = "0123456789";
		var DateField = field;
		var Datevalue = "";
		var DateTemp = "";
		var seperator = "/";
		var day;
		var month;
		var year;
		var leap = 0;
		var err = 0;
		var i;
   		err = 0;
		
   		DateValue = DateField.value;
   		/* Delete all chars except 0..9 */
   		for (i = 0; i < DateValue.length; i++) 
		{
	  		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) 
			{
	     		DateTemp = DateTemp + DateValue.substr(i,1);
	  		}
   		}
		
   		DateValue = DateTemp;
   		/* Always change date to 8 digits - string*/
   		/* if year is entered as 2-digit / always assume 20xx */
   		if (DateValue.length == 6) 
		{
      		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); 
		}
   		if (DateValue.length != 8) 
		{
      		err = 19;
		}
   			/* year is wrong if year = 0000 */
   			year = DateValue.substr(4,4);
   			if (year == 0) 
			{
      			err = 20;
   			}
			
   			/* Validation of month*/
   			month = DateValue.substr(0,2);
   			if ((month < 1) || (month > 12)) 
			{
      			err = 21;
   			}
			
   			/* Validation of day*/
   			day = DateValue.substr(2,2);
   			if (day < 1) 
			{
     			err = 22;
   			}
			
   			/* Validation leap-year / february / day */
   			if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) 
			{
      			leap = 1;
   			}
   			if ((month == 2) && (leap == 1) && (day > 29)) 
			{
      			err = 23;
   			}
   			if ((month == 2) && (leap != 1) && (day > 28)) 
			{
      			err = 24;
   			}
			
   			/* Validation of other months */
   			if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) 
			{
      			err = 25;
   			}
   			if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) 
			{
      			err = 26;
   			}
			
   			/* if 00 ist entered, no error, deleting the entry */
   			if ((month == 0) && (day == 0) && (year == 00)) 
			{
      			err = 0; month = ""; day = ""; year = ""; seperator = "";
   			}
			
   			/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   			if (err == 0) 
			{
      			DateField.value = month + seperator + day + seperator + year;
   			}
			
   			/* Error-message if err != 0 */
   			else 
			{
      			alert("Date is incorrect!");
      			DateField.select();
	  			DateField.focus();
   			}
	}
	
function ValidatePhone(elem) {
	var pn = elem.value;
	if (pn == "") return;
	pn = pn.replace(/\D/g,"");

	if (pn.length == 7)
		elem.value = pn.replace(/(\d{3})(\d{4})/,"$1-$2");
	else if (pn.length == 10)
		elem.value = pn.replace(/(\d{3})(\d{3})(\d{4})/,"($1) $2-$3");
	else {
		alert('The '+elem.name+' must be a 7 or 10 digit phone number');
		return false;
		}
	}
	
	function validEmail(which)
	{
		if (PlaceOrder.requiredEmail.value.indexOf('@',0)==-1 ||
       			PlaceOrder.requiredEmail.value.indexOf('@',0)== 0 ||
       			PlaceOrder.requiredEmail.value.indexOf('.',0)==-1) 
		{
    			alert("Invalid email address.")
    			return false;
    	}
		else return true
	}
	
	function goToURL() 
	{ 
		window.location = "http://www.researchwizard.org"; 
	}
	function checkCR(evt) 
	{
		var evt  = (evt) ? evt : ((event) ? event : null);
		var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
		if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
	}
	document.onkeypress = checkCR;