$(document).ready(function(){
	$('.error').hide();
	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	var phoneReg = /^(\+){0,1}(\d|\s|\(|\)){10,20}$/;	
	
	/// CONTACT FORM //////////////////////////////////

	$('#contactFrm').click(function(){
		var name = $.trim($('#name').val());
		var email = $.trim($('#email').val());
		var country = $.trim($('#country').val());
		var phone = $.trim($('#phonenumber').val());
		var message = $.trim($('#message').val());
		var numbers = phone.split(/\d/).length - 1;
		var valid = true;
		
		if (name == '' || name == 'Name') {
			$('.name-error').show();
			valid = false;
		}else{
			$('.name-error').hide();
		}
		
		if (email == '' || email == 'E-Mail Address') {
			$('.email-error').show();
			$('.email-vaild-error').hide();
			valid = false;
		}else if(!emailReg.test(email)) {
			$('.email-error').hide();
			$('.email-vaild-error').show();
			valid = false;
		}else{
			$('.email-error').hide();
			$('.email-vaild-error').hide();
		}
		
		if (country == '' || country == 'Country') {
			$('.country-error').show();
			valid = false;
		}else{
			$('.country-error').hide();
		}
		
		if ((!(10 <= numbers && numbers <= 20 && phoneReg.test(phone))) && phone !="" && phone !="Phone Number") {
			$('.phone-error').show();
			valid = false;
		}else{
			$('.phone-error').hide();
		}
		
		if (message == '' || message == 'Your Message') {
			$('.message-error').show();
			valid = false;
		}else{
			$('.message-error').hide();
		}
		
		// send data with ajax
		
		var formData = 'name='+ name + '&email=' + email + '&country=' + country + '&phone=' + phone + '&message=' + message;
		
		if (valid == true) {		
			$.ajax({
				type : 'POST',
				url : 'lib/send.php',
				data : formData,
				success : function () {
					$('.error').hide();
					$('#name').val('Name');
					$('#email').val('E-Mail Address');
					$('#country').val('Country');
					$('#phonenumber').val('Phone Number');
					$('#message').val('Your Message');
					$('.note').show();
				}
			});
		} // valid
				
		return false;
	});
	
	$('#sendAssignment').click(function(){
		var name = $.trim($('#name').val());
		var email = $.trim($('#email').val());
		var phone = $.trim($('#phonenumber').val());
		var deadline = $.trim($('#deadline').val());
		var message = $.trim($('#comments').val());
		var service =$.trim($('#service').val());
		
		var numbers = phone.split(/\d/).length - 1;
		var valid = true;

		if (name == '' || name == 'Name') {
			$('.name-error').show();
			valid = false;
		}else{
			$('.name-error').hide();
		}
		
		if (email == '' || email == 'E-Mail Address') {
			$('.email-error').show();
			$('.email-vaild-error').hide();
			valid = false;
		}else if(!emailReg.test(email)) {
			$('.email-error').hide();
			$('.email-vaild-error').show();
			valid = false;
		}else{
			$('.email-error').hide();
			$('.email-vaild-error').hide();
		}
		
		if ((!(10 <= numbers && numbers <= 20 && phoneReg.test(phone))) && phone !="" && phone !="Phone Number") {
			$('.phone-error').show();
			valid = false;
		}else{
			$('.phone-error').hide();
		}

		if (deadline == '' || deadline == 'Deadline') {
			$('.deadline-error').show();
			valid = false;
		}else{
			$('.deadline-error').hide();
		}
		
		if (message == '' || message == 'Comments') {
			$('.message-error').show();
			valid = false;
		}else{
			$('.message-error').hide();
		}

		if (service == '') {
			$('.service-error').show();
			valid = false;
		}else{
			$('.service-error').hide();
		}
		
		if(valid) {			
            var options = { 
                target:	'#note',   // target element(s) to be updated with server response 
                beforeSubmit: showRequest,  // pre-submit callback 
                success: showResponse,  // post-submit callback          
				resetForm: true
                // other available options: 
                //url:       url         // override for form's 'action' attribute 
                //type:      type        // 'get' or 'post', override for form's 'method' attribute 
                //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
                //clearForm: true        // clear all form fields after successful submit 
                //resetForm: true        // reset the form after successful submit          
                // $.ajax options can be used here too, for example: 
                //timeout:   3000 
            };             
            $("#assignment").ajaxSubmit(options);
            return false;
		}		
		return false;		
	});
});

// pre-submit callback 
function showRequest(formData, jqForm, options) { 
    // formData is an array; here we use $.param to convert it to a string to display it 
    // but the form plugin does this for you automatically when it submits the data 
    var queryString = $.param(formData); 
 
    // jqForm is a jQuery object encapsulating the form element.  To access the 
    // DOM element for the form do this: 
    // var formElement = jqForm[0]; 
 
    //alert('About to submit: \n\n' + queryString); 
 
    // here we could return false to prevent the form from being submitted; 
    // returning anything other than false will allow the form submit to continue 
    return true; 
} 
 
// post-submit callback 
function showResponse(responseText, statusText, xhr, $form)  { 
    // for normal html responses, the first argument to the success callback 
    // is the XMLHttpRequest object's responseText property 
 
    // if the ajaxSubmit method was passed an Options Object with the dataType 
    // property set to 'xml' then the first argument to the success callback 
    // is the XMLHttpRequest object's responseXML property 
 
    // if the ajaxSubmit method was passed an Options Object with the dataType 
    // property set to 'json' then the first argument to the success callback 
    // is the json data object returned by the server 
 
    //alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + '\n\nThe output div should have already been updated with the responseText.');
    $("#note").ajaxComplete(function(event, request, settings){
        $("#note").show();
		//var pos=responseText.IndexOf("OK")
		//alert(responseText+" - "+pos)
		if (/OK/i.test(responseText))// Message Sent? Show the 'Thank You' message and hide the form
		{
			result = '<p>Thank you, <br /> we will get in contact with you soon.</p>';
		} else {
			result = responseText;
		}
	    $(this).html(result);
	});
}
