function di(elem){
  return document.getElementById(elem);
}

function initForm(formName){
  var myForm = di(formName);
  myForm.input_list = new Array();
  myForm.init = true;
}

function addInput(formName,input,isRequired,style,extraCond,isSpan,emptyValue,titleClass){
  var myForm = di(formName);
  if(!myForm.init){
    initForm(myForm);
  }
  
  var myInput = di(input);
  if(isRequired){
    myForm.input_list.push(myInput);
  }
  myInput.myStyle=style;
  if(myInput.className&&myInput.className!=''){
    myInput.className+=' '+style;
  }else{
    myInput.className=style;
  }
  
  if(style=='text' || style=='textarea'){
    myInput.myCond="elem && (elem.style.display!='none') && (elem.value=='' || elem.value==elem.emptyValue)";
  }else if(style=='select'){
    myInput.myCond="elem && (elem.style.display!='none') && (elem.value=='"+input+"_none' || elem.value==elem.emptyValue)";
  }else{
    myInput.myCond="";
  }

  if(extraCond && extraCond!=''){
    if(myInput.myCond!=""){
      myInput.myCond+=" && ";
    } 
    myInput.myCond+="("+extraCond+")";
  }
  
  myInput.extraTest = function(){return true;};
  
  if(emptyValue){
    myInput.emptyValue = emptyValue;
  } else {
    myInput.emptyValue = '';
  } 
  
  myInput.titleDiv = di('title_'+input);
  if(myInput.titleDiv){
    myInput.titleDiv.inputClassName='title_text';
    if(isSpan){
      myInput.titleDiv.inputClassName+='_span';
    }
    if(myInput.titleDiv.className&&myInput.titleDiv.className!=''){
      myInput.titleDiv.className+=' '+myInput.titleDiv.inputClassName;
    }else{
      myInput.titleDiv.className=myInput.titleDiv.inputClassName;
    }
    if(titleClass && titleClass!=''){
      myInput.titleDiv.className+=' '+titleClass;
    }
    myInput.titleDiv.originClass=myInput.titleDiv.className;
  }
  myInput.starDiv = di('star_'+input);
}

function highlightInput(elem){
  if(elem.titleDiv){
    elem.titleDiv.className='required '+elem.titleDiv.inputClassName;
  }
  if(elem.starDiv){
    elem.starDiv.className='required';
  }
  if(elem.backClassName==null){
    elem.backClassName=elem.className;
  }
  elem.className='input_required';
}

function normalInput(elem){
  if(elem.titleDiv){
    elem.titleDiv.className=elem.titleDiv.originClass;
  }
  if(elem.starDiv){
    elem.starDiv.className='';
  }
  if(elem.backClassName!=null){
    elem.className=elem.backClassName;
  }
 }

function checkRequired(formName){
  var myForm = di(formName);
  if(!myForm.init){
    initForm(myForm);
  }
  
  var return_result=true;
  di('error_div').style.display='none';
  di('error_div_out').style.display='none';
  var len_i=myForm.input_list.length;
  for(var i=0; i<len_i; i++) {      
    var elem = myForm.input_list[i];
    if(elem.myCond && eval(elem.myCond)){
      highlightInput(elem);
      return_result=false;
    }else{
      normalInput(elem);
    }
    if(elem.emptyValue!=''){
      elem.blurBackClassName=null;
      inputBlur(elem);
    }
  }
  var extra = extraCheck();
  if(extra==0){
    return_result=false;
  }else if (extra==2){
    return false;
  }
  if(!return_result){
    di('error_div').style.display='';
    di('error_div_out').style.display='';
    window.scroll(0,getY(di('error_div'))-5);
  }
  return return_result;
}



