function showRequestType(requestType)

{
	if(requestType=="general")
	{
		document.getElementById("appoinment").style.display="none";
		document.getElementById("generalInfo").style.display="block";
	}
	else
	{
		document.getElementById("generalInfo").style.display="none";
		document.getElementById("appoinment").style.display="block";
	}
}

function contactMailAjx(requestType)
{	
	name = document.getElementById("realname").value;
	name = name.replace(/^\s+|\s+$/g, '');
	telephone = document.getElementById("phone").value;		
	//telephone = telephone.replace(/^\s+|\s+$/g, '');
	comment = document.getElementById("comment").value;
	comment = comment.replace(/^\s+|\s+$/g, '');
	date = document.getElementById("date").value;
	date = date.replace(/^\s+|\s+$/g, '');
	time = document.getElementById("time").value;
	time = time.replace(/^\s+|\s+$/g, '');
	descrip = document.getElementById("description").value;
	descrip = descrip.replace(/^\s+|\s+$/g, '');
	emailAddress = document.getElementById("email").value;
	emailAddress = emailAddress.replace(/^\s+|\s+$/g, '');
	var validEmail =isValidEmail(emailAddress);
	var validTel = IsNumeric(telephone);
	type = requestType.value;
	if(validTel=="true")
	{
		document.getElementById("telErr").className = "msgOff";
	}
	else
	{
		document.getElementById("telErr").className = "msgFieldOn";
	}
	if(requestType.value=="general")
	{//alert("1");
		if((name!="" && comment!="" && (telephone!="" || emailAddress!="")))
		{	
			if((emailAddress!="" && !validEmail)||(telephone!="" && !validTel))
			{//alert("inval");
				document.getElementById("nameErr").className = (name!="")?"msgOff":"msgFieldOn";
				document.getElementById("telErr").className = ((telephone=="" && emailAddress=="")||(!validTel && !validEmail))?"msgFieldOn":"msgOff";
				document.getElementById("emailInval").className = (telephone=="" && emailAddress=="")?"msgFieldOn":"msgOff";
				document.getElementById("invalEmail").className = (emailAddress!="" && !validEmail)?"msgFieldOn":"msgOff";
				document.getElementById("telErr").className = (telephone!="" && !validTel)?"msgFieldOn":"msgOff";
				document.getElementById("commentErr").className = (comment!="")?"msgOff":"msgFieldOn";
			}
			else
			{	
				ajx=new AJAXHandlerWebsite();
				ajx.setTarget('contactMailAjax.php');
				ajx.sendRequest("name="+name+"&telephone="+telephone+"&email="+emailAddress+"&type="+type+"&comment="+comment,'POST',1,"confirmation");
				resetVals();
			}		
		}
		else
		{
			document.getElementById("nameErr").className = (name!="")?"msgOff":"msgFieldOn";
			if(validTel || validEmail)
			{
				if(emailAddress=="" && validEmail=="false")
				{					
					document.getElementById("invalEmail").className = "msgFieldOn";
					document.getElementById("emailInval").className = "msgOff";
				}
				else
				{
					document.getElementById("emailInval").className = 'msgOff';
					document.getElementById("telErr").className = "msgOff";
				}
			}
			else				
				document.getElementById("emailInval").className = 'msgFieldOn';	
			
			document.getElementById("commentErr").className = (comment!="")?"msgOff":"msgFieldOn";
	   }
	}
	else
	{		
		var TodayDate = new Date();			
		var dd = TodayDate.getDate();
		var mm = TodayDate.getMonth()+1;//January is 0!
		var yyyy = TodayDate.getFullYear();
		if(dd<10){dd='0'+dd;}
		if(mm<10){mm='0'+mm;}
		TodayDate = mm+'-'+dd+'-'+yyyy;
		
		var full=TodayDate.split('-');
		yr=full[2];mm=full[0];dd=full[1];
		
		var inputDate = document.getElementById('date').value; 
		var full1=inputDate.split('-');
		yr1=full1[2];mm1=full1[0];dd1=full1[1];
		
		if(name!="" && inputDate!="" && time!="" && descrip!="" && (telephone!="" || emailAddress!=""))
		{			
			if(((emailAddress!="" && !validEmail)||(telephone!="" && !validTel)) && date!="")
			{
				document.getElementById("nameErr").className = (name!="")?"msgOff":"msgFieldOn";
				document.getElementById("telErr").className = ((telephone=="" && emailAddress=="")||(!validTel && !validEmail))?"msgFieldOn":"msgOff";
				document.getElementById("emailInval").className = (telephone=="" && emailAddress=="")?"msgFieldOn":"msgOff";
				document.getElementById("invalEmail").className = (emailAddress!="" && !validEmail)?"msgFieldOn":"msgOff";
				document.getElementById("telErr").className = (telephone!="" && !validTel)?"msgFieldOn":"msgOff";
				document.getElementById("desErr").className = (descrip!="")?"msgOff":"msgFieldOn";
				document.getElementById("timeErr").className = (time!="")?"msgOff":"msgFieldOn";
				document.getElementById("dateErrEmpty").className = (date!="")?"msgOff":"msgFieldOn";
				document.getElementById("invalDate").className = "msgOff";
//------------------------				
				if(((inputDate < TodayDate) && inputDate!="") || yr1 <= yr)
				{
					document.getElementById("invalDate").className = ((yr1 < yr) || (yr1 <= yr && mm1<mm)||(yr1 <= yr && (mm1==mm || mm1<mm)&& dd1<dd))?"msgFieldOn":"msgOff";
				}				
			 }	
			else
			{
				if(((inputDate < TodayDate) && inputDate!="") || yr1 <= yr)
				{
					if((yr1 < yr) || (yr1 <= yr && mm1<mm)||(yr1 <= yr && (mm1==mm || mm1<mm)&& dd1<dd))
					{
						document.getElementById("nameErr").className = "msgOff";
						document.getElementById("telErr").className = "msgOff";
						document.getElementById("emailInval").className = "msgOff";
						document.getElementById("invalEmail").className = "msgOff";
						document.getElementById("desErr").className = "msgOff";
						document.getElementById("timeErr").className = "msgOff";
						document.getElementById("dateErrEmpty").className = "msgOff";
						document.getElementById("invalDate").className = "msgFieldOn";
					}
					else
					{
						document.getElementById("invalDate").className = "msgOff";
						ajx=new AJAXHandlerWebsite();
						ajx.setTarget('contactMailAjax.php');
						ajx.sendRequest("name="+name+"&telephone="+telephone+"&email="+emailAddress+"&type="+type+"&date="+inputDate+"&time="+time+"&descrip="+descrip,'POST',1,"confirmation");
						resetVals();
					}
				}	
				else
				{
					document.getElementById("invalDate").className = "msgOff";
					ajx=new AJAXHandlerWebsite();
					ajx.setTarget('contactMailAjax.php');
					ajx.sendRequest("name="+name+"&telephone="+telephone+"&email="+emailAddress+"&type="+type+"&date="+inputDate+"&time="+time+"&descrip="+descrip,'POST',1,"confirmation");
					resetVals();
				}
			}
		}
		else
		{	
			document.getElementById("nameErr").className = (name=="")?"msgFieldOn":"msgOff";			
			if(validTel || validEmail)
			{
				if(emailAddress=="" && validEmail=="false")
				{					
					document.getElementById("invalEmail").className = "msgFieldOn";
					document.getElementById("emailInval").className = "msgOff";
				}
				else
				{
					document.getElementById("emailInval").className = 'msgOff';
					document.getElementById("telErr").className = "msgOff";
				}
			}
			else				
				document.getElementById("emailInval").className = 'msgFieldOn';	
				
			
			document.getElementById("desErr").className = (descrip=="")?"msgFieldOn":"msgOff";
			document.getElementById("dateErrEmpty").className = (inputDate=="")?"msgFieldOn":"msgOff";			
			document.getElementById("timeErr").className = (time=="")?"msgFieldOn":"msgOff";
			
		}
	}
	
}

