/* $Id: check_required_fields_js.js,v 1.3.2.3 2006/12/25 11:23:19 max Exp $ */

/*
	Check required fields
*/
function checkRequired(lFields, id) {
	if (!lFields || lFields.length == 0)
		return true;

	if (id) {
		for (var x = 0; x < lFields.length; x++) {
			if (lFields[x][0] == id) {
				lFields = [lFields[x]];
				break;
			}
		}
	}

	for (var x = 0; x < lFields.length; x++) {
		if (!lFields[x] || !document.getElementById(lFields[x][0]))
			continue;

		var obj = _getById(lFields[x][0]);
       // alert(obj.name); 
		if ((obj.type == 'text' || obj.type == 'password' || obj.type == 'textarea') && !obj.value.search(/^[\s]*$/gi)) {
			if (lbl_required_field_is_empty != '') {
				alert(substitute(lbl_required_field_is_empty, 'field', lFields[x][1]));
			} else {
            
				alert(lFields[x][1]);
			}

			if (!obj.disabled && obj.type != 'hidden') {
				checkRequiredShow(obj);
				obj.focus();
			}

			return false;

		}else{
            if(obj.name == "firstname" || obj.name == "lastname" || obj.name =="b_city" || obj.name =="b_zipcode" || obj.name =="phone" || obj.name =="uname")
            {
             // alert('inside');
              var count=0;
              var c1=0;  
             if(obj.name=="phone")
              {
            
              
                          if(isIntegers12(obj.value))
                          {
                            c1++;
                          //  alert(c1);
                          }
                   
                    // alert(c1);
                 if( c1>0){
                   alert("The required field '"+obj.name+ "' must contain only integers"); 
                            if (!obj.disabled && obj.type != 'hidden') {
                                checkRequiredShow(obj);
                                obj.focus();
                            }
                        return false;
                 }
                 var iChars = "@`~! #$%^&*()+=-[]\\\';,/{}|\":<>?";
                 for (var i = 0; i < obj.value.length; i++) 
                     {
                     //alert(iChars.indexOf(obj.value.charAt(i)));
                          if (iChars.indexOf(obj.value.charAt(i))!= -1)
                           {
                             
                            count++;
                          }
                      }
                       if(count>0)
                      {
                        alert("The required field '"+obj.name+ "' should not contain special characters"); 
                            if (!obj.disabled && obj.type != 'hidden') {
                                checkRequiredShow(obj);
                                obj.focus();
                            }
                        return false;
                      }
                 
               
              }if(obj.name=="uname")
              {
                 var iChars = "@`~! #$%^&*()+=-[]\\\';,/{}|\":<>?";
                 for (var i = 0; i < obj.value.length; i++) 
                     {
                     //alert(iChars.indexOf(obj.value.charAt(i)));
                          if (iChars.indexOf(obj.value.charAt(i))!= -1)
                           {
                             
                            count++;
                          }
                      }
                       if(count>0)
                      {
                        alert("The required field '"+obj.name+ "' should not contain special characters"); 
                            if (!obj.disabled && obj.type != 'hidden') {
                                checkRequiredShow(obj);
                                obj.focus();
                            }
                        return false;
                      }
              
              }else{
                var iChars = "@`~! #$%^&*()+=-[]\\\';,/{}|\":<>?";
                 for (var i = 0; i < obj.value.length; i++) 
                     {
                     //alert(iChars.indexOf(obj.value.charAt(i)));
                          if (iChars.indexOf(obj.value.charAt(i))!= -1)
                           {
                             
                            count++;
                          }
                      }
                       if(count>0)
                      {
                        alert("The required field '"+obj.name+ "' should not contain special characters"); 
                            if (!obj.disabled && obj.type != 'hidden') {
                                checkRequiredShow(obj);
                                obj.focus();
                            }
                        return false;
                      }else{
                      if(obj.name!="b_zipcode" && obj.name!="uname" && obj.name!="phone")
                      {
                               for (var i = 0; i < obj.value.length; i++) 
                                 {
                                 //alert(iChars.indexOf(obj.value.charAt(i)));
                                      if (!isIntegers(obj.value))
                                       {
                                         
                                        count++;
                                      }
                                  }
                                     if(count>0)
                                      {
                                        alert("The required field '"+obj.name+ "' should not contain integers"); 
                                            if (!obj.disabled && obj.type != 'hidden') {
                                                checkRequiredShow(obj);
                                                obj.focus();
                                            }
                                        return false;
                                      }
                      }             
                         
                      
                      }
              }
       
                     
            }
         if(obj.name=="passwd2" || obj.name=="passwd1")
              {
                 var p1=document.getElementById("passwd1").value;
                 if(p1.length<0 || p1.length<=4)
                 {
                 
                    alert("The required field password should be at least 5 characters long"); 
                            if (!obj.disabled && obj.type != 'hidden') {
                                checkRequiredShow(obj);
                                obj.focus();
                            }
                        return false;
                 }else{
                 var p2=document.getElementById("passwd2").value;
                 if(p1!=p2)
                 {
                    alert("Passwords mismatch"); 
                            if (!obj.disabled && obj.type != 'hidden') {
                                checkRequiredShow(obj);
                               document.getElementById("passwd2").focus();
                            }
                        return false;
                 }
                 }
              }
        }
	}

	return true;
} 

/*
	Show hidden element and element's parents
*/
function checkRequiredShow(elm) {
	if (elm.style && elm.style.display == 'none') {

		if (elm.id == 'ship_box' && document.getElementById('ship2diff')) {
			/* Exception for Register page */
			document.getElementById('ship2diff').checked = true;
			document.getElementById('ship2diff').onclick();
			
		} else
			elm.style.display = '';
	}

	if (elm.parentNode)
		checkRequiredShow(elm.parentNode);

}

function isIntegers(s)
{
    var i;
    for (i = 0; i < s.length; i++)
    { 
      
        // Check that current character is not a number.
        var c = s.charAt(i);
       
        if ((c >= "0") && (c <= "9") && (c != ".")) return false;
    }
    // All characters are numbers.
    return true;
}

function isIntegers12(s)
{

   var i;
   var check=0;
    for (i = 0; i < s.length; i++)
    { 
      
        // Check that current character is not a number.
        var c = s.charAt(i);
        if ((c >= "0") && (c <= "9") && (c != "."))
        {
        
        }else{
          check++;
        }
       // alert(check); 
    }
    if(check==0)
    {
    return false;
    }else{
    // All characters are numbers.
    return true;
    }

  
}

