// this js file is used to show all message passed in title property.
// Just pass the name of last and first form elements, while calling initializeForm() function at ajax_validator.htm
// Like: <tr><td colspan='3' align="center"><input type="button" value="Send Data" class="formbutton" onclick="initializeForm('check','fname');"/></td></tr>

var errors=new Array();
//var alertUnPublish=0;
// send http requests

function sendHttpRequest(url,callbackFunc,respXml,last, frm_name,ele, returnFunc){
   var xmlobj;
   try{
	   xmlobj=new XMLHttpRequest();
    }
    catch(e){
        try{
            xmlobj=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e){
            alert('AJAX is not supported by your browser!');
            return false;
        }
   }
   xmlobj.onreadystatechange=function(){
	 //  alert(xmlobj.readyState);
        if(xmlobj.readyState==4){
			//alert(xmlobj.status);
            if(xmlobj.status==200){
				if(respXml)
				{
					var a= eval(callbackFunc+'(xmlobj.responseXML,last, frm_name, returnFunc)');
				}
				else
				{
					var a= eval(callbackFunc+'(xmlobj.responseText,last, frm_name, returnFunc)');
				}
            }
			//if(xmlobj.status==414)
			//{
			//	eval(callbackFunc+'(\'description|Please enter description.\',last, frm_name)');
			//}
        }
    }
    // open socket connection
    xmlobj.open('POST',url,true);
    // send http header
    xmlobj.setRequestHeader('Content-Type','text/html;charset=UTF-8');
    // send http request
    xmlobj.send(null);
}

///////////////////////////////////

