
// Form decoration ------------------------------------------------------------


function validateEmailv2(emailStr)
{
    var emailPat		= /^(.+)@(.+)$/;
	var specialChars	= "\\(\\)<>!%#*/$^&~`|{}@,;:+=-\\\\\\\"\\.\\[\\]";
	var validChars		= "\[^\\s" + specialChars + "\]";
	var quotedUser		= "(\"[^\"]*\")";
	var ipDomainPat		= /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom			= validChars + '+';
	var word			= "(" + atom + "|" + quotedUser + ")";
	var userPat			= new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat		= new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray		= emailStr.match(emailPat);
	var errorflg		= 0;
	if (matchArray==null) {	
		errorflg 		= 1;
		return false;
	}
	var user			= matchArray[1];
	var domain			= matchArray[2];

	if (user.match(userPat)==null) {
		errorflg 		= 1;
	    return false;
	}

	var IPArray			= domain.match(ipDomainPat);
	
	if (IPArray!=null) {
   
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
			errorflg 		= 1;
		return false;
	    }
    }
    return true;
	}

	var domainArray		= domain.match(domainPat);
	
	if (domainArray==null) {
		errorflg 		= 1;	
	    return false;
	}
	
	var atomPat		= new RegExp(atom,"g");
	var domArr		= domain.match(atomPat);
	var len			= domArr.length;
	
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {    //Added for length
		errorflg 		= 1;
		return false;
	}

	if (len<2) {
		errorflg 		= 1;
		return false;
	}
	return true;
}


