// JavaScript Document

// Check to see if given string is a valid e-mail
	
	function isEmail(str) {
		
	  // are regular expressions supported?
	  var supported = 0;
	  if (window.RegExp) {
	    var tempStr = "a";
	    var tempReg = new RegExp(tempStr);
	    if (tempReg.test(tempStr)) supported = 1;
	  }
	  if (!supported) 
	    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	    
	  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
	  return (!r1.test(str) && r2.test(str));
	}
	
	function checkedRadio( radio_object )
	{
		if ( radio_object.length == undefined )
		{
			return radio_object.checked;
		}
		
		for( var i = 0; i < radio_object.length; i++) 
		{
			if ( radio_object[i].checked )
				return true;
		}
		
		return false;
		
	}	

	function convertEncoding(s)
	{
		// invalid characters from word... add them as you see fit
		var invalidChars = new Array();
		invalidChars[8211] = "-";
		invalidChars[8216] = "'";
		invalidChars[8217] = "'";
		invalidChars[8220] = "\"";
		invalidChars[8221] = "\"";
		invalidChars[8230] = "...";
		
		var newS = "";
		
		for ( var i = 0; i < s.length; i++ )
		{
			if ( invalidChars[s.charCodeAt(i)] != "" && invalidChars[s.charCodeAt(i)] != undefined )
				newS += invalidChars[s.charCodeAt(i)];
			else if ( s.charCodeAt(i) > 255 )
				newS += "";
			else
				newS += s.charAt(i);
		}
		
		return newS;
	}

	// Check all the form fields of a given form
	// Return false if its not filled in (or not filled in properly)
	
	function checkSurvey(form ) 
	{
		var elements = form.elements;
	
		for ( i = 0; i < elements.length; i++ ) 
		{
			if ( elements[i].type == 'hidden' )
				continue;
				
			var datatype = elements[i].getAttribute('datatype');
							
			if ( elements[i] && elements[i].type == 'textarea' )
				elements[i].value = convertEncoding(elements[i].value);

			if ( datatype && datatype == 'notRequired' )
				continue;
		  	else if ( elements[i].value == "" )
		  		alert ("Please fill in all form fields");
		  	else if ( datatype && datatype == "email" && !isEmail(elements[i].value ) )
		  		alert("Please input an e-mail in the correct format");
		  	else if ( datatype && datatype == "confirmEmail" && elements['email'].value != elements[i].value )
		  		alert("Please ensure your confirmation email matches your email address");
		  	else if ( datatype && datatype == 'requiredSelect' && elements[i].value == "" )
		  		alert("Please choose an item from the drop down list");
		  	else if ( datatype && datatype == 'requiredChoice' && !checkedRadio(elements[elements[i].name]) )
		  		alert("Please fill in all questions");
		  	else
		  		continue;		  
		  		
		  	elements[i].focus();
		  	return false;
		}
		
		return true;
	}
