/*------------------------------------------------------------------------
Create Date : 24/11/2008
Create By : Ramendra Singh
Modified Date : 06/01/2008
Description :This javascript file use to integrate both FORM and javascript class
to check required field validation
--------------------------------------------------------------------------*/
var validateFieldId='';
var msg;    // This variable use to get and set message.
var elmId;  // This variable use to set first un valid element.
var arrInvalidElm = new Array();  // This variable use to stor all un valid element.
var j=0;

function checkField(field2, newValidateFieldId)
{
	//alert(newValidateFieldId);
	if(newValidateFieldId!=undefined)
	{
		validateFieldId = newValidateFieldId;
	}
	// Changes made by kuldeep kamboj to handle multiple validation on one field
	arrInvalidElm.length=0;
	j=0;
	var validatefld = true;
	var arrLoopFld = field2.split('|');
	for(i=0;i<arrLoopFld.length;i++)
	{
		var varFld = arrLoopFld[i];
		//alert(varFld);
		var arrFld = varFld.split('-');
		var val = document.getElementById(arrFld[0]).value;
		if(arrInvalidElm.toString().search(arrFld[0]) == -1){
			if(val!=''){
				//alert('ooo');
				if(validatefld==true)
				{
					validatefld = checkForm(arrFld[1] +'-'+ arrFld[2] +'-'+ arrFld[3],val,'span_'+arrFld[0]);	//  To validate, call this function
				}
			}else{
				//alert('sss');
				var arr = varFld.split('-');
				var type = 'NotEmpty-' + arr[2] +'-'+ arr[3];	
				
				if(validatefld==true)
				{			
					validatefld = checkForm(type,val,'span_'+arrFld[0]); 
				}
			}
		}
	}
	return validatefld;
}

function checkValidation(inputEle, newValidateFieldId){
	if(newValidateFieldId!=undefined)
	{
		validateFieldId = newValidateFieldId;
	}	
	document.getElementById(validateFieldId).value='YES'; 
	arrInvalidElm.length=0;
	j=0;
	elmId = '';	
	var inputs = inputEle.split('|');
	for (var i=0; i<inputs.length; i++){
	   var arrFld = inputs[i].split('-');
	   
	   //alertarrFld)
	 
	   if(arrInvalidElm.toString().search(arrFld[0]) == -1){
	   var val = document.getElementById(arrFld[0]).value			 
			if(val!=''){  
			   checkForm(arrFld[1] +'-'+ arrFld[2]  +'-'+  arrFld[3], val, 'span_'+arrFld[0]);	//  To validate, call this function
			}else{					
				var type = 'NotEmpty-' + arrFld[2]  +'-'+  arrFld[3];	
			   checkForm(type,val,'span_'+arrFld[0]); 
			}
	   }	
	}
	
	if(elmId!=''){
		if(document.getElementById(elmId).type!='hidden')
		{
		    document.getElementById(elmId).focus();
		}
	}
}   
   