// initialize form and assign events
function initializeForm(frm_name, last, minVal, maxVal, returnFunc)
{
	errors=new Array();
	var elems=eval("document."+frm_name+".elements");
	if(!elems){return};	
    for(var i=0;i<elems.length;i++)
	{
        // check for 'required' attribute
		//break;
        if(elems[i].getAttribute('required'))
		{
			 //if field depend on any other field
			   if(elems[i].getAttribute('depend'))
			   {
				var eleName=elems[i].name;
				var dAttr=elems[i].getAttribute('depend');
				var dAttrVal=dAttr.split("|");
				var dName=dAttrVal[0];
				var dValue=dAttrVal[1];
				var dType=dAttrVal[2];
				//alert(dAttrVal);
				//frm = frm_name;
				//var dd = encodeURIComponent(eval("document."+frm+"."+dName+".value"));
				//alert('name='+dName+'Value='+dValue+'type='+dType);
				if(dType=='radio')
				{
				 var dRadioVal = '';    
				 var len = eval("document."+frm_name+"."+dName+".length");        
				 for (var j=0; j <len; j++)
				 {
				  frm_ele = eval("document."+frm_name+"."+dName+"["+j+"].checked");
				   
				  if (frm_ele)
					{
					 dRadioVal = eval("document."+frm_name+"."+dName+"["+j+"].value");
					}
				 }
				 
				 if(dRadioVal != dValue)
				 {
				  if(document.getElementById('class_name'))
				   class_name_val = eval("document.getElementById('class_name')").value;
				  else
				   class_name_val = "";
			 
				  var lable = eval("document.getElementById('txt_'+eleName)");
				  lable.className = class_name_val;
				  continue;
				 }
				}
			 
				else if(dType=='checkbox')
				{
				 var dCheckedVal='';
				 frm_ele = eval("document."+frm_name+"."+dName+".checked")
					 if(frm_ele)
				 {
				  dCheckedVal = eval("document."+frm_name+"."+dName+".value");
				 }
				 if(dCheckedVal!=dValue)
				 {
				  if(document.getElementById('class_name'))
				   class_name_val = eval("document.getElementById('class_name')").value;
				  else
				   class_name_val = "";
				  var lable = eval("document.getElementById('txt_'+eleName)");
				  lable.className = class_name_val;
			 
				  continue;
				 }
				}
				else if(dType=='text')
				{
				 var dCheckedVal='';
				 frm_ele = eval("document."+frm_name+"."+dName)
					 if(frm_ele)
				 {
				  dCheckedVal = eval("document."+frm_name+"."+dName+".value");
				 }
				 if(dCheckedVal!=dValue)
				 {
				  if(document.getElementById('class_name'))
				   class_name_val = eval("document.getElementById('class_name')").value;
				  else
				   class_name_val = "";
				  var lable = eval("document.getElementById('txt_'+eleName)");
				  
				  lable.className = class_name_val;
			 
				  continue;
				 }
				}			 
			   }
			   //end of field  dependency


			var method='&method='+elems[i].getAttribute('required');
			var eleAttr=elems[i].getAttribute('required');
			if(elems[i].type=='select-one')
			{
			   sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&value='+elems[i].options[elems[i].selectedIndex].value+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random(),'displayErrorMessage',false,last, frm_name, elems[i].name, returnFunc);				
			}
			
			else if(elems[i].type=='select-multiple')
			{
				var indx = 0;
				if(elems[i].selectedIndex<0)
					indx = 0;
				else
					indx = elems[i].selectedIndex;
				sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&value='+elems[i].options[indx].value+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random(),'displayErrorMessage',false,last, frm_name, elems[i].name, returnFunc);
			}
			else if(elems[i].type=='radio')
			{
				var radioVal = '';
				
				var ele = elems[i].name;
				
			   frm = frm_name;
			   
			   var len = eval("document."+frm+"."+ele+".length");
				   
			   for (var j=0; j <len; j++)
			   {
					frm_ele = eval("document."+frm+"."+ele+"["+j+"].checked");
					    
					if (frm_ele)
					  {
					   radioVal = eval("document."+frm+"."+ele+"["+j+"].value");
					  }
			   }
				 //checking motor type
				  sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&value='+radioVal+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random(),'displayErrorMessage',false,last, frm_name, elems[i].name, returnFunc);
			}
			else if(elems[i].type=='checkbox')
			{
				var checkboxVal = '';
				
				var ele = elems[i].name;

			    frm = frm_name;
			   //for multiple check box of same name
			 // var len = document.getElementsByName("'"+ele+"'");
			 var arr=ele.substring(ele.length-2,ele.length);
			 var chks = document.getElementsByName(ele);
			 if(arr=="[]")
			{
				ele=ele.substring(0,ele.length-2);
				var  checkboxVal = "";
				//alert(chks.length);
				for (var j=0; j <chks.length; j++)
				{
				//alert(ele);
				frm_ele = eval("document."+frm+"."+ele);
				//alert('frm_ele='+frm_ele);
					if (chks[j].checked)
					{
						checkboxVal = "checked";
						//alert(checkboxVal)
					}

				}
			}
			else
				{
			
			   frm_ele = eval("document."+frm+"."+ele+".checked")
			   if(frm_ele)
				{
					checkboxVal = elems[i].value;
				}
				
				}
				sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&value='+checkboxVal+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random(),'displayErrorMessage',false,last, frm_name, elems[i].name, returnFunc);
			}
			else if (elems[i].type=='file')
			{
				fileVal = elems[i].value;
				var newImg = new Image();
				newImg.src = elems[i].value;
				var height = newImg.height;
				var width = newImg.width;
				return sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&value='+fileVal+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random(),'displayErrorMessage',false,last, frm_name, elems[i].name, returnFunc);
			}
			else if (elems[i].type=='password')
			{
				fileVal = encodeURIComponent(elems[i].value);

				if(elems[i].name=="re_password")
				{

				frm = frm_name;
				passwordVal = encodeURIComponent(eval("document."+frm+".password.value"));
				sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&value='+fileVal+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random()+'&passwordVal='+passwordVal,'displayErrorMessage',false,last, frm_name, elems[i].name,returnFunc);
				}
				else
				{
						sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&value='+fileVal+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random(),'displayErrorMessage',false,last, frm_name, elems[i].name, returnFunc);
				}
			}
			else if (elems[i].type=='text' && elems[i].name=='code')
			{
				fileVal = elems[i].value;
				frm = frm_name;
				 captchaVal = encodeURIComponent(eval("document."+frm+".encrypted_string.value"));
				 sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&value='+fileVal+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random()+'&captchaVal='+captchaVal,'displayErrorMessage',false,last, frm_name, elems[i].name, returnFunc);

			}
			else if (elems[i].type=='textarea')
			{
				 var textareaVal = 	elems[i].value;
				 textareaVal = encodeURIComponent(textareaVal.substr(minVal, maxVal+10));
				 sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&minVal='+minVal+'&maxVal='+maxVal+'&value='+textareaVal+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random(),'displayErrorMessage',false,last, frm_name, elems[i].name, returnFunc);
		
			}
			else
			{	
				var val=encodeURIComponent(elems[i].value);
				sendHttpRequest('ajax_validator.php?field='+elems[i].getAttribute('name')+'&minVal='+minVal+'&maxVal='+maxVal+'&value='+val+method+'&message='+elems[i].getAttribute('title')+'&rand='+Math.random(),'displayErrorMessage',false,last, frm_name,elems[i].name, returnFunc);
			}
    		
        }
		if(elems[i].name==last)
		{
			break;
		}
    }
	//return false;
}

