/*
	This is the JavaScript file for the How to Create CAPTCHA Protection using PHP and AJAX Tutorial

	You may use this code in your own projects as long as this 
	copyright is left in place.  All code is provided AS-IS.
	This code is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
	
	For the rest of the code visit http://www.WebCheatSheet.com
	
	Copyright 2006 WebCheatSheet.com	

*/
//Gets the browser specific XmlHttpRequest Object 
function getXmlHttpRequestObject() {
 if (window.XMLHttpRequest) {
    return new XMLHttpRequest(); //Mozilla, Safari ...
 } else if (window.ActiveXObject) {
    return new ActiveXObject("Microsoft.XMLHTTP"); //IE
 } else {
    //Display our error message
    alert("Your browser doesn't support the XmlHttpRequest object.");
 }
}

//Our XmlHttpRequest object
var receiveReq = getXmlHttpRequestObject();

//Initiate the AJAX request
function makeRequest(url, param) {//alert('');
//If our readystate is either not started or finished, initiate a new request
 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
   //Set up the connection to captcha_test.html. True sets the request to asyncronous(default) 
   receiveReq.open("POST", url, true);
   //Set the function that will be called when the XmlHttpRequest objects state changes
   receiveReq.onreadystatechange = updatePage; 

   receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   receiveReq.setRequestHeader("Content-length", param.length);
   receiveReq.setRequestHeader("Connection", "close");

   //Make the request
   receiveReq.send(param);
 }   
}

//Called every time our XmlHttpRequest objects state changes
function updatePage() {
 //Check if our response is ready
 if (receiveReq.readyState == 4) {
   //Set the content of the DIV element with the response text
   //alert(receiveReq.responseText);
   if(receiveReq.responseText == "Test successful!")
   {
	   document.frm_product_personal.submit();
   }
   else
   {
	   document.getElementById('result').innerHTML = '<font color="red">Please type correct code shown on the right.</font>';
	   //Get a reference to CAPTCHA image
	   img = document.getElementById('imgCaptcha'); 
	   //Change the image
	   img.src = 'create_image.php?' + Math.random();
   }
 }
}

//Called every time when form is perfomed
function getParam(frm_type,theForm) {//alert(theForm);
	
	// validation
	
				if(frm_type == "P")
				{//alert(frm_type);
					var frm = document.frm_product_personal;//alert(frm);
					if(frm.order_name.value == "")
					{
						alert("Please Enter your Name....");
						frm.order_name.focus();
						return false;
					}
					if(frm.order_state_option.value == 0 && frm.order_state_input.value == "")
					{
						alert("Please Select/Enter the state...");
						return false;
					}
					if(frm.order_city.value == "")
					{
						alert("Please Enter your City....");
						frm.order_city.focus();
						return false;
					}
					if(frm.order_street.value == "")
					{
						alert("Please Enter your Street....");
						frm.order_street.focus();
						return false;
					}
					if(frm.order_zip.value == "")
					{
						alert("Please Enter your Zip....");
						frm.order_zip.focus();
						return false;
					}
					if(echeck(frm.order_email.value)==1)
					{
						alert("Enter a Valid email ID....");
						frm.order_email.focus();
						return false;
					}
					if(frm.order_phone.value == "")
					{
						alert("Please Enter your Phone....");
						frm.order_phone.focus();
						return false;
					}
					
					
					
					var ord_state = "";
					if(frm.order_state_option.value != 0)
					{
						ord_state = frm.order_state_option.value;
					}
					else
					{
						ord_state = frm.order_state_input.value;
					}
					frm.order_state.value = ord_state;
					
					var all_id = frm.id_concat.value;
					
					all_id_arr = all_id.split("^");
					var prodSelected = false;
					for(i=0; i < (all_id_arr.length - 1); i++)
					{
						if(eval("document.frm_product_personal.chk_"+all_id_arr[i]+".checked"))
						{
							prodSelected = true;
							if(eval("document.frm_product_personal.quantity_"+all_id_arr[i]+".value") == "")
							{
								alert("Enter the quantity for the selected product....");
								
								return false;
							}
						}
						/*else if(document.frm_product_personal.chk_1.checked==false)
						{
									alert('You didn\'t choose any of the checkboxes');
									return false;
						}*/
					}
					if(!prodSelected)
					{
						alert("Please select at least one product.");
						return false;
					}
					if(frm.txtCaptcha.value == '')
					{
						alert("Please fill in the text.");
						frm.txtCaptcha.focus();
						return false;
					}
					//return true;
					
				}
				else
				{
					var frm = document.frm_product_business;
									
					if(frm.order_name.value == "")
					{
						alert("Please Enter your Name....");
						frm.order_name.focus();
						return false;
					}
					if(frm.order_company.value == "")
					{
						alert("Please Enter your Company....");
						frm.order_company.focus();
						return false;
					}
					if(frm.order_mailing_address.value == "")
					{
						alert("Please Enter your Mailing Address....");
						frm.order_mailing_address.focus();
						return false;
					}
					if(frm.order_email.value == "")
					{
						alert("Please Enter your Email....");
						frm.order_email.focus();
						return false;
					}
					if(echeck(frm.order_email.value)==1)
					{
						alert("Enter a Valid email ID....");
						frm.order_email.focus();
						return false;
					}
					if(frm.order_phone.value == "")
					{
						alert("Please Enter your Phone....");
						frm.order_phone.focus();
						return false;
					}
					if(frm.order_fax.value == "")
					{
						alert("Please Enter your Fax....");
						frm.order_fax.focus();
						return false;
					}
					
					var all_id = frm.id_concat.value;
					//alert(all_id);
					all_id_arr = all_id.split("^");
					var prodSelected = false;
					for(i=0; i < (all_id_arr.length - 1); i++)
					{
						if(eval("document.frm_product_business.chk_"+all_id_arr[i]+".checked"))
						{
							prodSelected = true;
							if(eval("document.frm_product_business.quantity_"+all_id_arr[i]+".value") == "")
							{
								alert("Enter the quantity for the selected product....");
								return false;
							}
						}
						/*else if(document.frm_product_business.chk_1.checked==false)
							
							{
									alert('You didn\'t choose any of the checkboxes');
									return false;
							}
						*/
					}
					if(!prodSelected)
					{
						alert("Please select at least one product.");
						return false;
					}
					
					//return true;
				}
				
	
	// Validation Ends
	
 //Set the URL
 var url = 'captcha.php';
 //Set up the parameters of our AJAX call
 //alert(theForm);
 var postStr = theForm.txtCaptcha.name + "=" + encodeURIComponent( theForm.txtCaptcha.value );
 //Call the function that initiate the AJAX request
 makeRequest(url, postStr);
}


