/**
* function check()
*
* check the fields
*/
var captcha_check=false;

function setFocus(el){
   $j(el).addClass("state-highlight").focus();
	setTimeout(function() {$j(el).removeClass("state-highlight", 1500);}, 500);
}

function check(form_element, check) {
  var regNumeric = /^[\-0-9\.]{1,}$/;
  var regEmail   = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  var regUrl     = /(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp):\/\/)|(www\.))*(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(\/[a-zA-Z0-9\&amp;%_\.\/-~-]*)?/;
  var regArray = {"required":"", "numeric":regNumeric, "email":regEmail, "url":regUrl,"min":"","max":"","length_min":"","security_code":""};
  var chBoxArray = new Array();

  form_num = form_element.length; 
  for(i=0; i<form_num; i++) {
    var name = form_element[i].name;
    var value = form_element[i].value;
    var check_name = check[name];
    if(check_name) {
      for(var ck in check_name) {
        if(check_name[ck]) {
          if(!value && ck=="required") {
            jAlert(check_name[ck],"Alert",function(){setFocus(form_element[i])});
            return false;
          }
          else if(ck=="max" && value>parseFloat(check_name[ck])) {
            jAlert("Maximum Value "+ check_name[ck],"Alert",function(){setFocus(form_element[i])});
            return false;
          }
          else if(ck=="min" && value<parseFloat(check_name[ck])) {
            jAlert("Minimum Value "+ check_name[ck],"Alert",function(){setFocus(form_element[i])});
            return false;
          }
          else if(ck=="length_min" && value.length<parseInt(check_name[ck])) {
            jAlert(check_name["required"]+" ("+value.length+")","Alert",function(){setFocus(form_element[i])});
            return false;
          }
          else if(value) {
            if(regCheck = regArray[ck]) {
              if(regCheck.exec(value) == null) {
                jAlert(check_name[ck],"Alert",function(){setFocus(form_element[i])});
                return false;
              }
            }
          }
          
          if(ck == "required" && form_element[i].type=="checkbox" &&  form_element[i].checked==false) {
              jAlert(check_name[ck],"Alert",function(){setFocus(form_element[i])});
              return false;
           }

          if(ck == "required" && form_element[i].type == "radio") {
            j = i; selected = false;
            while(form_element[i].type == "radio" && form_element[i].name == name) {
              if(form_element[i].checked) selected = true;
              i++;
            }
            i--
            if(!selected) {
              jAlert(check_name[ck],"Alert",function(){setFocus(form_element[i])});
              return false;
            }
          }
          
           if (captcha_check && ck == "required" && name=="security_code"){
              //      $j.get("/security_code.php",{product_id:"<?=$product->id?>"},function(data) { });
                rt = false; 
                $j.ajax({
                  async: false,   
                  type: "GET",
                  url: $j(form_element).find("#img_security_code").attr("src"),
                  data:{code:value},
                  success:function(data) { 
                        if (data=="invalid") {
                            reloadSecurityCode($j(form_element).find("#img_security_code"));
                            jAlert(security_code_invalid,"Alert",function(){setFocus(form_element[i])});
                            rt = false;
                        }else{
                            rt = true;
                        }
                    },
                  error: function (data, status, e){jAlert(e,"Error"); captcha_check=false; rt = true;} 
                  }); 
                  return rt;
                   
            }
          
        }
      }
    }
//---  
    pos=name.search(String.fromCharCode(93));
    if (pos>0 ){
        var name_c= name.substr(0, pos-2);
        var check_name = check[name_c];
        if(check_name) {
          for(var ck in check_name) {
            if(check_name[ck]) {
              if(ck=="required") {
                 if (typeof(chBoxArray[name_c])=="undefined") {chBoxArray[name_c] = i;
                 }else{ chBoxArray[name_c]=chBoxArray[name_c]+","+ i;}
              }
            }
          }    
        }
    }
//---    
  }
  for(var ck in chBoxArray) {
    eval("var chBox = new Array("+chBoxArray[ck]+");");
    selected =0; 
    for(var i in chBox) {
        if(form_element[chBox[i]].checked) selected ++;
    }
     if (typeof(check[ck]["check_element"])=="undefined") {n_sel=1;}else{n_sel=check[ck]["check_element"]}
    if(selected<n_sel) {
      jAlert(check[ck]["required"],"Alert",function(){setFocus(form_element[i])});
      return false;
    }
  }
  
  return true;
}


function reloadSecurityCode(el) {
   var src = $j(el).attr("src");
   var date = new Date();
   src = src.replace(/v=(.*?)\&/gi, "v="+date.getTime()+"&");
   $j(el).attr("src", src) ;
   return false;
}



