var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var special = '_@-. !,\'';
var dotchar = '.';
var filechar = '\\:';
var emailchar = '@_.';
var spacechar = ' ';

function isValid(parm, val){
	if (parm == "") { return true; }
	for (i=0; i<parm.length; i++) {
		if (val.indexOf(parm.charAt(i),0) == -1) {return false;}
	}
	return true;
}

function isNum(parm){
	return isValid(parm,numb);
}

function isFloat(parm){
	return isValid(parm,numb+dotchar);
}

function isLower(parm){
	return isValid(parm,lwr);
}

function isUpper(parm){
	return isValid(parm,upr);
}

function isAlpha(parm){
	return isValid(parm,lwr+upr);
}

function isAlphaNum(parm){
	return isValid(parm,lwr+upr+numb+special);
}

function isFilePath(parm){
	return isValid(parm,lwr+upr+numb+special+filechar);
}

function isEmail(parm){
	return isValid(parm,lwr+upr+numb+emailchar);
}

function isFieldValid(fieldName, fieldLength, fieldValidation){
	if (fieldValidation=="int"){
		return ((isNum(fieldName)) && (fieldName.length>=fieldLength));
	}
	else if (fieldValidation=="float"){
		return ((isFloat(fieldName)) && (fieldName.length>=fieldLength));
	}
	else if (fieldValidation=="alpha"){
		return ((isAlpha(fieldName)) && (fieldName.length>=fieldLength));
	}
	else if (fieldValidation=="alphaNum"){
		return ((isAlphaNum(fieldName)) && (fieldName.length>=fieldLength));
	}
	else if (fieldValidation=="lower"){
		return ((isLower(fieldName)) && (fieldName.length>=fieldLength));
	}
	else if (fieldValidation=="upper"){
		return ((isUpper(fieldName)) && (fieldName.length>=fieldLength));
	}
	else if (fieldValidation=="email"){
		return ((isEmail(fieldName)) && (fieldName.length>=fieldLength));
	}
}

function hover(state){
	if (state==true){
		document.getElementById("imgHover").src = "images/splash_4ov.jpg";
	}
	else if (state==false){
		document.getElementById("imgHover").src = "images/splash_4.jpg";
	}
}

function doFocus(obj){
	document.getElementById(obj).style.color = "#666666";
}

function doBlur(obj){
	document.getElementById(obj).style.color = "#333333";
}

function validateForm(){
	var varName = document.getElementById("txtName").value;
	var varEmail = document.getElementById("txtEmail").value;
	var varMessage = document.getElementById("txtMessage").value;
	
	if ( (varName=="Please enter your name") || (varEmail=="Please enter your email address") || (varMessage=="Please enter your message and hit submit") ){
		return false;
	}
	
	return ( (isFieldValid(varName, 3, 'alphaNum')) && (isFieldValid(varEmail, 6, 'email')) && (isFieldValid(varMessage, 3, 'alphaNum')) )
}

function submitForm(){
	if (validateForm()){
		document.getElementById("simpleError").style.visibility = "hidden";
		document.getElementById("SendMessage").style.visibility = "hidden";
		sendData();
	}
	else{
		document.getElementById("simpleError").style.visibility = "visible";
	}
}

function createXMLRequest(){
	var xmlHttp;
	try{
		xmlHttp=new XMLHttpRequest();
		return xmlHttp;
	}
	catch(e){
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			return xmlHttp;
		}
		catch(e){
			try{
				xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
				return xmlHttp;
			}
			catch(e){
				alert("No AJAX Support");
				return 1;
			}
		}
	}
}

function sendData(){
	var varName = document.getElementById("txtName").value;
	var varEmail = document.getElementById("txtEmail").value;
	var varMessage = document.getElementById("txtMessage").value;
	
	var dataString = 'name='+ varName + '&email=' + varEmail + '&message=' + varMessage;  
	
	var xmlHttp=createXMLRequest();
	xmlHttp.onreadystatechange=function(){
	   	if(xmlHttp.readyState==4){
			var contactReturn=xmlHttp.responseText;
			if (contactReturn=="0"){
				document.getElementById("formError").style.visibility = "hidden";
				document.getElementById("SendMessage").style.visibility = "visible";
				//opacity('formfields', 100, 0, 500);
				//opacity('formsuccess', 0, 100, 500);
			}
			else{
				document.getElementById("formError").style.visibility = "hidden";
				document.getElementById("SendMessage").style.visibility = "hidden";
				//opacity('formError2', 0, 100, 500);
			}
		}
	}

	var urlString="sendmail.php?" + "name=" + varName + "&email=" + varEmail + "&message=" + varMessage;
	xmlHttp.open("GET",urlString,true);
	xmlHttp.send(null);	
}

function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        }
		document.getElementById(id).style.visibility = "hidden";
    } else if(opacStart < opacEnd) { 
        document.getElementById(id).style.visibility = "visible";
		for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
}