// display error messages
function displayErrorMessage(serverResponse,last, frm_name, returnFunc){
  //alert("displayErrorMessage="+serverResponse);
    var elemkey=serverResponse.split('|')[0];
    var errormsg=serverResponse.split('|')[1];
	var counter=0;
	var frm = frm_name;	
	var lable,  class_name_val;
	if(document.getElementById('txt_'+elemkey))
		lable = eval("document.getElementById('txt_'+elemkey)");
	if(document.getElementById('class_name'))
		class_name_val = eval("document.getElementById('class_name')").value;
	else
		class_name_val = "";
	
	if(errormsg.length<4){
		errormsg = escape(errormsg).replace('%0A','');
		errormsg = escape(errormsg).replace('%0D%0A','');
	}

	if(errormsg=='')
	{
		errors[elemkey] = 0;
		lable.className = class_name_val;
	}
	else 
	{
		errors[elemkey] = 1;
		if(class_name_val=="")
		{
			lable.className = 'msgcontainer1';
		 }
		else
		{
			lable.className = class_name_val+'_new';
		}
	}

    // count total errors
    for(var i in errors)
	{
		
		if(errors[i])
		{
			
			counter++;
		}
		
	}
    if(!counter && elemkey==last)
	{
			//alert(returnFunc);
			if(returnFunc)
			{
				eval(returnFunc);
			}
			else
			{
				eval('document.'+frm_name+'.submit();');
			}
			return true;
	}
	else if(!counter && elemkey !=last)
	{
		// Do nothing.

	}
	else
	{
		msgError='We\'re sorry, but one or more fields are incomplete or incorrect.<br> Please correct the fields that\'s in <span class="error_red_txt">red</span>.';
		show_error_msg(msgError);
		return false;
	}
}


//function to validate search form
//Ravi Pandey
//9/16/2008
// initialize form and assign events
function validateSearchForm(frm_name)
{
	var elems=eval("document."+frm_name+".elements");
	var res = false;
	var val="";
    for(var i=0;i<elems.length;i++)
	{
		 if(elems[i].getAttribute('required') && elems[i].getAttribute('required')=="Search")
		{
			if(elems[i].type=='select-one')
			{
				var val=elems[i].options[elems[i].selectedIndex].value;
				if(val!="") 
				{
					if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
					res=true;
					break;
				}//end if
			}//end if
			
			else if(elems[i].type=='select-multiple')
			{
				var indx = 0;
				if(elems[i].selectedIndex<0)
					indx = 0;
				else
					indx = elems[i].selectedIndex;

				if(val!=0) 
				{
					if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
					res=true;
					break;
				}//end if
			}//else if
			
			else if(elems[i].type=='radio')
			{
				if(elems[i].name!="search_key")			
				{
					var radioObj=eval("document."+frm_name+"."+elems[i].name)
					var val=getCheckedValue(radioObj);
					if(val!="") 
					{
						if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
						res=true;
						break;
					}
				}//end if
				
			}// else if
			else if(elems[i].type=='checkbox')
			{
				var checkboxVal = '';
				
				var ele = elems[i].name;

				frm = frm_name;
			 
			   frm_ele = eval("document."+frm+"."+ele+".checked")
			   if(frm_ele)
				{
					checkboxVal = elems[i].value;
				}//end if
				if(checkboxVal!="") 
				{
					if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
					res=true;
					break;
				}
			}//else if
			else
			{
				var val=elems[i].value;
				if(val!="") 
				{
					if(document.getElementById('view_all'))
						document.getElementById('view_all').style.display='';
					res=true;
					break;
				}
			}//else
		}//END IF
        
    }//LOOp
	

	if(!res)
	{
		var msgError='Please choose at least one field for <span class="error_red_txt">search</span>.';
		show_error_msg(msgError);
		return false;
	}//end if
	else
	{
		hide_error_msg();
		if(document.getElementById('cAction'))
			document.getElementById('cAction').value="Search";
		return true;
	}
}//function


