<!--
/**
* jumps the browser to the page selectd in the select box
*
* @param object selObj a select form element
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function autoselect(selObj){
	 if(selObj.options[selObj.selectedIndex].value.length > 0){
		eval("document.location='"+selObj.options[selObj.selectedIndex].value+"'");
	 }
  }


/**
* erases form content even if the form came pre-filled (unlike reset button)
*
* @param int formIndex numeric index of the form in the document.forms[] array
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function clearForm(formIndex){
   if(!formIndex){
      formIndex = 0;
   }
   for(i=0; i<document.forms[formIndex].elements.length; i++){
      switch (document.forms[formIndex].elements[i].type){
         case "text":
            document.forms[formIndex].elements[i].value = ''; break;
         case "textarea":
            document.forms[formIndex].elements[i].value = ''; break;
         case "select-one":
            document.forms[formIndex].elements[i].selectedIndex = ''; break;
         case "select-multiple":
            document.forms[formIndex].elements[i].selectedIndex = ''; break;
         case "radio":
            document.forms[formIndex].elements[i].checked = FALSE; break;
         case "checkbox":
            document.forms[formIndex].elements[i].checked = FALSE; break;
      }
   }
}


/**
* toggles an inline div on or off
*
* @param string form element id
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function toggleInlineDiv(element_id) {
  the_div = MM_findObj(element_id);
  if (the_div.style.display == "inline") {
	the_div.style.display = "none";
  } else {
	the_div.style.display = "inline";
  }
}


  /**
  * toggles an image back & forth like a plus/minus or twistdown triangle
  *
  * @param image_id
  * @author peet sasaki <peet@strongsquare.net>
  * @access public
  * @returns
  */
  function toggleImage(image_id) {
     the_image = MM_findObj(image_id);
     if(the_image.src == window.toggle_on_src){
        the_image.src = window.toggle_off_src;
     } else {
        the_image.src = window.toggle_on_src;
     }
  }


/**
*  
*
* @param
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function initToggleImageSrc(on_src,off_src) {
  window.toggle_on_src = on_src;
  window.toggle_off_src = off_src;
}



/**
* requires date format: mm/dd/yyyy
*
* @param string date
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function valiDate(string){
   dateRegexp = new RegExp('^[0-9]{2,2}/[0-9]{2,2}/[0-9]{4,4}$');
   if(!dateRegexp.test(string)){
      return false;
   } else {
      return true;
   }
}

/**
* requires date format: [m]m/[d]d/[yy]yy
*
* @param string date
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function valiDateLoose(string){
   dateRegexp = new RegExp('^[0-9]{1,2}/[0-9]{1,2}/[0-9]{2,4}$');
   if(!dateRegexp.test(string)){
      return false;
   } else {
      return true;
   }
}

/**
* left pads integer to 2 places ('01')
*
* @param int num
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function padDayMonth(num){
   num_string = num.toString();
   if(num_string.length == 1){
      var string = "0"+num;
   } else {
      var string = num;
   }
   return string;
}

/**
* left pads two digit year to 4 digit (assumes century 2000)
*
* @param int num
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function padYear(num){
   if(num.length == 2){
      var string = "20"+num;
   } else {
      var string = num;
   }
   return string;
}

/**
* converts loose date format to strict(er):
*  1/1/04 --> 01/01/2004
*
* @param string form element id
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function dateFix(obj){
   var string = obj.value;
   if(string.length == 0 ){
      return true;
   }
   if(!valiDateLoose(string)){
      alert('Invalid date entry. Please check it.');
      return false;
   }
   var parts = string.split("/");
   obj.value = padDayMonth(parts[0]) +"/"+ padDayMonth(parts[1]) +"/"+ padYear(parts[2]);
}



/**
* removes non-digits, adds decimal
* @param form element object obj
* @author peet sasaki <peet@strongsquare.net>
* @access public
*/
function dollarFix(obj) {
   var string = obj.value;
   var reg = new RegExp('[^0-9]',"g");
   var clean = string.replace(reg,'');
   var len = clean.length;
   obj.value = clean.substr(0,(len-2)) + '.' + clean.substr((len-2));
   return true;
}


/**
*
*
* @param
* @author peet sasaki <peet@strongsquare.net>
* @access public
* @returns
*/
function validateOneCheckboxIsChecked(box_id,form_id) {
   one_checked = false;
   for(i=0; i<document.forms[form_id].elements.length; i++){
	  if(document.forms[form_id].elements[i].name == box_id && document.forms[form_id].elements[i].checked){
		 one_checked = true;
	  }
   }   
   return one_checked;
}


/**
*
*
* @param submit button object
* @author peet sasaki <peet@strongsquare.net>
* @access public
* @returns bool
*/
function disableSubmit(submitbutton) {
   submitbutton.value = 'Please Wait...';
   submitbutton.disabled = true;
   return true;
}

/**
*
* @param submit button object
* @author peet sasaki <peet@strongsquare.net>
* @access public
* @returns bool
*/
function submitOnce(submitbutton) {
   if(submitbutton.form.wassubmitted){
      //alert('You pressed submit already');
      return false;
   } else {
      submitbutton.value = 'Please Wait...';
      submitbutton.form.wassubmitted = true;
      return true;
   }
}

//-->