
/*following function calls to show any type of validation in any form*/
function dynamic_form_validation(form_object) {
	/*fetching the total number of elements from form*/
	total_elements=(form_object.elements.length);
    
	/*running loop to check the elements of form one by one*/
	for(element_count=0; element_count<total_elements; element_count++) {
		
		/*storing element object*/
		var element_object=form_object.elements[element_count];
		
		/*storing element name*/
		var element_id=element_object.id;
		
		/*storing element value*/
		var element_value=chktrim(element_object.value);
		
		/*storing element type*/
		var element_type=element_object.type;
		
		/*spliting the element namer*/
		var array_split=element_id.split("_");		
		
		var validation_ans=array_split[0].split("-");		
		
		var validation_msg=''+array_split[1]+'';
		
		/*if element is required or prohibited and element is null*/
		if(validation_ans[0]=='r' || validation_ans[0]=='rp'){
			if(element_type=='select-one'){
				if (element_object.options[element_object.selectedIndex].value=="")  {
					alert('Please select '+validation_msg);
					element_object.focus();
					return false;
				}
			}
			else if(element_type=='checkbox'){
				if (element_object.checked == false)  {
					alert('Please check '+validation_msg);
					element_object.focus();
					return false;
				}
			}
			else{
				if(element_value.length<1){
					alert('Please enter '+validation_msg);
					element_object.focus();
					return false;
				}
			}
		}
		/*if element is required or required and prohibited and element is not null*/
		if((validation_ans[0]=='p' || validation_ans[0]=='rp') && element_value.length>0){
			var check="";
			/*validation for alphabets*/
			if(validation_ans[1]=='2'){
				check = /^([a-zA-Z\s])+$/;
				$allow_char="allowed characters are a to z";
			}			
			/*validation for alpha numeric field*/
			else if(validation_ans[1]=='3'){
				check= /^([a-zA-Z0-9\s])+$/;
				$allow_char="allowed alphanumeric characters are 0-9, a to z";
			}			
			/*validation for email field*/
			else if(validation_ans[1]=='4'){
				check= /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				$allow_char="allowed format email@website.com";
			}			
			/*validation for phone number field*/
			else if(validation_ans[1]=='5'){
				check=/^(\+)*([0-9])+([-\/\.])+([0-9])+([-\/\.])+([0-9])+$/;
				$allow_char="allowed format +91-011-21566456";
			}			
			/*validation for webaddress field*/
			else if(validation_ans[1]=='6'){
				check= /^(http|ftp):\/\/(www\.)?.+\.(com|net|org)$/;
				$allow_char="allowed format http://www.indianyellowpages.com";
			}			
			/*validation for date of birth field*/
			else if(validation_ans[1]=='7'){
				check= /^([0-9]){2}(\/|-)([0-9]){2}(\/|-)([0-9]){4}$/;
				$allow_char="allowed format  dd/mm/yyyy or dd-mm-yyyy";
			}			
			/*validation for integer field*/
			else if(validation_ans[1]=='8'){
				check= /^([0-9])+$/;
				$allow_char="allowed characters are 0 to 9";
			}			
			/*validation for float field*/
			else if(validation_ans[1]=='9'){
				check= /^([0-9\.])+$/;
				$allow_char="allowed format  7.5";
			}			
			/*validation for company name field*/
			else if(validation_ans[1]=='10'){
				check = /^([a-zA-Z0-9\s])+([&\-\.])*([a-zA-Z0-9\s])*$/;
				$allow_char="allowed characters are 0 to 9, a to z, dot, &, hiphen";
			}			
			/*validation for address*/
			else if(validation_ans[1]=='11'){
				check = /^([a-zA-Z0-9\s])+([&\-\.,\(\)\/])*([a-zA-Z0-9\s&\-\.,\(\)\/])*$/;
				$allow_char="allowed characters are 0 to 9, a to z, &, comma, hiphen, dot, brackets";
			}			
			/*validation for country code, area code, phone number without country and area code*/
			else if(validation_ans[1]=='12'){
				check = /^(\+)*([0-9])+$/;
				$allow_char="allowed characters are 0 to 9, +";
			}			
			
			if(!check.test(element_value)){
				alert('Invalid '+validation_msg+', '+$allow_char );
				element_object.focus();
				return false;
			}
		}
	}
}


