function validateEmail(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 validateData(strValidateStr,objValue,strError) 
{ 
    var epos 	  = strValidateStr.search("="); 
    var command	  = ""; 
    var cmdvalue  = ""; 
    var is_valid  = "true";
    var error_msg = "";
    
    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
     command = strValidateStr; 
    } 

    switch(command) 
    { 
        case "required": 
         { 
           if(eval(objValue.value.length) == 0) 
           {
              if(!strError || strError.length ==0)  	error_msg = objValue.name; 
              else 					error_msg = strError;
           }//if 
           break;             
         }//case required 
        case "maxlen": 
          { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0)  	error_msg = objValue.name; 
               else 					error_msg = strError;
             }//if 
             break; 
          }//case maxlen 
        case "alphanumeric": 
           { 
              var charpos = objValue.value.search("[^A-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
              	if(!strError || strError.length ==0) 	error_msg = objValue.name;
              	else 					error_msg = strError;
              }//if 
              break; 
           }//case alphanumeric 
        case "email": 
          { 
               if(!validateEmail(objValue.value)) 
               { 
                 if(!strError || strError.length ==0) 	error_msg = objValue.name; 
                 else 					error_msg = strError;
               }//if 
           break; 
          }
        case "require_checked": 
         {            
           if(!objValue.checked) 
           {
              if(!strError || strError.length ==0)  	error_msg = objValue.name; 
              else 					error_msg = strError;
           }//if 
           break;             
         }
        
    }

    return error_msg; 
} 

function validateForm(objFrm,arrObjDesc) 
{ 
 var msg 	= "The following required field(s) were not filled in or were filled in incorrectly:\n";
 var error_msg 	= null;
 var is_valid 	= true;
 
 for(var itrobj=0; itrobj < arrObjDesc.length; itrobj++) 
 { 
   if(objFrm.elements.length <= itrobj) 
   { 
        alert("BUG: Obj descriptor for a non existent form element"); 
        return false; 
   }//if 

   for(var itrdesc=0; itrdesc < arrObjDesc[itrobj].length ;itrdesc++) 
   { 
      error_msg = validateData(arrObjDesc[itrobj][itrdesc][0], objFrm[itrobj],arrObjDesc[itrobj][itrdesc][1]);
      if( error_msg != "") 
       { 
	     msg = msg + error_msg + "\n";
	     if (is_valid == true) {
	     	objFrm[itrobj].focus();
	     	is_valid = false;
	     }
	     break;
       }//if 
   }//for 
 }//for 
 
 if (is_valid == false) alert(msg);
 return is_valid;
} 

function validFormAndChWin (objFrm,arrObjDesc,url,margin_left) {

  if (!validateForm(objFrm,arrObjDesc))  return false;
  
  windowPartOpener(url, 10, 200, 'Sellshareware',true, true,true,true,true,margin_left);
  return true;
}