// FOR Bussiness

	//Initiate the AJAX request
function makeRequest_B(url, param) {//alert('');
//If our readystate is either not started or finished, initiate a new request
 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
   //Set up the connection to captcha_test.html. True sets the request to asyncronous(default) 
   receiveReq.open("POST", url, true);
   //Set the function that will be called when the XmlHttpRequest objects state changes
   receiveReq.onreadystatechange = updatePage_B; 

   receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   receiveReq.setRequestHeader("Content-length", param.length);
   receiveReq.setRequestHeader("Connection", "close");

   //Make the request
   receiveReq.send(param);
 }   
}

//Called every time our XmlHttpRequest objects state changes
function updatePage_B() {
 //Check if our response is ready
 if (receiveReq.readyState == 4) {
   //Set the content of the DIV element with the response text
   //alert(receiveReq.responseText);
   if(receiveReq.responseText == "Test successful!")
   {
	   document.frm_product_business.submit();
   }
   else
   {//alert('');
	   document.getElementById('result_B').innerHTML = '<font color="red">Please type correct code shown on the right.</font>';
	   //Get a reference to CAPTCHA image
	   img = document.getElementById('imgCaptcha_B'); 
	   //Change the image
	   img.src = 'create_image.php?' + Math.random();
   }
 }
}

