/*  
 * This script is used by database form to collapse form items into multiple pages
 * and to validate the input values before submitting 
 * an alert box will appear if there is an error in the submission.
 */


/*  
 * Start collapse part of script
 */

//Collapse a single element
function collapseElem(obj){
  var el = document.getElementById(obj);
  el.style.display = 'none';
}

//expand a single element
function expandElem(obj){
  var el = document.getElementById(obj);
  el.style.display = '';
}

// collapse all elements, except the first one
function collapseAll(totnumFormPages){
  for(i=2; i <= totnumFormPages; i++){
   currPageId = ('mainForm_' + i);
   collapseElem(currPageId);
  }
}


/*  
 * End collapse part of script
 */


/*  
 * Start validate part of script
 */

//Validate a form field 
function validateField(fieldId, fieldType, required){
  fieldObj = document.getElementById(fieldId);
  if(fieldType == 'text'  ||  fieldType == 'textarea'  ||  fieldType == 'password'  ||  fieldType == 'file'  ||  fieldType == 'phone'  || fieldType == 'website'){
    if(required == 1 && fieldObj.value == ''){
      fieldObj.setAttribute("class","mainFormError");
      fieldObj.setAttribute("className","mainFormError");
      fieldObj.focus();
      return false;
    }
  }
  else if(fieldType == 'menu'  || fieldType == 'country'  || fieldType == 'state'){
    if(required == 1 && fieldObj.selectedIndex == 0){
      fieldObj.setAttribute("class","mainFormError");
      fieldObj.setAttribute("className","mainFormError");
      fieldObj.focus();
      return false;
    }
  }
  else if(fieldType == 'email'){
    if((required == 1 && fieldObj.value=='')  ||  (fieldObj.value!=''  && !validate_email(fieldObj.value))){
      fieldObj.setAttribute("class","mainFormError");
      fieldObj.setAttribute("className","mainFormError");
      fieldObj.focus();
      return false;
    }
  }
}


//Validate email, i.e. position of @ and dot 
function validate_email(emailStr){
  apos=emailStr.indexOf("@");
  dotpos=emailStr.lastIndexOf(".");
  if (apos<1||dotpos-apos<2){
    return false;
  } else {
    return true;
  }
}



//Validate Date input
function validateDate(fieldId, fieldType, required,  minDateStr, maxDateStr){
  retValue = true;
  fieldObj = document.getElementById(fieldId);
  dateStr = fieldObj.value;
  if(required == 0  && dateStr == ''){
    return true;
  }
  if(dateStr.charAt(2) != '/'  || dateStr.charAt(5) != '/' || dateStr.length != 10){
    retValue = false;
  } else {	// format's okay; check max, min
    currDays = parseInt(dateStr.substr(0,2),10) + parseInt(dateStr.substr(3,2),10)*30  + parseInt(dateStr.substr(6,4),10)*365;
    //alert(currDays);
    if(maxDateStr != ''){
      maxDays = parseInt(maxDateStr.substr(0,2),10) + parseInt(maxDateStr.substr(3,2),10)*30  + parseInt(maxDateStr.substr(6,4),10)*365;
      //alert(maxDays);
      if(currDays > maxDays)
	retValue = false;
    }
    if(minDateStr != '') {
      minDays = parseInt(minDateStr.substr(0,2),10) + parseInt(minDateStr.substr(3,2),10)*30  + parseInt(minDateStr.substr(6,4),10)*365;
      //alert(minDays);
      if(currDays < minDays)
	retValue = false;
    }
  }
  if(retValue == false) {
    fieldObj.setAttribute("class","mainFormError");
    fieldObj.setAttribute("className","mainFormError");
    fieldObj.focus();
    return false;
  }
}





/*  
 * End validate part of script
 */