function AJAXHandlerWebsite()
{
	var target=null;
	var respVal=null;
	        	
	this.setTarget=function(target)
	{
		this.target=target;
	}
	 	
	this.createRequestObject=function()
	{	 		
		var httpRequest=false;
		if(window.XMLHttpRequest){
			httpRequest=new XMLHttpRequest();
		}
		else if(window.ActiveXObject){
			httpRequest=new ActiveXObject("Microsoft.XMLHTTP");
		}
		else{
			alert("This page will not work as desired, lack of support from browser");
		}
			
		return httpRequest;
	}

	var xmlhttp=this.createRequestObject();
	var flag=null;
	var div=null;
	var divsOfPage=null;
	var divs=null;

	this.sendRequest=function(paramslist,method,flagPrm,divId)
	{
		params=paramslist; 		
		flag=flagPrm; 		
		div = divId;
		
		if(method=='POST')
		{
			xmlhttp.open("POST",this.target,true);
			xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlhttp.setRequestHeader("Content-length", params.length);
			xmlhttp.setRequestHeader("Connection", "close");
			xmlhttp.onreadystatechange=this.handleResponce;
			xmlhttp.send(params);
		}
		else if(method=='GET')
		{
			xmlhttp.open("GET",this.target+params,true);
			xmlhttp.onreadystatechange=this.handleResponce;
			xmlhttp.send(null);
		}
			 		    
	}

	this.handleResponce=function()
	{
		
		if(xmlhttp.readyState==4)
		{
			responce=xmlhttp.responseText;		
			if(flag == 1)
			{				
				document.getElementById("realname").value="";				
				document.getElementById("phone").value="";	
				document.getElementById("comment").value="";	
				document.getElementById("date").value="";	
				document.getElementById("time").value="";	
				document.getElementById("description").value="";
				document.getElementById("email").value="";				
				//document.getElementById("confirmError").innerHTML =responce;
				//alert(responce);
				if(responce=="true")
				{//alert("1");
					setOpacity('confirmOk',1);
					document.getElementById("confirmOk").style.display = "inline";
					document.getElementById("confirmOk").className = "msgFieldOn";
					window.setTimeout("fadeOut('confirmOk',20,3000);", 4000);
					//location.href="index.php";					
				}
				else 
				{
					setOpacity('confirmError',1);
					document.getElementById("confirmError").style.display = "inline";
					document.getElementById("confirmError").className = "msgFieldOn";
					window.setTimeout("fadeOut('confirmError',20,3000);", 4000);
				}											
			 }
			
	   }
	   else
	   {setOpacity('confirmation',1);
		   if(flag == 1)
		   {				   
			   document.getElementById("confirmation").innerHTML ='Sending...';	
			   window.setTimeout("fadeOut('confirmation',5,1000);", 1500);
		   }   
		   
	   }
 	}
}