function addValidation(objValue,strValidateStr) 
{ 
	var epos = strValidateStr.search("="); 
    var  command  = ""; 
    var  cmdvalue = ""; 
	var  trimming = objValue.value.replace(/^\s+/g, "").replace(/\s+$/g, "");
	
	var  objName  = objValue.name;
	
    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
     command = strValidateStr; 
    } 
	
    switch(command) 
    { 
	
		case "kana": 
        case "katakana": {
			
		//strip out full-width space characters
    	var stripped = trimming.replace(/[　]/g, "");
		
		//check if the entered characters includes only full-width katakana and space
		if (stripped.match(/^[\u30A0-\u30FF]+$/)) {
			document.getElementById('er_'+objName).innerHTML	= '<img src="../img/ok.gif" border=0 />';
		   break;
		} 	
		else {
			document.getElementById('er_'+objName).innerHTML		= '<img src="../img/ng.gif" border=0 />';
              return false; 
			}
        }//case katakana

        case "req": 
        case "required": {
        	
           if(eval(objValue.value.length) == 0 || eval(trimming.length) <=0) 
           { 
              document.getElementById('er_'+objName).innerHTML		= '<img src="../img/ng.gif" border=0 />';
              return false; 
           }else
	  			document.getElementById('er_'+objName).innerHTML	= '<img src="../img/ok.gif" border=0 />';
           //if
           break;             
         }//case required 

        case "maxlength": 
        case "maxlen": 
          { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
               document.getElementById('title').innerHTML = strError; 
               return false; 
             }//if 
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
		     
             if(eval(objValue.value.length) <  eval(cmdvalue)) 
             { 
               document.getElementById('title').innerHTML=strError;
               return false;                 
             }//if 
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
              var charpos = objValue.value.search("[^A-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                document.getElementById('title').innerHTML= strError;
                return false; 
              }//if 
              break; 
           }//case alphanumeric
        case "num": 
        case "numeric": 
           { 
              var charpos = objValue.value.search("[^0-9]");
              if(eval(objValue.value.length) == 0 || eval(trimming.length) <=0){
            	  document.getElementById('er_'+objName).innerHTML		= '<img src="../img/ng.gif" border=0 />';
            	  return false;
              }
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
            	  document.getElementById('er_'+objName).innerHTML		= '<img src="../img/ng.gif" border=0 />';
            	  return false; 
              }else
		  			document.getElementById('er_'+objName).innerHTML	= '<img src="../img/ok.gif" border=0 />';
              //if 
              break; 
           }//case alphanumeric           
        case "alphabetic": 
        case "alpha": 
           { 
              var charpos = objValue.value.search("[^A-Za-z]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
 
                return false; 
              }//if 
              break; 
           }//alpha 
		case "alnumhyphen":
			{
              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
 
                return false; 
              }//if 			
			break;
			}
        case "email": 
          { 
		  		if (objValue.value == null || objValue.value.length == 0) {
		  			document.getElementById('er_'+objName).innerHTML	= '<img src="../img/ng.gif" border=0 />';
					return false;
				}
		  		if(!validateEmailv2(objValue.value)) 
		  		{ 
            	   document.getElementById('er_'+objName).innerHTML		= '<img src="../img/ng.gif" border=0 />';
            	   return false; 
		  		}else
		  			document.getElementById('er_'+objName).innerHTML		= '<img src="../img/ok.gif" border=0 />';
           break; 
          }//case email 
        case "lt": 
        case "lessthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(" It must be number, "); 
              return false; 
            }//if 
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              return false;                 
             }//if             
            break; 
         }//case lessthan 
        case "gt": 
        case "greaterthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }//if 
             if(eval(objValue.value) <=  eval(cmdvalue)) 
             {  
               return false;                 
             }//if             
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
		 	if(objValue.value.length > 0)
			{
	            if(!objValue.value.match(cmdvalue)) 
	            { 
	              return false;                   
	            }//if 
			}
           break; 
         }//case regexp 
        case "dontselect": 
         { 
            if(objValue.selectedIndex == "Please select") 
            { 
              document.getElementById('er_'+objName).innerHTML		= '<img src="../img/ng.gif" border=0 />';
              return false; 
            } 
           // if(objValue.selectedIndex == eval(cmdvalue) || objValue.selectedIndex =="Please select" ) 
		   if(objValue.options[objValue.selectedIndex].value=="")
            { 
				document.getElementById('er_'+objName).innerHTML		= '<img src="../img/ng.gif" border=0 />';
	            return false;                                   
             } 
             break; 
         }//case dontselect

		case "EnglishFileonly":
			{
              var charpos = objValue.value.search("[^A-Za-z0-9\\: -_]"); 				
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 

                return false; 
              }//if 			
			break;
			}

      
	    case "fileCheck": 
        {	
		    if(strError=='fileid')
				{
				 obj=document.getElementById('fileid');
				 ext = /.xls$|.xlsx$|.csv$|.zip$|.gpf$/i;
				 if ( (obj.value.match(ext) && obj.value!='') )
				 return true;
				 document.getElementById('msg').innerHTML =document.getElementById('xlsFiles').value;
		         return false;
		        }
		      }
	   case "formatFileCheck": 
       {	
			if(strError=='fileid')
			{
			 obj=document.getElementById('fileid');
			 ext = /.xls$|.xlsx$|.csv$|.zip$|.gpf$/i;
			 if ( (obj.value.match(ext) && obj.value!='') )
			 return true;
			 document.getElementById('title').innerHTML =document.getElementById('xlsFiles').value;
			 return false;
			}
	   }

        case "checkSpecial":
        {
        var nonums = "0123456789";
   		  if (nonums.indexOf(objValue.value.charAt(0)) != -1) {
   		   document.getElementById('title').innerHTML= strError;
     		// alert("cannot start with number");
    	  return false;
 		}
 
        } //CheckSpecial

       case "checkRadio":
        {
			var o = document.getElementById('t_one');
			var t = document.getElementById('t_two');
			if ( (o.checked == false ) && (t.checked == false ) )
			{
			alert ( "Please choose Retail: Yes/No" );
   		    document.getElementById('title').innerHTML= strError;
			return false;
			}
        } //checkFirstChar

		case "checkFirstChar":
        {
	        var nonums = "0123456789-_`~'=+|{}\\\\\"\\";
	   		  if (nonums.indexOf(objValue.value.charAt(0)) != -1) {
	   		   document.getElementById('title').innerHTML= strError;
	     		// alert("cannot start with number");
	    	  return false;
	 		}
        } //checkFirstChar
        case "phone": 
        case "mobile": 
           { 
              var charpos = objValue.value.search("[^0-9]");
              if(eval(objValue.value.length) == 0 || eval(trimming.length) <=0){
            	  document.getElementById('er_phone').innerHTML		= '<img src="../img/ng.gif" border=0 />';
            	  return false;
              }
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
            	  document.getElementById('er_phone').innerHTML		= '<img src="../img/ng.gif" border=0 />';
            	  return false; 
              }else
		  			document.getElementById('er_phone').innerHTML	= '<img src="../img/ok.gif" border=0 />';
              //if 
              break; 
           }//case alphanumeric        

	}//switch 
    return true; 
}