//Niketa Srivastava 1/20/2009
// id is element id and required is image is required or not
function validateImage(id,required)
{
	var fileName=/[\\/][0-9a-z._-]+$/i;
	var sCont = document.getElementById(id);
	var sContVal = document.getElementById(id).value;
	var checkVal=document.getElementById("insert_record").value;
	if(sContVal.length==0 && required==1)
	{
		lable = eval("document.getElementById('txt_"+id+"')")
		lable.className='msgcontainer1';
		document.getElementById("insert_record").value=-1;
		return false;
	}
	if(sContVal.length!=0)
	{
        var res="no";
       
        var gfile=sContVal.toLowerCase();
        var str= new String();
        str= gfile;
       
        var finddot=str.lastIndexOf('.',str.length);
        var contain=new String();
        var contain=str.substring(finddot+1,str.length);
       
        var findslash=str.lastIndexOf('\\',str.length); // checks the occurance of '.' in photoname [creates problem in uplaoding]
        var contain2=new String();
        var contain2=str.substring(findslash+1,finddot);
       
        var sSpace = sContVal.indexOf(' ')
        var str=new String();
        str=contain2;
        var span=new RegExp("[#]","g");
        var rep=str.replace(span,"~");
       
       
        var spans1=new RegExp("[.]","g");
        var rep=rep.replace(spans1,"~");
           
                   
        var chkindex = rep.indexOf('~')
                           
        var arr=new Array('jpeg','jpg','gif','pjpeg','pjpg'); //,'png'   //add file extensions here
     
        for(i=0;i<=arr.length-1;i++)
        {
            if(arr[i]==contain)
            var res="yes";
        }
           
       
        if(res != "yes" || (sContVal=="") || (chkindex != -1) )
        {
			//lable = eval("document.getElementById('txt_image["+i+"]')")
			document.getElementById('txt_'+id).className='msgcontainer1';
			document.getElementById('insert_record').value=-1;
        }
		else
			document.getElementById('txt_'+id).className='';
      }// end if

}
function validateDocs(id,required)
{
	var fileName=/[\\/][0-9a-z._-]+$/i;
	var sCont = document.getElementById(id);
	var sContVal = document.getElementById(id).value;
	var checkVal=document.getElementById("insert_record").value;
	if(sContVal.length==0 && required==1)
	{
		lable = eval("document.getElementById('txt_"+id+"')")
		lable.className='msgcontainer1';
		document.getElementById("insert_record").value=-1;
		return false;
	}
	if(sContVal.length!=0)
	{
        var res="no";
       
        var gfile=sContVal.toLowerCase();
        var str= new String();
        str= gfile;
       
        var finddot=str.lastIndexOf('.',str.length);
        var contain=new String();
        var contain=str.substring(finddot+1,str.length);
       
        var findslash=str.lastIndexOf('\\',str.length); // checks the occurance of '.' in photoname [creates problem in uplaoding]
        var contain2=new String();
        var contain2=str.substring(findslash+1,finddot);
       
        var sSpace = sContVal.indexOf(' ')
        var str=new String();
        str=contain2;
        var span=new RegExp("[#]","g");
        var rep=str.replace(span,"~");
       
       
        var spans1=new RegExp("[.]","g");
        var rep=rep.replace(spans1,"~");
           
                   
        var chkindex = rep.indexOf('~')
                           
        var arr=new Array('pdf'); //,'pdf'   //add file extensions here
     
        for(i=0;i<=arr.length-1;i++)
        {
            if(arr[i]==contain)
            var res="yes";
        }
           
       
        if(res != "yes" || (sContVal=="") || (chkindex != -1) )
        {
			document.getElementById('txt_'+id).className='msgcontainer1';
			document.getElementById('insert_record').value=-1;
			return false;
        }
		else
			document.getElementById('txt_'+id).className='';
      }// end if

}
/*
Added By : Manish Sahu
Date: 02-June-2009
Description: for validating the uploaded file on change event of file tag
*/
function LimitAttach(f_name,form, file)
{	
	extArray = new Array(".pdf");
	//onclick="LimitAttach(file2,this.form, this.form.file2.value);"
	allowSubmit = false;
	var additional_msg = '';
	if (!file) return;
	while (file.indexOf("\\") != -1)
	file = file.slice(file.indexOf("\\") + 1);
	ext = file.slice(file.indexOf(".")).toLowerCase();
	for (var i = 0; i < extArray.length; i++) 
	{
		if (extArray[i] == ext) 
		{ 
			allowSubmit = true; 
			break; 
		}
	}
	if(file.match('&')!=null)
	{
		alert('Please check the uploaded file should not have any \nspecial characters like \'[] () {} ~ ! @ # $ % ^ & *\'.');			
		f_name.value='';
	}
	if(!allowSubmit) 
	{
		alert("Please upload only files having the format or types : "+ (extArray.join("  ")) + "\nPlease select a new file to upload and submit again.");
		f_name.value='';
	}	
}