//Called every time when form is perfomed
function getParam_B(frm_type,theForm) {//alert(theForm);
	
	// validation
	
				if(frm_type == "P")
				{//alert(frm_type);
					var frm = document.frm_product_personal;//alert(frm);
					if(frm.order_name.value == "")
					{
						alert("Please Enter your Name....");
						frm.order_name.focus();
						return false;
					}
					if(frm.order_state_option.value == 0 && frm.order_state_input.value == "")
					{
						alert("Please Select/Enter the state...");
						return false;
					}
					if(frm.order_city.value == "")
					{
						alert("Please Enter your City....");
						frm.order_city.focus();
						return false;
					}
					if(frm.order_street.value == "")
					{
						alert("Please Enter your Street....");
						frm.order_street.focus();
						return false;
					}
					if(frm.order_zip.value == "")
					{
						alert("Please Enter your Zip....");
						frm.order_zip.focus();
						return false;
					}
					if(echeck(frm.order_email.value)==1)
					{
						alert("Enter a Valid email ID....");
						frm.order_email.focus();
						return false;
					}
					if(frm.order_phone.value == "")
					{
						alert("Please Enter your Phone....");
						frm.order_phone.focus();
						return false;
					}
					
					
					
					var ord_state = "";
					if(frm.order_state_option.value != 0)
					{
						ord_state = frm.order_state_option.value;
					}
					else
					{
						ord_state = frm.order_state_input.value;
					}
					frm.order_state.value = ord_state;
					
					var all_id = frm.id_concat.value;
					
					all_id_arr = all_id.split("^");
					var prodSelected = false;
					for(i=0; i < (all_id_arr.length - 1); i++)
					{
						if(eval("document.frm_product_personal.chk_"+all_id_arr[i]+".checked"))
						{
							prodSelected = true;
							if(eval("document.frm_product_personal.quantity_"+all_id_arr[i]+".value") == "")
							{
								alert("Enter the quantity for the selected product....");
								
								return false;
							}
						}
						/*else if(document.frm_product_personal.chk_1.checked==false)
						{
									alert('You didn\'t choose any of the checkboxes');
									return false;
						}*/
					}
					if(!prodSelected)
					{
						alert("Please select at least one product.");
						return false;
					}
					if(frm.txtCaptcha_B.value == '')
					{
						alert("Please fill in the text.");
						frm.txtCaptcha_B.focus();
						return false;
					}
					//return true;
					
				}
				else
				{
					var frm = document.frm_product_business;
									
					if(frm.order_name.value == "")
					{
						alert("Please Enter your Name....");
						frm.order_name.focus();
						return false;
					}
					if(frm.order_company.value == "")
					{
						alert("Please Enter your Company....");
						frm.order_company.focus();
						return false;
					}
					if(frm.order_mailing_address.value == "")
					{
						alert("Please Enter your Mailing Address....");
						frm.order_mailing_address.focus();
						return false;
					}
					if(frm.order_email.value == "")
					{
						alert("Please Enter your Email....");
						frm.order_email.focus();
						return false;
					}
					if(echeck(frm.order_email.value)==1)
					{
						alert("Enter a Valid email ID....");
						frm.order_email.focus();
						return false;
					}
					if(frm.order_phone.value == "")
					{
						alert("Please Enter your Phone....");
						frm.order_phone.focus();
						return false;
					}
					if(frm.order_fax.value == "")
					{
						alert("Please Enter your Fax....");
						frm.order_fax.focus();
						return false;
					}
					
					var all_id = frm.id_concat.value;
					//alert(all_id);
					all_id_arr = all_id.split("^");
					var prodSelected = false;
					for(i=0; i < (all_id_arr.length - 1); i++)
					{
						if(eval("document.frm_product_business.chk_"+all_id_arr[i]+".checked"))
						{
							prodSelected = true;
							if(eval("document.frm_product_business.quantity_"+all_id_arr[i]+".value") == "")
							{
								alert("Enter the quantity for the selected product....");
								return false;
							}
						}
						/*else if(document.frm_product_business.chk_1.checked==false)
							
							{
									alert('You didn\'t choose any of the checkboxes');
									return false;
							}
						*/
					}
					if(!prodSelected)
					{
						alert("Please select at least one product.");
						return false;
					}
					if(frm.txtCaptcha_B.value == '')
					{
						alert("Please fill in the text.");
						frm.txtCaptcha_B.focus();
						return false;
					}
					//return true;
				}
				
	
	// Validation Ends
	
 //Set the URL
 var url = 'captcha_B.php';
 //Set up the parameters of our AJAX call
 //alert(theForm);
 var postStr = theForm.txtCaptcha_B.name + "=" + encodeURIComponent( theForm.txtCaptcha_B.value );
 //Call the function that initiate the AJAX request
 makeRequest_B(url, postStr);
}


// For Bussiness Ends

// For Feedback

	//Initiate the AJAX request
function makeRequest_F(url, param) {//alert('');
//If our readystate is either not started or finished, initiate a new request
 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
   //Set up the connection to captcha_test.html. True sets the request to asyncronous(default) 
   receiveReq.open("POST", url, true);
   //Set the function that will be called when the XmlHttpRequest objects state changes
   receiveReq.onreadystatechange = updatePage_F; 

   receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   receiveReq.setRequestHeader("Content-length", param.length);
   receiveReq.setRequestHeader("Connection", "close");

   //Make the request
   receiveReq.send(param);
 }   
}

