$(document).ready(function(){	
	 var options = {  
		beforeSubmit:  showSupportRequest,  // pre-submit callback 
		success:       showSupportResponse,  // post-submit callback 
		url: 'includes/support.php',
		type: 'post',
		dataType: 'html'
	};
 
    // bind to the form's submit event 
    $('#spform').submit(function() { 
		$(this).ajaxSubmit(options); 
        return false; 
    })
	
});

function setError(obj){
	$("#diverror").show();
	$("#diverror").html("Required!");
	obj.removeClass('inputdefault');
	obj.addClass('inputerror');
	obj.focus();
}

function clearError(obj){
	$("#diverror").hide();
	obj.removeClass('inputerror');
	obj.addClass('inputdefault');
}

function showSupportRequest(formData, jqForm, options) {  
	
	var name 	 = $("#spname");
	var tel 	 = $("#sptel");
	var company  = $("#spcompany");
	var email 	 = $("#spemail");
	var job 	 = $("#spjobtitle");
	var details  = $("#spdetails");
	
	if (!name.val()){setError(name);return false;}else{clearError(name);}
	if (!email.val()){
		setError(email);
		return false;
	}else if(echeck(email.val())==false){
		setError(email);
		return false;
	}else{
		clearError(email);
	}
	if (!company.val()){setError(company);return false;}else{clearError(company);}
	if (!tel.val()){setError(tel);return false;}else{clearError(tel);}
	if (!job.val()){setError(job);return false;}else{clearError(job);}
	if (!details.val()){setError(details);return false;}else{clearError(details);}
	
	$.blockUI({ 
		message: '<span id="processing"><img border="0" src="images/loading.gif" align="absmiddle" /> Processing Support Form...</span>', 
		css: { 
			border: 'none',
			padding: '15px',
			backgroundColor: '#ffffff',
			'-webkit-border-radius': '10px', 
			'-moz-border-radius': '10px', 
			opacity: .8, 
			color: '#000000',
			width: '30%',
			top:   '40%',
			left:  '35%',
			textAlign:'center',
			cursor: 'wait',
			border:'3px solid #aaa'
		} 
	});
	
    return true; 
}

function showSupportResponse(responseText, statusText)  { 
	if(responseText == 'success'){
		$.blockUI({ 
			message: '<span id="thanks">Our support team will process your ticket immediately.</span>', 
			css: { 
				border: 'none',
				padding: '15px',
				backgroundColor: '#ffffff',
				'-webkit-border-radius': '10px', 
				'-moz-border-radius': '10px', 
				opacity: .8, 
				color: '#000000',
				width: '30%',
				top:   '40%',
				left:  '35%',
				textAlign:'center',
				cursor: 'wait',
				border:'3px solid #aaa'
			} 
		});
		setTimeout($.unblockUI, 4000);
	}else{
		$.blockUI({ 
			message: '<span id="thanks">Error occured, please try again later...</span>', 
			css: { 
				border: 'none',
				padding: '15px',
				backgroundColor: '#ffffff',
				'-webkit-border-radius': '10px', 
				'-moz-border-radius': '10px', 
				opacity: .8, 
				color: '#000000',
				width: '30%',
				top:   '40%',
				left:  '35%',
				textAlign:'center',
				cursor: 'wait',
				border:'3px solid #aaa'
			} 
		});
		setTimeout($.unblockUI, 2000);
	} 
} 

function echeck(str) {
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1){
	   return false;
	}
	
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false;
	}
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	
	 if (str.indexOf(at,(lat+1))!=-1){
		return false;
	 }
	
	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	 }
	
	 if (str.indexOf(dot,(lat+2))==-1){
		return false;
	 }
	
	 if (str.indexOf(" ")!=-1){
		return false;
	 }
	
	 return true;				
}
