<!--
/**
* 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){
  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(element){
   var string = element.value;
   if(string.length == 0 ){
      return true;
   }
   if(!valiDateLoose(string)){
      alert('Invalid date entry. Please check it.');
      return false;
   }
   var parts = string.split("/");
   element.value = padDayMonth(parts[0]) +"/"+ padDayMonth(parts[1]) +"/"+ padYear(parts[2]);
}


//-->