var validN,validE,validS,validB;

function validate(e)
{
	var senderName = document.getElementById('senderName').value;
	var senderEmail = document.getElementById('senderEmail').value;
	var subject = document.getElementById('emailSubject').value;
	var mailbody = document.getElementById('emailBody').value;

	if(trim(senderName)=="")
	{
		document.getElementById('errorName').innerHTML = "Please write your name";
		validN = 0;
	}
	else
	{
		document.getElementById('errorName').innerHTML = "";
		validN = 1;
	}

	if(trim(senderEmail)=="")
	{
		document.getElementById('errorEmail').innerHTML = "Please write your email";
		validE = 0;
	}
	else
	{
		if(checkemail(senderEmail))
		{
			document.getElementById('errorEmail').innerHTML = "";
			validE = 1;
		}
		else
		{
			document.getElementById('errorEmail').innerHTML = "Please write a valid email";
			validE = 0;
		}
	}

	if(trim(subject)=="")
	{
		document.getElementById('errorSubject').innerHTML = "Please write your subject";
		validS = 0;
	}
	else
	{
		document.getElementById('errorSubject').innerHTML = "";
		validS = 1;
	}

	if(trim(mailbody)=="")
	{
		document.getElementById('errorBody').innerHTML = "Please write your message";
		validB = 0;
	}
	else
	{
		document.getElementById('errorBody').innerHTML = "";
		validB = 1;
	}
	
	if(validN && validE && validS && validB)
	{
		document.getElementById("usermessage").innerHTML="Sending mail ...";
		
		SwapDisplay("sendEmail", "sendingStatus", 500, 5);
		
		var postdata = "senderName="+senderName+"&";
		var postdata = postdata +"senderEmail="+senderEmail+"&";
		var postdata = postdata +"emailSubject="+subject+"&";
		var postdata = postdata +"emailBody="+mailbody+"&";
		var postdata = postdata +"senderCC="+document.getElementById('senderCC').checked+"&";	

		http.open("POST", "sendemail.php?contact=ajax", true);
		http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http.onreadystatechange = handleEmailResponse;
		http.send(postdata);
	}

	document.getElementById("contactForm").onsubmit = new function () { cancelEvent(e) };

	return false;
}

function AddEvent(obj, Event, fn)
{
	if(obj.addEventListener)
	{
		obj.addEventListener(Event, fn, false);
	}
	else if(obj.attachEvent)
	{
		obj.attachEvent("on"+Event, fn)
	}
}

function ActivateAjax()
{
	var sendElement = document.getElementById('sendEmail');
	AddEvent(sendElement,'click', validate);
	return false;
}

function trim(str)
{
 if (str != null) 
        {
                var i; 

                for (i=0; i < str.length; i++) 
                {
                        if (str.charAt(i)!=" ") 
                {
                                str=str.substring(i,str.length); 
                                break;
                        } 
                } 

                for (i = str.length-1; i >= 0; i--) 
                {
                        if (str.charAt(i)!=" ") 
                {
                                str = str.substring(0,i+1); 
                                break;
                        } 
                } 

                if (str.charAt(0)==" ") 
                {
                        return ""; 
                }               
                else 
                {
                        return str; 
                }
        }
	return "";
}

function checkemail(str)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

	if (filter.test(str))
		return true;
	
	return false;
}

function handleEmailResponse()
{
	if(http.readyState==4)
  	{
	
		if(http.responseText=="1")
		{
			document.getElementById("usermessage").innerHTML = "Success! Email sent";
			document.getElementById("usermessage").style.display = "none";
			SwapDisplay("sendingStatus", "sendEmail", 500, 5);
			SwapDisplay("contactForm", "successStatus", 500, 5);
			document.getElementById("contactFormContainer").style.height = "50px";
			
		}
		else
		{
			SwapDisplay("sendingStatus", "sendEmail", 500, 5);
			document.getElementById("usermessage").innerHTML = "Failed! Please try again.";
			
		}

	}
}

function cancelEvent(e) {
    if (e && e.preventDefault) {
        e.preventDefault();
    }
    return false;
}

function getHTTPObject()
 {
	  var xmlHttp=null;
	  try
		{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
		}
	  catch (e)
		{
		// Internet Explorer
		try
		  {
		  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		catch (e)
		  {
		  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		  }
		}
	  return xmlHttp;
}

var http = getHTTPObject(); // We create the HTTP Object

AddEvent(window,'load', ActivateAjax);