function isValidEmail(val)
{
	var emailVal = val;
	apos=emailVal.indexOf("@");
	dotpos=emailVal.lastIndexOf(".");
	if (apos<1||dotpos-apos<2 || !(emailVal.match(/^[\w\d!#$%&'*+-\/=?^`{|}~]+(\.[\w\d!#$%&'*+-\/=?^`{|}~]+)*@([a-z\d][-a-z\d]*[a-z\d]\.)*[a-z][-a-z\d]*[a-z]$/)))
	{		
		return false;
	}
	else
   	{
        return true;
   	}
}

function IsNumeric(strString) 
{ 
   // var strValidChars = "0123456789.+- "; //|| strString.match(/\w\.+-{}/) 
    var strChar; 
    var blnResult = true;
    
    //test strString consists of valid characters listed above 
    if (strString.length == 0 || strString.length<5)
        return false;
    for (i = 0; i < strString.length && blnResult == true; i++) 
    { 
        strChar = strString.charAt(i); 
        if (strString.indexOf(strChar) == -1) 
        { 
            blnResult = false; 
        } 
     }
    
return blnResult; 
}

function validChars(e, goods) {
	var key, keychar;
	key = (window.event) ? window.event.keyCode : ((e) ? e.which : null);
	if (key == null) return true;
 
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();
 
	if (goods.indexOf(keychar) != -1)
		return true;
 
	if (key==null || key==0 || key==8 || key==9 || key==13 || key==27)
		return true;
 
	return false;
}

function resetVals()
{
	document.getElementById("realname").value="";				
	document.getElementById("phone").value="";	
	document.getElementById("comment").value="";	
	document.getElementById("date").value="";	
	document.getElementById("time").value="";	
	document.getElementById("description").value="";
	document.getElementById("email").value="";	
	document.getElementById("nameErr").className = 'msgOff';
	document.getElementById("emailInval").className = 'msgOff';
	document.getElementById("telErr").className = "msgOff";
	document.getElementById("emailInval").className = 'msgOff';
	document.getElementById("desErr").className = 'msgOff';	
	document.getElementById("dateErrEmpty").className = 'msgOff';
	document.getElementById("timeErr").className = 'msgOff';
	document.getElementById("commentErr").className = 'msgOff';
	document.getElementById("invalEmail").className = 'msgOff';	
}
//http://www.codeproject.com/KB/ajax/Flash_user_confirmation.aspx?display=Print
function setOpacity(id, level) {
  var element = document.getElementById(id); 
  element.style.display = 'block';
  element.style.zoom = 1;
  element.style.opacity = level;
  element.style.MozOpacity = level;
  element.style.KhtmlOpacity = level;
  element.style.filter = "alpha(opacity=" + (level * 100) + ");";
}

//http://www.codeproject.com/KB/ajax/Flash_user_confirmation.aspx?display=Print
function fadeOut(id, steps, duration) {
  var fadeOutComplete;       
  for (i = 0; i <= 1; i += (1 / steps)) {
    setTimeout("setOpacity('" + id + "', "  + 
              (1 - i) + ")", i * duration);
    fadeOutComplete = i * duration;
  }
  setTimeout("hide('" + id + "')", fadeOutComplete);
}   

//http://www.codeproject.com/KB/ajax/Flash_user_confirmation.aspx?display=Print
function hide(id)
{
  document.getElementById(id).style.display = 'none';
}