// Bind click event and stop default

function AjaxForm(){
	
var name;
var email;
var phone;
var message;
var browser_t;
var dataString;
var errorVerbose = new Array();
var errorObjects = new Array();
formPointer = this;

AjaxForm.prototype.getFormParams = function(){	
	formPointer.name = $('#form_name_input').val();							
	formPointer.email = $('#form_email_input').val();		
	formPointer.phone = $('#tel_input').val();
	formPointer.message = $('#msgfield').val();
	formPointer.browser_t = $('#browser_type').val();			
}

AjaxForm.prototype.validateForm = function(){
	formPointer.errorVerbose = [];
	formPointer.errorObjects =[];
	$('#error_container').html('');
	//formPointer.validateParam(formPointer.message,'message');
	//formPointer.validateParam(formPointer.phone,'phone');
	formPointer.validateParam(formPointer.name,'name');
	formPointer.validateParam(formPointer.email,'email');
	
}

AjaxForm.prototype.validateParam = function(value,type){
	switch (type)
	{
		case 'name':
		// Make sure we have at least 2 characters in the name
		{
			if (value.length > 1 && value != 'שם...' )
			{				
				return true;
				break;
			}
			else {				
				errorMsg = 'מינימום שני תווים בשדה השם...';
				errorObject = '#form_name_input';				
				formPointer.errorVerbose.push(errorMsg);
				formPointer.errorObjects.push(errorObject);				
			}
			break;
		}
		case 'email':
		{				
				var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
				if(filter.test(value)){					
					return true;
					break;
				}
				else {					
					errorMsg = 'אימייל אמיתי בבקשה...';
					errorObject = '#form_email_input';
					formPointer.errorVerbose.push(errorMsg);
					formPointer.errorObjects.push(errorObject);					
				}
				break;
		}		
		case 'phone':
		{
			if (value.length > 6 && value != 'טלפון...')
			{
				return true;
				break;
			}
			else {				
				
				formPointer.errorVerbose.push(errorMsg);			
			}
			break;
		}
		case 'message':
		{
			if (value.length > 5 && value != 'תוכן ההודעה...')
			{
				return true;
				break;
			}
			else {				
				formPointer.errorVerbose.push(type);			
			}
			break;
		}
	}
}

AjaxForm.prototype.renderErrorContainer = function(){
	$('#error_container').append('<ul id="form_error_list">');
	for (i in formPointer.errorVerbose)
	{
		$('#form_error_list').append('<li style="opacity:0;" id="error'+i+'">'+formPointer.errorVerbose[i]+'</li>');
	}	
	$('#error_container').append('</ul>');
	var timer = 1000;
	for (i in formPointer.errorVerbose)
	{
		$('li#error'+i).animate({'opacity':'1'},500+timer*i);
		$(formPointer.errorObjects[i]).addClass('errorfocus');				
	}
		
}

AjaxForm.prototype.renderResponse = function(response_num){		
	switch (response_num)
	{
		case "1":
		{		
			formPointer.renderResponseText('הטופס נשלח בהצלחה, תודה!');						
			break;
		}
		case "2":
		{
			formPointer.renderResponseText('תקלה בשרת, אנא נסו שוב מאוחר יותר...');
			break;
		}
		case "3":
		{
			formPointer.renderResponseText('התגלו שדות ריקים בטופס, אנא נסו שנית');
			break;
		}
		case "4":
		{
			formPointer.renderResponseText('Hack attempt suspected, undefined fields');
			break;
		}
	}
}

AjaxForm.prototype.renderResponseText = function (text){
	if ($.support.opacity){
				setTimeout(function(){$('#form_container').append('<p class="response_p" style="opacity:0;">'+text+'</p>');
				$('p.response_p').animate({'opacity':'1'},500);
				},800);
			}
	else $('#form_container').append('<p class="response_p">'+text+'</p>');
}

AjaxForm.prototype.concatFormParams = function(){
	formPointer.getFormParams();
	formPointer.datastring = 'name='+formPointer.name+'&email='+formPointer.email+'&phone='+formPointer.phone+'&message='+formPointer.message+'&browser_t='+formPointer.browser_t;
		 	
}

AjaxForm.prototype.sendForm = function(){	
	$('#conform').animate({'opacity':'0'},500,function(){$('#conform').css('display','none')});
	var request = $.ajax({
		type: "POST",
		url:"ajax_form.php",
		data:formPointer.datastring,
		dataType: "text"		
	})
	request.done(function(msg) {
		 formPointer.renderResponse(msg);		 
	});		
}

AjaxForm.prototype.initForm = function(){	
		formPointer.concatFormParams();
		formPointer.validateForm();
		if (formPointer.errorVerbose.length == 0 && $('#spamBuster').val() == '' )
			formPointer.sendForm();
		else formPointer.renderErrorContainer();			
}

} // End of AjaxForm class

var ajaxForm = new AjaxForm();
