
/*
 * C.Brandt 05/2010
 * Fast Forward, LLC
 * 
 * Script to validate evaluator form info and submit email request to web server
 * 
 * Last Modified by: C.Brandt
 * Last Modified date: 5/19/2010
 * 
 */ 

function isFieldValid(field, errorMsg, isemail)
{
    with (field)
    {
        if (value==null || value=="")
        {
            alert(errorMsg);
            return false;
        } else {
            if (isemail==true)
            {
                apos=value.indexOf("@");
                dotpos=value.lastIndexOf(".");
            
                if (apos<1||dotpos-apos<2)
                {
                    alert(errorMsg);
                    return false;
                } else {
                    return true;
                }

            } else {
                return true;
            }                
        }
    }
}

function validateEvalForm(thisform)
{
	//alert("in validateEvalForm");

    if (isFieldValid(thisform.FirstName, "You must specify a first name.", false) == false)
    {
        thisform.FirstName.focus();
        return false;
    }
    
    if (isFieldValid(thisform.LastName, "You must specify a last name.", false) == false)
    {
        thisform.LastName.focus();
        return false;
    }

    if (isFieldValid(thisform.EmailAddress, "You must specify a valid email address.", true) == false)
    {
        thisform.EmailAddress.focus();
        return false;
    }
    
    return true;
}

function sendEval(thisform, doc)
{
	//alert("sending eval");
	
	//Use AJAX to submit form data, not a submit button...
	//create cross-browser request object
	var ajaxRequest;
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// browser not supported
				alert("Your browser is not supported.");
				return false;
			}
		}
	}
	
	//get references to divisions for toggling visibility
	var downloadFiles = doc.getElementById("DownloadFiles");
	var requestorInfo = doc.getElementById("RequestorInfo");
	
	//validate form	
	if (validateEvalForm(thisform)) 
	{		
		//toggle visibility
		downloadFiles.style.visibility = "visible";
		requestorInfo.style.visibility = "hidden";
						
		//form is valid, send input element values as parameters to the script using POST
		var vFirstName = thisform.FirstName.value;
		var vLastName = thisform.LastName.value;
		var vEmailAddress = thisform.EmailAddress.value;
		var vTerritory = thisform.Territory.value;
		var vCompanyName = thisform.CompanyName.value;
		var vTitle = thisform.Title.value;
		var vPhone = thisform.Phone.value;
		var vPC = thisform.PC.value;
		var vXbox360 = thisform.Xbox360.value;
		var vPS3 = thisform.PS3.value;
		var vWii = thisform.Wii.value;
		
		var params = "FirstName=" + vFirstName + 
					 "&LastName=" + vLastName + 
					 "&EmailAddress=" + vEmailAddress + 
					 "&Territory=" + vTerritory + 
					 "&CompanyName=" + vCompanyName + 
					 "&Title=" + vTitle + 
					 "&Phone=" + vPhone + 
					 "&PC=" + vPC + 
					 "&Xbox360=" + vXbox360 + 
					 "&PS3=" + vPS3 + 
					 "&Wii=" + vWii;
		
		//prepare to POST ajax request to server
		ajaxRequest.open("POST", "sendeval.php", true);
		
		//set POST request headers to mimic web form submission
		//note, these are standard and should not change
		ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajaxRequest.setRequestHeader("Content-length", params.length);
		ajaxRequest.setRequestHeader("Connection", "close");
				
		//handle response
		ajaxRequest.onreadystatechange = function(){
			if(ajaxRequest.readyState == 4){ //readystate 4 is "completed"
				//not needed at the moment.
				//alert(ajaxRequest.responseText);
				//alert("test");
			}
		};
		
		ajaxRequest.send(params); 
		
		return true;		
	} else {
		//alert("form is not valid");
		return false;
	}
}


