﻿function validateContactForm()
{
    var loading = document.getElementById('loadingImg');
    var status = document.getElementById('contentdiv');
    var err = 0;
    var nameErr = document.getElementById('nameRequired');
    var emailErr = document.getElementById('emailRequired');
    var msgErr = document.getElementById('messageRequired');
    
    var form = document.getElementById('form');
    
    loading.style.visibility = "visible";
    
    if(form.name.value == null || form.name.value == ""){
        err += 1;
        nameErr.style.visibility = "visible";
    }
    else{
        nameErr.style.visibility = "hidden";
    }
    
    if(form.message.value == null || form.message.value == ""){
        err += 1;
        msgErr.style.visibility = "visible";
    }
    else{
        msgErr.style.visibility = "hidden";
    }
    
    if(form.from.value == null || form.from.value == "" || !validateAddress(form.from.value)){
        err += 1;
        emailErr.style.visibility = "visible";
    }
    else{
        emailErr.style.visibility = "hidden";
    }
    
    if(err > 0)
    {
        loading.style.visibility = "hidden";
        return false;
    }
    else
        sendmail(form);
        
    loading.style.visibility = "hidden";
    status.style.visibility = "visible";
}

function validateApplication()
{
    var err = 0;
    var indx = 0;
    var nameErr = document.getElementById('nameRequired');
    var emailErr = document.getElementById('emailRequired');
    var attErr = document.getElementById('fileRequired');
    var appErr = document.getElementById('appRequired');
    var refErr = document.getElementById('referenceRequired');
    
    var form = document.getElementById('application-form');

    if(form.name.value == null || form.name.value == ""){
        err += 1;
        nameErr.style.visibility = "visible";
    }
    else{
        nameErr.style.visibility = "hidden";
    }
       
    if(form.from.value == null || form.from.value == "" || !validateAddress(form.from.value)){
        err += 1;
        emailErr.style.visibility = "visible";
    }
    else{
        emailErr.style.visibility = "hidden";
    }
    
    if(form.resumeatt.value == null || form.resumeatt.value == ""){
        err += 1;
        attErr.style.visibility = "visible";
    }
    else{
        attErr.style.visibility = "hidden";
    }
    
    if(form.applicationatt.value == null || form.applicationatt.value == ""){
        err += 1;
        appErr.style.visibility = "visible";
    }
    else{
        appErr.style.visibility = "hidden";
    }

    if(err > 0)
    {
        return false;
    }
    else
    {
        document.getElementById('application-form').submit();
    }
}

function validateAddress(incoming) {
	var emailstring = incoming;
	var ampIndex = emailstring.indexOf("@");
	var afterAmp = emailstring.substring((ampIndex + 1), emailstring.length);
		// find a dot in the portion of the string after the ampersand only
	var dotIndex = afterAmp.indexOf(".");
		// determine dot position in entire string (not just after amp portion)
	dotIndex = dotIndex + ampIndex + 1;
		// afterAmp will be portion of string from ampersand to dot
	afterAmp = emailstring.substring((ampIndex + 1), dotIndex);
		// afterDot will be portion of string from dot to end of string
	var afterDot = emailstring.substring((dotIndex + 1), emailstring.length);
	var beforeAmp = emailstring.substring(0,(ampIndex));
		//old regex did not allow subdomains and dots in names
		//var email_regex = /^[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~]+(\.[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~])*\@(((\w+[\w\d\-]*[\w\d]\.)+(\w+[\w\d\-]*[\w\d]))|((\d{1,3}\.){3}\d{1,3}))$/;
	var email_regex = /^\w(?:\w|-|\.(?!\.|@))*@\w(?:\w|-|\.(?!\.))*\.\w{2,3}/ 
		// index of -1 means "not found"
	if ((emailstring.indexOf("@") != "-1") &&
		(emailstring.length > 5) &&
		(afterAmp.length > 0) &&
		(beforeAmp.length > 1) &&
		(afterDot.length > 1) &&
		(email_regex.test(emailstring)) ) {
		  return true;
	} else {
			return false;
	}
}

   var http_request = false;
   function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('contentdiv').innerHTML = result;            
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
   
   function sendmail(obj) {
      var poststr = "from=" + encodeURI( document.getElementById("from").value ) +
                    "&name=" + encodeURI( document.getElementById("name").value ) +
                    "&message=" + encodeURI( document.getElementById("message").value ) +
                    "&company=" + encodeURI( document.getElementById("company").value ) +
                    "&phone=" + encodeURI( document.getElementById("phone").value );
      makePOSTRequest('../php/sendmail.php', poststr);
   }
   