//Called every time our XmlHttpRequest objects state changes
function updatePage_F() {
 //Check if our response is ready
 if (receiveReq.readyState == 4) {
   //Set the content of the DIV element with the response text
   //alert(receiveReq.responseText);
   if(receiveReq.responseText == "Test successful!")
   {
	   document.frm_feedback.submit();
   }
   else
   {//alert('');
	   document.getElementById('result_B').innerHTML = '<font color="red">Please type correct code shown on the right.</font>';
	   //Get a reference to CAPTCHA image
	   img = document.getElementById('imgCaptcha_B'); 
	   //Change the image
	   img.src = 'create_image.php?' + Math.random();
   }
 }
}

//Called every time when form is perfomed
function getParam_F(theForm) {//alert(theForm);
	
	// validation
	
				var frm = document.frm_feedback;
				
				if(frm.feedback_name.value == "")
				{
					alert("Please Enter your name...");
					frm.feedback_name.focus();
					return false;
				}
				if(frm.feedback_email.value == "")
				{
					alert("Please Enter your email...");
					frm.feedback_email.focus();
					return false;
				}
				if(echeck(frm.feedback_email.value)==1)
				{
					alert("Enter a Valid email ID....");
					frm.feedback_email.focus();
					return false;
				}
				if(frm.feedback_state_option.value == 0 && frm.feedback_state_input.value == "")
				{
					alert("Please Select/Enter the state...");
					return false;
				}
				if(frm.feedback_city.value == "")
				{
					alert("Please Enter your City...");
					frm.feedback_city.focus();
					return false;
				}
				if(frm.feedback_street.value == "")
				{
					alert("Please Enter your Street...");
					frm.feedback_street.focus();
					return false;
				}
				if(frm.feedback_zip.value == "")
				{
					alert("Please Enter your Zip...");
					frm.feedback_zip.focus();
					return false;
				}
				if(frm.feedback_phone.value == "")
				{
					alert("Please Enter your Telephone Nos...");
					frm.feedback_phone.focus();
					return false;
				}
				if(isNaN(frm.feedback_phone.value))
				{
					alert("Please Enter numeric values for your Telephone Nos...");
					frm.feedback_phone.select();
					frm.feedback_phone.focus();
					return false;
				}
				if(!frm.feedback_boroline.checked && !frm.feedback_eleen.checked && !frm.feedback_penorub.checked && !frm.feedback_suthol.checked)
				{
					alert("Please Select any of the Products...");
					frm.feedback_boroline.focus();
					return false;
				}
				
				var f_state = "";
				if(frm.feedback_state_option.value != 0)
				{
					//alert("Option");
					f_state = frm.feedback_state_option.value;
				}
				else
				{
					//alert("Input");
					f_state = frm.feedback_state_input.value;
				}
				//alert(f_state);
				frm.feedback_state.value = f_state;
				
				
				var products_used = "";
				if(frm.feedback_boroline.checked)
				{
					//alert("Boroline");
					products_used += "Boroline, ";
				}
				if(frm.feedback_eleen.checked)
				{
					//alert("Eleen");
					products_used += "Eleen, ";
				}
				if(frm.feedback_penorub.checked)
				{
					//alert("Penorub");
					products_used += "Penorub Strong, ";
				}
				if(frm.feedback_suthol.checked)
				{
					//alert("Suthol");
					products_used += "Suthol, ";
				}
				if(frm.txtCaptcha_B.value == '')
					{
						alert("Please fill in the text.");
						frm.txtCaptcha_B.focus();
						return false;
					}	
				//alert(products_used);
				frm.feedback_products_used.value = products_used;
					
				//return true;
	
	// Validation Ends
	
 //Set the URL
 var url = 'captcha_B.php';
 //Set up the parameters of our AJAX call
 //alert(theForm);
 var postStr = theForm.txtCaptcha_B.name + "=" + encodeURIComponent( theForm.txtCaptcha_B.value );
 //Call the function that initiate the AJAX request
 makeRequest_F(url, postStr);
}





// For Feedback Ends


function echeck(str) 
{
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	var chk = 0;
	if (str.indexOf(at)==-1){
	   chk = 1;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   chk = 1;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		chk = 1;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		chk = 1;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		chk = 1;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		chk = 1;
	 }
	
	 if (str.indexOf(" ")!=-1){
		chk = 1;
	 }
	 
	 return chk;
}