function checkForm(alt,value,spanId){
	// Changes made by kuldeep kamboj to handle multiple validation on one field
	var valid =  document.getElementById(validateFieldId).value;
	var checkValid = true;
	//if(valid=='YES')
	//{
	var arr = alt.split('-');
	var type = arr[0];	
	var lbl = arr[1];
	//alert(alt);
	
    if(type=='NotEmpty'){
	      if(!f.isNotEmpty(value)){			 
	         checkValid = false;
          }else{
		     checkValid = true;
		  }

	 } else if(type=='SELECT'){
	      if(!f.isNotEmpty(value)){
	         checkValid = false;
          }else{
		     checkValid = true;
		  }
	 } else if(type=='MINLENGTH'){
	      if(value.length < 6){
	         checkValid = false;
          }else{
		     checkValid = true;
		  }
	 } else if(type=='NUM'){
	      if(!f.isNum(value)){
	         checkValid = false; 
          }else{
		    checkValid = true;
		  }
	 } else if(type=='EMAIL'){
		 
	      if(!f.isEMailAddr(value)){
	         checkValid = false; 
          }else{
		     checkValid = true;
		  }
		  //alert(checkValid);
	 } else if(type=='URL'){
	      if(!f.isURL(value)){
	         checkValid = false; 
          }else{
		    checkValid = true;
		  }
	 } else if(type=='IP'){
	      if(!f.isSimpleIP(value)){
	         checkValid = false; 
          }else{
			checkValid = true;
		  }
	 } else if(type=='ALPHA'){
	      if(!f.isAlphaLatin(value)){
	         checkValid = false; 
          }else{
		     checkValid = true;
		  }
	 } else if(type=='USER'){
	      if(!f.isUserId(value)){
	         checkValid = false; 
          }else{
		     checkValid = true;
		  }
	 } else if(type=='MD5'){ 
	      if(!f.isMD5(value)){
	         checkValid = false;
          }else{
		     checkValid = true;
		  }
	 } else if(type=='SSN'){
	      if(!f.isSSN(value)){
	         checkValid = false;
          }else{
		     checkValid = true;
		  }
	 } else if(type=='DECIMAL'){
	      if(!f.isDecimal(value)){
	         checkValid = false; 
          }else{
		     checkValid = true;
		  }
	 } else if(type=='PASSWORD'){
		  var type1 = arr[2];
		  var val1 = document.getElementById(type1).value;
		  //alert(document.getElementById(type1).value);
	      if(!f.isEqual(value,val1)){
	          checkValid = false;
          }else{
		     checkValid = true;
		 }
	 } else if(type=='CUSTOM'){
		var funcName = arr[2];
		eval('var ret='+ funcName +';');
		if(!ret){
			checkValid = false;
		}else{
			checkValid = true;
		}
	} else{
		checkValid = true;
	}

	if(checkValid == false)
	{
		//alert(validateFieldId);
		//alert(1);
		f.showAlert(spanId,lbl);
		document.getElementById(validateFieldId).value='NO';

		var arrE  = spanId.split('_');
		 if(elmId==''){
			elmId = arrE[1];
		 }
		 // Stor element in array
		 if(arrInvalidElm.toString().search(arrE[1]) == -1){	
		   arrInvalidElm[j] = arrE[1];
		   j++;
		 }
		 // end here 
	 }
	 else
	 {
		 
		f.hideAlert(spanId);
		
		//document.getElementById(validateFieldId).value='YES';
	 }
	 return checkValid;
  } 
  
  
//  SET MESSAGE   
function getMessage(type)
 {
  switch(type){
   /*--------------------------------------------------------------------------*/
	case'NotEmpty':
		msg = ' is required.';		
	break;
	/*--------------------------------------------------------------------------*/
	case'SELECT':
		msg = 'Select ';		
	break;
	/*--------------------------------------------------------------------------*/
	case'NUM':
		msg = 'Enter only numeric value.';
	break;
	/*--------------------------------------------------------------------------*/
	case'EMAIL':
		msg = 'Invalid email address.';
	break;
	/*--------------------------------------------------------------------------*/
	case'URL':
		msg = 'Invalid Website URL.';
	break;
	/*--------------------------------------------------------------------------*/
	case'IP':
		msg = 'Invalid IP Address.';
	break;
	/*--------------------------------------------------------------------------*/
	case'ALPHA':
		msg = 'Only alpha-numeric is allowed.';
	break;
	/*--------------------------------------------------------------------------*/
	case'USER':
		msg = 'Only a-z, 0-9, -, _ , . is allowed.';
	break;
	/*--------------------------------------------------------------------------*/
	case'MD5':
		msg = 'Invalid md5 format.';
	break;
	/*--------------------------------------------------------------------------*/
	case'SSN':
		msg = 'Invalid social security number.';
	break;
	/*--------------------------------------------------------------------------*/
	case'DECIMAL':
		msg = 'Invalid decimal number.';
	break;
	/*--------------------------------------------------------------------------*/
	case'PASSWORD':
		msg = 'Both password not same.';
	break;
	/*--------------------------------------------------------------------------*/
	case'NONE':
		msg = '';
	break;
  }
 }