function onClickvalidateEmail(email)
{
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

function onClickTestInputType(objValue,strRegExp)
{
  if(!onClickTestRequiredInput(objValue))  return false;
  var ret = true;

   var charpos = objValue.search(strRegExp);
   if(objValue.length > 0 &&  charpos >= 0)
   {
      ret = false;
   }//if 
   return ret;
}


function onClickTestRequiredInput(objValue)
{
 var ret = true;
 var val = objValue;
 val = val.replace(/^\s+|\s+$/g,"");//trim
    if(eval(val.length) == 0) 
    { 
       ret=false; 
    }//if 
return ret;
}
function onClickTestEmail(objValue)
{
  if(!onClickTestRequiredInput(objValue))  return false;
var ret = true;
     if(objValue.length > 0 && !onClickvalidateEmail(objValue)	 ) 
     { 
       ret = false; 
     }//if 
return ret;
}
function onClickTestDontSelect(objValue,dont_sel_index,strError)
{
var ret = true;
    if(objValue.selectedIndex == null) 
    { 
      sfm_show_error_msg("ERROR: dontselect command for non-select Item"); 
      ret =  false; 
    } 
    if(objValue.selectedIndex == eval(dont_sel_index)) 
    { 
     if(!strError || strError.length ==0) 
      { 
      strError = objValue.name+": Please Select one option "; 
      }//if                                                               
      sfm_show_error_msg(strError); 
      ret =  false;                                   
     } 
return ret;
}


function onClickValidateInput(fieldName, command, objValue, strError) 
{ 
	
    var ret = true;

    switch(command) 
    { 
        case "req": 
        case "required": 
         { 
		   ret = onClickTestRequiredInput(objValue)
           break;             
         }//case required 
        case "maxlength": 
        case "maxlen": 
          { 
			 ret = onClickTestMaxLen(objValue,cmdvalue,strError)
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
			 ret = onClickTestMinLen(objValue,cmdvalue,strError)
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
				ret = onClickTestInputType(objValue,"[^A-Za-z0-9]");
				break; 
           }
        case "alnum_s": 
        case "alphanumeric_space": 
           { 
				ret = onClickTestInputType(objValue,"[^A-Za-z0-9\\s]",strError, 
						objValue.name+": Only alpha-numeric characters and space allowed ");
				break; 
           }		   
        case "num": 
        case "numeric": 
           { 
                ret = onClickTestInputType(objValue,"[^0-9]",strError, 
						objValue.name+": Only digits allowed ");
                break;               
           }
        case "num_s": 
        case "numeric_s": 
           { 
                ret = onClickTestInputType(objValue,"[^0-9\\s]",strError, 
						objValue.name+": Only digits and spaces allowed ");
                break;               
           }
        case "dec": 
        case "decimal": 
           { 
                ret = onClickTestInputType(objValue,"[^0-9\.]",strError, 
						objValue.name+": Only numbers allowed ");
                break;               
           }
        case "alphabetic": 
        case "alpha": 
           { 
                ret = onClickTestInputType(objValue,"[^A-Za-z]",strError, 
						objValue.name+": Only alphabetic characters allowed ");
                break; 
           }
        case "alphabetic_space": 
        case "alpha_s": 
           { 
                ret = onClickTestInputType(objValue,"[^A-Za-z\\s]",strError, 
						objValue.name+": Only alphabetic characters and space allowed ");
                break; 
           }
        case "email": 
          { 
			   ret = onClickTestEmail(objValue);
               break; 
          }
        case "lt": 
        case "lessthan": 
         { 
    	      ret = onClickTestLessThan(objValue,cmdvalue,strError);
              break; 
         }
        case "gt": 
        case "greaterthan": 
         { 
			ret = onClickTestGreaterThan(objValue,cmdvalue,strError);
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
			ret = onClickTestRegExp(objValue,cmdvalue,strError);
           break; 
         }
        case "dontselect": 
         { 
			 ret = onClickTestDontSelect(objValue,cmdvalue,strError)
             break; 
         }
		case "dontselectchk":
		{
			ret = onClickTestDontSelectChk(objValue,cmdvalue,strError)
			break;
		}
		case "shouldselchk":
		{
			ret = onClickTestShouldSelectChk(objValue,cmdvalue,strError)
			break;
		}
		case "selone_radio":
		{
			ret = onClickTestSelectOneRadio(objValue,strError);
		    break;
		}		 
    }//switch 

    if(!ret) {
      var dsp_spot = 'h_'+fieldName;
      document.getElementById(fieldName).style.border="1px solid #cc0000";
      
      switch(dsp_spot) {
	      case "h_postaladdress":
			Tip(strError, FIX, [dsp_spot, 5, -43], WIDTH,220);
		      break;
	      default:      
		Tip(strError, FIX, [dsp_spot, -20, -7], WIDTH,220);
	      break;
      }
    } else {
       document.getElementById(fieldName).style.border="1px solid #000000";
    }
    
}
