
	function startSurvey( surveyID )
	{
		var ScreenWidth  = window.screen.width;
		var ScreenHeight = window.screen.height;
		var movefromedge = 0;
		var placementx   = ( ScreenWidth / 2) - ( ( 700 ) / 2 );
		var placementy  = ( ScreenHeight / 2) - ( ( 500 + 50 ) / 2 );
		var PopUpUrl	 = "/modules/survey/doSurvey.asp?surveyID=" + surveyID
		WinPop 			 = window.open( PopUpUrl,"Survey","width=500,height=500,toolbar=0,location=0,directories=0,status=1,scrollbars=1,menubar=0,resizable=1,left="+placementx+",top="+placementy+",screenX="+placementx+",screenY="+placementy+",");
	}	
	
	/*
	'---------------------------------------------------------------
	# FORM FIELD RULES.
	'---------------------------------------------------------------
	# 1: field name / id
	# 2: alp: alpha numeric characters required
		 eml: email field
		 num: numerical value only
		 sel: select box
		 date: date select field
	# 3: field legth
	# 4: If select, can first field be valid?
		 1: Yes
		 0: No
	'---------------------------------------------------------------
	*/

	function checkForm( )
	{
		var d 	     = document;
		var errMsg 	 = "";
		var fieldRow = 0;
		var blt 	 = "";
		var div		 = " - ";
		var fields   = d.getElementById( "requiredFields" ).value;
		
		if( fields.length > 0 )
		{
			var fields   = fields.split( "--|" );
			
			for( var i = 0; i < fields.length-1; i++ )
			{
				var field 		  = fields[i].split( "-|" );
				var fieldName 	  = field[0];
				var fieldType 	  = field[1];
				var fieldBounds   = field[2].split( "-" ); 
				var fieldMin	  = fieldBounds[0];
				var fieldMax	  = fieldBounds[1];
				var fieldInitVal  = field[3];
				
				if( isNaN( fieldMin ) )
					fieldMin = 0;
					
				if( isNaN( fieldMax ) )
					fieldMax = 100;
				
				if( d.getElementById( fieldName ) )
				{
					var fieldValue = d.getElementById( fieldName ).value;
				}
				else
				{
					if( d.forms[0][fieldName] )
					{
						var fieldValue = d.forms[0][fieldName].value;
					}
					else
					{
						alert( "Element '" + fieldName + "' not found in document." );
						return false;
					}
				}
				
				if( fieldType != "date" )
				{
					if( fieldValue.length < fieldMin || fieldValue.length > fieldMax  )
						errMsg += blt + fieldName + div + " Must contain between " + fieldMin + " and " + fieldMax + " characters.\n\n";
				}
				
				switch( fieldType )
				{
					case "chk" :
						if( fieldMin != 0 )
						{
							if( d.getElementById( fieldName ).checked == false )
								errMsg += blt + fieldName + div + " Must be checked.\n\n";
						}
							
						break;
					
					case "eml" :
						if( !isValidEmail( fieldValue ) )
							errMsg += blt + fieldName + div + " Requires a valid email address. \n\n";
						
						break;
					
					case "aph" :
						if( !isNaN( fieldType ) )
							errMsg += blt + fieldName + div + " Must be alphanumeric. \n\n";
						
						break;
					
					case "date" :
						if( fieldValue.length == 0 )
							errMsg += blt + fieldName + div + " Requires a date to be selected. \n\n";
						
						break;
					
					case "num" :
						if( isNaN( fieldValue ) )
							errMsg += blt + fieldName + div + " Can only be a number. \n\n"
						
						break;
					
					case "sel" :
						if( fieldInitVal == "1" )
						{
							var selIndex = d.getElementById( fieldName ).selectedIndex;
							if( selIndex == 0 )
								errMsg += fieldName + "\n";
						}
						
						break;
				}
			}
			
			if( errMsg.length == 0 )
				return true;
			else
				alert( "Please ammend the errors found below:     \n\n" + errMsg );
				return false;
		}
	}

	function isValidEmail(email)
	{
		invalidChars = " /:,;!#$%^&*()+=~|<>?][}{\\";	
		for( i = 0; i < invalidChars.length; i++ )
		{
			var badChar=invalidChars.charAt( i )
			if( email.indexOf( badChar, 0 ) >- 1 )
				return false;
		}
		if( email.charAt(0) == "_" || ( email.charAt( 0 ) == "@" && email.charAt( 1 ) == "@" ) )
			return false;
			
		var atPos = email.indexOf( "@", 1 )
		if( atPos == -1 )
			return false;
		
		if( email.charAt( atPos + 1 ) == "." || email.charAt( atPos + 1 ) == "_" )
			return false;
		
		if( email.indexOf( "@", atPos+1 ) >-1 )
			return false;
		
		var periodPos = email.indexOf( ".", atPos )
		if( periodPos == -1 || email.charAt( 0 ) == "." )
			return false;
		
		var l = email.length;
		if( l > email.lastIndexOf( "." ) + 4 || l < email.lastIndexOf( "." ) + 3 ){
			return false
		}
		else
		{	
			if( l == email.lastIndexOf( "." ) + 3 )
			{
				if ( !( email.charAt( l - 8 ) == "." || email.charAt( l - 7 ) == "." || email.charAt( l - 6 ) == "." ) )
					return false;
			}
		}	
		return true
	}		
