/**
* function check()
*
* check the fields
*/
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};
  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') {
            alert(check_name[ck]);
            form_element[i].focus();
            return false;
          }
          else if(value) {
            if(regCheck = regArray[ck]) {
              if(regCheck.exec(value) == null) {
                alert(check_name[ck]);
                form_element[i].focus();
                return false;
              }
            }
          }
          if(ck == 'required' && form_element[i].type=='checkbox' &&  form_element[i].checked==false) {
              alert(check_name[ck]);
              form_element[i].focus();
              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) {
              alert(check_name[ck]);
              form_element[j].focus();
              return false;
            }
          }
        }
      }
    }
//---  
    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) {
      alert(check[ck]['required']);
      form_element[chBox[i]].focus();
      return false;
    }
  }
  
  return true;
}