/*function  to translate the whole page in different languages but only in online*/
function translator(pattern) {
	var open_in_same_window = 1;
	var my_location = unescape(document.location.toString());
	var new_location ='';
	var new_pattern = '';
	if (my_location.indexOf('translate_c?') != -1) {
		/// From google...
		var indexof_u = my_location.indexOf('u=');
		if (indexof_u == -1) {
			new_location = document.location;
		}
		else {
			var subs = my_location.substring(indexof_u, my_location.length);
			var ss = subs.split('&');
			new_location = ss[0].substring(2, ss[0].length);
		}
	}
	else {
		new_location = document.location;
	}

	indexof_p = pattern.indexOf('|');

	var isen = '';
	if (indexof_p == -1) {
		indexof_p1 = pattern.indexOf('><');
		if (indexof_p1 == -1) {
			new_pattern = pattern;
			if (pattern == 'en') {
				isen = 1;
			}
		}
		else {
			var psplit =pattern.split('><');
			new_pattern = psplit[0]+'|'+psplit[1];
			if (psplit[1] == 'en') {
				isen = 1;
			}
		}
	}
	else {
		var psplit = pattern.split('|');
		new_pattern = psplit[0]+'|'+psplit[1];
		if (psplit[1] == 'en') {
			isen = 1;
		}
	}

	var thisurl = '';
	if (isen == 1) {
		thisurl = new_location;
	}
	else {
		thisurl = 'http://translate.google.com/translate_c?langpair=' + new_pattern + "&u=" + new_location;
	}

	if (open_in_same_window == 1) {
		window.location.href = thisurl;
	}
	else {
		if (CanAnimate ){
			msgWindow=window.open('' ,'subwindow','toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,menubar=yes,resizable=yes,left=0,top=0');
			msgWindow.focus();
			msgWindow.location.href = thisurl;
		}
		else {
			msgWindow=window.open(thisurl,'subwindow','toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,menubar=yes,resizable=yes,left=0,top=0');
		}
	}
}


/*function defined to submit the form for particular products or an object when user click the inquiry button */
function part_obj_inquiry_now(form_submit_link, form_submit_status, form_name, id_val, checkbox_checked_st, checkbox_name) {
    form_object=eval('document.'+form_name);
	if(checkbox_checked_st == 'Y'){
		var formObj = eval('form_object.'+checkbox_name+'.checked=1');
	}
	if(form_submit_status=='Y'){
		form_object.action=''+form_submit_link+'';
		form_object.id.value=''+id_val+'';
		if(id_val=='cart' || id_val=='basket'){
			form_object.cart_action.value='add';
		}
		
		form_object.submit();	
	}
	else{
		return true;
	}
}


/*function defined to check the checkboxes at the time when user click the inquiry button */
function inquiry_now(form_submit_link, form_submit_status, form_name, id_val) {
	var pp=1;
    form_object=eval('document.'+form_name);
	len=form_object.elements.length;
	var arr_index=0;
	for (arr_index=0; arr_index<len; arr_index++) {
		if (form_object.elements[arr_index].type == "checkbox" && form_object.elements[arr_index].checked==true) {
	    	pp=2;
	    }
	}
	if (pp==1) {
		alert("You have not selected any Product / Item.\n\nPlease select  and  proceed");
		return false;
	}
	else {
		if(form_submit_status=='Y'){
      		form_object.action=''+form_submit_link+'';
      		form_object.id.value=''+id_val+'';
      		if(id_val=='cart' || id_val=='basket'){
	      		form_object.cart_action.value='add';
      		}
      		form_object.submit();	
  		}
  		else{
	  		return true;
  		}
	}
}

/*function to check/uncheck all the checkboxes in the form*/
function chk_unchk(val, form_name) {
   	dml=eval('document.'+form_name);
   	len=dml.elements.length;
   	var i=0;
   	for (i=0; i<len; i++) {
     	if (dml.elements[i].type == "checkbox") {
        	if (val == 1) { 
           		dml.elements[i].checked=true;
        	} 
			else {
           		dml.elements[i].checked=false;
        	}
     	}   
   	}
}

