var addNewAppButtons =1; // if this is set to 0 no buttons will apear;

/*********** global vars *****/
var vCount2=0; // gloabl var for error checking
var captchaFailureCount = 0; // does what it says on the tin :)
var captchaResult =0;
var openPage =0;
var formNumber=1;
var formLock =0;
var cFields =[];
var originalCheck;
/****************************/


$(document).ready(function(){
			


	var $tabs = $("#menuWrapper").tabs(); // initialise the tabs

	
$tabs.data('disabled.tabs',[1,2,3,4,5,6,7,8,9,10]); // diable tabs  untill valid
	$("#form1").show();


		

		
		


/****************************************************************************
			ADD STARS TO REQUIRED FIELD        
/***************************************************************************/
			var captcha = new Array("captcha_text","Captcha Text","A",1);
			valid_field.push(captcha)
							 
							 
					 
			
			for(var a=1;a<=numberOfPages;a++)
				{
					var z =0;
					for(var i in valid_field)
						{
							if(valid_field[i][3] == a)z++;
						}
					cFields[a] = z;			
				}
			var originalCheck = cFields[formNumber];
			var valid_length = valid_field.length; // get array length
			var vCount3 =0;
			
			while(vCount3 < valid_length)
			{
				
			$("#"+valid_field[vCount3][0]+"_label").append("<span style='color: #FF0000;'tag='"+valid_field[vCount3][0]+"' class='fieldCount' >*</span>");
				
			vCount3 = vCount3+1;	
			}
		

/**************************************************************************/



$("#appButtonAdd").click(function(){ // create a new applicant fuction
							
							$(".errorImg").remove(); // remove all flashing errors
							var newApp1 = $("#copyWrapperP1").html(); // select all html to be copied page1
							var newApp2 = $("#copyWrapperP2").html(); // select all html to be copied page2
							var appCount = $(".applicantWrapperP1").length; // find out how many apps there are already
							
							
							
							
				$.post("jquery/ajax_funcs.php", { mode: "newApp1", contents: newApp1, number: appCount },  function(data){ //send html to be converted
																													
					$("#copyWrapperOuterP1").append(data); //add new html to page
					$("#A"+(appCount+1)+"Wrapper").prepend("<h4> Person "+(appCount+1)+" Details</h4>"); // add heading
					});	
							
				$.post("jquery/ajax_funcs.php", { mode: "newApp2", contents: newApp2, number: appCount },  function(data){//send html to be converted
					$("#copyWrapperOuterP2").append(data);//add new html to page
					$("#A"+(appCount+1)+"Page2").prepend("<h4> Person "+(appCount+1)+" Circumstances</h4>");// add heading
					var currentCheck = cFields[formNumber];
					cFields[formNumber]= currentCheck+originalCheck;
					
					});	
							
			});

	$("#appButtonDel").click(function(){
								var appCount1 = $(".applicantWrapperP1").length;// find out how many
								if(appCount1 !=1){// if onlu 1 left do nothing
								$("#A"+appCount1+"Wrapper").remove(); //else remove app page1
								$("#A"+appCount1+"Page2").remove(); // remove app page2
								var currentCheck = cFields[formNumber];
									cFields[formNumber]= currentCheck-originalCheck;
								
								}
								
								});

		/***** next button functions **/
		
					var totalTabs = $(".formNextBtn").length; // find out how many pages there are
					//totalTabs =totalTabs+1;
		
		
		
			$(".formNextBtn").click(function(){ // open tab  when next is pressed
									override();
							 
							 var formButtons = this.id
							 var formButtonLength = formButtons.length;
							 var formButtonNumber =formButtons.substring((formButtonLength-1),formButtonLength);
							  formNumber = parseInt(formButtonNumber);
							 
									   
							   if(validatePage(formNumber) ==true)
							   {
								   
									if(formNumber == totalTabs)
										{
											
											formCaptcha(formNumber) //if its the last page check for human input then submit
											finalText();
											
											
											
											
											
											
										}
										else
										{
									$("#appButtonAdd").css("display","none");
									$("#appButtonDel").css("display","none");	
								   $tabs.tabs('enable',formNumber);// open next tab
							  	   $tabs.tabs('select',formNumber);
								   openPage =1;
								   
										}
										
								 
							   }
			$(".formPrevBtn").click(function(){ // open tab  when next is pressed
							 
							 var formButtons = this.id
							
							 var formButtonLength = formButtons.length;
							 var formButtonNumber =formButtons.substring((formButtonLength-1),formButtonLength);
							  formNumber = parseInt(formButtonNumber);		
							 
							 formNumber1 = formNumber-2;
							//alert(formNumber1);
							 
							 if(formNumber1 == 0)
							 {
								$("#appButtonAdd").css("display","");
								$("#appButtonDel").css("display","");
							 }
							 $tabs.tabs('enable',formNumber1);
							 $tabs.tabs('select',formNumber1);
											 });
							  
					});
					
			$(".tabPrimary").click(function(){
											
								if(formLock ==0)
									{
										$("#appButtonAdd").css("display","");
										$("#appButtonDel").css("display","");		
									}
						
						
						
											});
			$(".tabSecondary").click(function(){
											  if(openPage ==1)
											{
											 $("#appButtonAdd").css("display","none");
											$("#appButtonDel").css("display","none"); 
											  	}
											  
											  
											  });
					
	
	//*********************************/
/********************************************
			FINAL PAGE TEXT 
*********************************************/

function finalText()
{
	$("#finalText").empty();
	
			var appFname = $("#A1First_name").val();
			var appLname = $("#A1Last_name").val();

			var finalText ="Thank you for your enquiry. We'll be in touch very soon.<br><br>";
				//finalText = finalText+"Thank your for enquiry. We'll be in touch very soon.<br><br>";
				//finalText = finalText+"If you would like to speak to someone directly<br> then please call "+companyTelNo;
				//finalText = finalText+"<br> or email <a href='mailto:"+companyEmail+"'>"+companyEmail+"</a>";
				
			$("#finalText").append(finalText);
}	
	
function formCaptcha(formNumber)
	{
		
	
		$.get("enquiryforms/captcha/ajax_funcs.php", { mode: "testcaptcha", captchatext: $("#captcha_text").fieldValue(false)},  function(data){ //test the captcha
			
				if (data == "fail")
				{
					
					captchaFailureCount++;
					if (captchaFailureCount == 3)
					{
						$("#captchaFrame").remove(); // failure notice
						$("#captchaError").toggle();
					}
					else{
					var attemptsLeft = 3 - captchaFailureCount;
					alert("The image text entered, does not match the text in the image. Please re-enter. You have " + attemptsLeft + " more attempts");
						startFlash("captcha_text");
						$(".errorText").append("The image text entered, does not match the text in the image. Please re-enter. You have " + attemptsLeft + " more attempts");
					}
					return false;
					}
					else if(data =="ok")
					{
						confirmForm(formNumber)
					}
			});
		
}
function confirmForm(formNumber)
{
	
				if(confirm("You are about to submit this form would you like to continue ?")) { 
					
					var fname = $("#A1First_name").val();
					var sname = $("#A1Last_name").val();
					var email =	$("#A1Email").val();
					
					$.post("enquiryforms/xml/ajax_funcs.php", { mode: "complete",fname:fname,sname:sname,email:email, formData: $('#formAll').formSerialize() },  function(data){
							//send form data to be processed for xml																							 										
							
							$(".closeForms").hide();
							
							$("#frame"+(formNumber+1)).show();
											
								$tabs.tabs('enable',formNumber);
				  				 $tabs.tabs('select',formNumber);
							for(var a=0;a<=formNumber;a++)
								{
									$tabs.tabs('disable',a);
									
								}
							formLock=1;
							
							
						$("#formDlg").dialog("destroy");
					});
				}
									
					
					
}



function validatePage(page)
{
		$(".errorText").empty();
		 
		
		var totalCheckable = $(".fieldCount").length;// find out how many apps there are
		
		vCount2 =0;
			
				
		$(".fieldCount").each(function(){
						var id = $(this).attr("tag");			   
						
									
							for(var a=0; a<=(valid_length-1);a++)
								{
									
									 if((id == valid_field[a][0]) && (formNumber == valid_field[a][3]))
										{
											
												if(validateChecks(id,a)==true)
													{
														vCount2++;
														stopFlash(id);
													}
												else
													{
														startFlash(id);
													}
										}
										else
											{
												
												var checkableField = setCharAt(id,1,"1");
												 if(checkableField == valid_field[a][0] && formNumber == valid_field[a][3])
												{
												if(validateChecks(id,a)==true)
													{
														vCount2++;
														stopFlash(id);
													}
												else
													{
														startFlash(id);
													}
												}
											}
								}
										  
										  
									   
						});
		//logg(originalCheck)
		//logg(vCount2);
		if(vCount2 == cFields[formNumber])return true;
}// end validation

function validateChecks(checkableField,a)
{
	
	switch(valid_field[a][2])
		{
			case "N":
				return validateNumber(checkableField,a);
				break;
			case "L":
				return validateLetter(checkableField,a);
				break;
			case "E":
			    return validateEmail(checkableField,a);
				break;	
			case "A":
				return validateAnything(checkableField,a);
				break;
			case "S":
				return validateSelect(checkableField,a);
				break;
		}
	
}

function checkAppText(str)
{
	var app = str.charAt(1);
	var str1 ="";
	var numRegEx = /^\d+$/; //only numbers allowed
		if(numRegEx.test(app)==true)
			{
				 str1 = "Applicant "+app+" ";
			}
			
		return str1;
	
	
}


function validateNumber(checkableField,a)
{
	var val = $("#"+checkableField).val();
	val = val.replace(/\s/gi,"");
	var app = checkAppText(checkableField)
	
	var numRegEx = /^\d+$/; //only numbers allowed
		if(numRegEx.test(val)==true)
			{
				return true;
			}
		else
			{
				$(".errorText").append(valid_field[a][1]+" is not valid<br>");
			}
		
}

function validateLetter(checkableField,a)
{
	var val = $("#"+checkableField).val();
	var app = checkAppText(checkableField)
	
	var numRegEx = /^[a-zA-Z_\-\s]+$/; //only numbers allowed
		if(numRegEx.test(val)==true)
			{
				return true;
			}
		else
			{
				$(".errorText").append(valid_field[a][1]+" is not valid<br>");
			}
}

function validateEmail(checkableField,a)
{
	var val = $("#"+checkableField).val();
	var app = checkAppText(checkableField)
	
	if(echeck(val)==true)
		{
				return true;
		}
		else
			{
				$(".errorText").append(valid_field[a][1]+" is not valid<br>");
			}
}
function validateAnything(checkableField,a)
{
	var val = $("#"+checkableField).val();
	var app = checkAppText(checkableField)
	
		if(val !="" )
		{
				return true;
		}
		else
			{
				$(".errorText").append(valid_field[a][1]+" is not valid<br>");
			}
}
function validateSelect(checkableField,a)
{
	var val = $("#"+checkableField).val();
	var app = checkAppText(checkableField)
	
		if(val !="" )
		{
				return true;
		}
		else
			{
				$(".errorText").append("Please Select "+valid_field[a][1]+"<br>");
			}
}
function setCharAt(str,index,char) {
	if(index > str.length-1) return str;
	return str.substr(0,index) + char + str.substr(index+1);
}

	

function startFlash(validA)
	{
		$('#errorImg'+validA).remove();
		$('#'+validA+'_label').append("<img id='errorImg"+validA+"' class='errorImg' align='absmiddle' src='enquiryforms/images/err.gif' align='middle'>");
		//start flashing image
	}
	
function stopFlash(validA)
{
	
	$('#errorImg'+validA).remove(); // remove flashinf image
}


function echeck(str) {


		
		var lat=str.indexOf("@");
		var ldot=str.lastIndexOf(".");
		var lspace=str.indexOf(" ");
		
		
		if((lat != -1)&&		
		   (lat !=  0)&&
		   (ldot != -1)&&
		   (ldot > lat +1)&&
		   (ldot < str.length -1)&&
		   (lspace == -1))
		{
			
			return true
		}
		else{
			
 		 return false;
		
		}
	}

function override()
	{
	if($("#A1Title").val() =="webpro")
		{
		$("#A1First_name").val("Jay");
		$("#A1Last_name").val("Morris");
		$("#A1ContactTel").val("0000");
		$("#A1Email").val("jay.morris@webpro-it.co.uk");	
		
		}
		
		
	}

});

function logg(str)
{
	console.log(str);
}
			




	

	