/*function to open popup*/
function openwin(file,Iwidth,Iheight) {
   var newWin1=window.open(file,'iypWin1','x=0,y=0,toolbar=no,location=no,directories=no,status=no,scrollbars=yes, copyhistory=no,width='+Iwidth+',height='+Iheight+',screenX=0,screenY=0,left=20,top=20');
}


/*Function  : isProhibited(param) 
  Objective : To check object value is allow or not
  @param    : Object
  Output    :
  	True    : If value is not allowed to enter
  	False   : If value is allowed to enter */
  	
function isProhibited(obj){
	var objval=obj.value;
	invalidstr=new Array("indiamart","india mart", "alibaba","ali baba","tradeindia", "trade-india");
	for(i=0;i<invalidstr.length;i++){
		if (chktrim(objval).toLowerCase().indexOf(chktrim(invalidstr[i]).toLowerCase())>=0){	
			alert("Usage of "+invalidstr[i]+" is Prohibited on this site.") 
			obj.focus();
			return true;		
		}
	}
	return false;
}//end of isProhibited()

/*Function isValid(param) 
  Objective: To check object value is allow or not
  @param   :  Object
  Output   :
  	True   : If value is allowed to enter
  	False  : If value is not allowed to enter */
  
function isValid(obj){
	var objval=obj.value;
    invalidstr = new Array("hotmail", "gmail", "indiatimes", "rediffmail", "yahoo", ".com", ".net",".org", ".co.in", ".co.cn", ".co.ca", ".gov", ".co.uk");
		 		
	for(i=0;i<invalidstr.length;i++){
		if (chktrim(objval).toLowerCase().indexOf(chktrim(invalidstr[i]).toLowerCase())>=0){	
			alert("Please don't use "+invalidstr[i]+".") 
			obj.focus();
			return false;		
		}
	}
	return true;
}//end of isValid


/*following function calls to show any type of validation in any form*/
function form_validation(form_object) {
	/*fetching the total number of elements from form*/
	total_elements=(form_object.elements.length);
    
	var email_check = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	/*running loop to check the elements of form one by one*/
	for(element_count=0; element_count<total_elements; element_count++) {
		
		/*storing element object*/
		var element_object=form_object.elements[element_count];
		
		/*storing element name*/
		var element_id=element_object.id;
		
		/*storing element value*/
		var element_value=chktrim(element_object.value);
		
		/*storing element type*/
		var element_type=element_object.type;
		
		/*spliting the element namer*/
		var array_split=element_id.split("_");		
		//alert(element_object+', '+element_id+', '+element_value+', '+element_type+', '+array_split[0]);
		if(array_split[0].indexOf('req')!=-1){
			if(element_type=='select-one'){
				if (element_object.options[element_object.selectedIndex].value=="")  {
					alert('Please Select ' +array_split[2]);
					element_object.focus();
					return false;
				}
			}
			else if(element_type=='checkbox'){
				if (element_object.checked == false)  {
					alert('Please check the  ' +array_split[2]);
					element_object.focus();
					return false;
				}
			}
			else{
				if(element_value.length<1){
					alert('Please enter ' +array_split[2]);
					element_object.focus();
					return false;
				}
				else if(element_id.indexOf('_Email-id')!=-1){
					if(!email_check.test(element_value)){
						alert('Please enter valid ' +array_split[2]);
						element_object.focus();
						return false;
					}
					
					
				}
				else if(element_id.indexOf('_int_')!=-1){
					if(!parseInt(element_value)){
						alert('Please enter valid ' +array_split[2]);
						element_object.focus();
						return false;
					}
				}
				else if(array_split[0].indexOf('prohb')!=-1){
					
					if(array_split[0].indexOf('prohb')!=-1 || array_split[0].indexOf('prohb1')!=-1){
					   	//To check indiamart, Alibaba etc words in email field
					   	if(isProhibited(element_object))
					   		return false;
					}
					
					if(array_split[0].indexOf('prohb')!=-1 || array_split[0].indexOf('prohb2')!=-1){
					   	//To check .net .com etc words in company name field
					    if(!isValid(element_object))
					   		return false;
					}
					
				}
			}
		}
		else if(array_split[0].indexOf('prohb')!=-1 && element_value.length>0){
			if(element_id.indexOf('_int_')!=-1){
				if(!parseInt(element_value)){
					alert('Please enter valid ' +array_split[2]);
					element_object.focus();
					return false;
				}
			}
			else{
				if(array_split[0].indexOf('prohb')!=-1 || array_split[0].indexOf('prohb1')!=-1){
				   	//To check indiamart, Alibaba etc words in email field
				   	if(isProhibited(element_object))
				   		return false;
				}
				
				if(array_split[0].indexOf('prohb')!=-1 || array_split[0].indexOf('prohb2')!=-1){
				   	//To check .net .com etc words in company name field
				    if(!isValid(element_object))
				   		return false;
				}
			}
		}
	}
}

/*function to remove the space from the field*/
function chktrim(inputString) {
         if (typeof inputString != "string") { return inputString; }
         var retValue = inputString;
         var ch = retValue.substring(0, 1);
         while (ch == " ") { 
           retValue = retValue.substring(1, retValue.length);
           ch = retValue.substring(0, 1);
         } 
         ch = retValue.substring(retValue.length-1, retValue.length);
         while (ch == " ") { 
            retValue = retValue.substring(0, retValue.length-1);
            ch = retValue.substring(retValue.length-1, retValue.length);
         }
         while (retValue.indexOf("  ") != -1) { 
            retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
         }
         return retValue; 
}


/* The following function creates an XMLHttpRequest object... */

function createRequestObject(){
	var request_o; //declare the variable to hold the object.
	var browser = navigator.appName; //find the browser name
	if(browser == "Microsoft Internet Explorer"){
		/* Create the object using MSIE's method */
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		/* Create the object using other browser's method */
		request_o = new XMLHttpRequest();
	}
	return request_o; //return the object
}

/* You can get more specific with version information by using 
	parseInt(navigator.appVersion)
	Which will extract an integer value containing the version 
	of the browser being used.
*/
/* The variable http will hold our new XMLHttpRequest object. */
var RequestObject = createRequestObject(); 

/* Function called to get the product categories list */
function ajaxCall(url, element_name, display_type){
		if(display_type == 'div'){
			document.getElementById(element_name).innerHTML = "<br><br><table align=center><b><font size=4>Loading...</font></b></table><br><br>";
		}
		else{
			document.getElementById(element_name).value = "&lt;br&gt;&lt;br&gt;&lt;table align=center&gt;&lt;b&gt;Loading...&lt;/b&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;";
		}
	
	/* Create the request. The first argument to the open function is the method (POST/GET),
		and the second argument is the url... 
		document contains references to all items on the page
		We can reference document.form_category_select.select_category_select and we will 		
		be referencing the dropdown list. The selectedIndex property will give us the 
		index of the selected item. 
	*/
	RequestObject.open('POST', url, true);
	/* Define a function to call once a response has been received. This will be our
		handleProductCategories function that we define below. */
	//RequestObject.onreadystatechange = post_value; 
	RequestObject.onreadystatechange = function (){
		if(RequestObject.readyState == 4){
			var response = RequestObject.responseText;
			if(display_type == 'div'){
				document.getElementById(element_name).innerHTML = response;
			}
			else{
				document.getElementById(element_name).value= response;
			}
		}	
	}
	/* Send the data. We use something other than null when we are sending using the POST
		method. */
	RequestObject.send(null);
}

/* Function called to handle the list that was returned from the internal_request.php file.. */
function post_value(){
	/* Make sure that the transaction has finished. The XMLHttpRequest object 
		has a property called readyState with several states:
		0: Uninitialized
		1: Loading
		2: Loaded
		3: Interactive
		4: Finished */
	if(RequestObject.readyState == 4){ //Finished loading the response
		/* We have got the response from the server-side script,
			let's see just what it was. using the responseText property of 
			the XMLHttpRequest object. */
		var response = RequestObject.responseText;
		/* And now we want to change the product_categories <div> content.
			we do this using an ability to get/change the content of a page element 
			that we can find: innerHTML. */
		document.getElementById('ajax_div_disp_prod_frm').innerHTML = response;
	}
}
