
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

function initOverLabels () {
  if (!document.getElementById) return;  	

  var labels, id, field;

  // Set focus and blur handlers to hide and show 
  // LABELs with 'overlabel' class names.
  labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
	
    if (labels[i].className == 'overlabel') {

      // Skip labels that do not have a named association
      // with another field.
      id = labels[i].htmlFor || labels[i].getAttribute('for');
      if (!id || !(field = document.getElementById(id))) {
        continue;
      }

      // Change the applied class to hover the label 
      // over the form field.
      labels[i].className = 'overlabel-apply';

      // Hide any fields having an initial value.
      if (field.value !== '') {
        hideLabel(field.getAttribute('id'), true);
      }

      // Set handlers to show and hide labels.
      field.onfocus = function () {
        hideLabel(this.getAttribute('id'), true);
      };
      field.onblur = function () {
        if (this.value === '') {
          hideLabel(this.getAttribute('id'), false);
        }
      };

      // Handle clicks to LABEL elements (for Safari).
      labels[i].onclick = function () {
        var id, field;
        id = this.getAttribute('for');
        if (id && (field = document.getElementById(id))) {
          field.focus();
        }
      };

    }
  }
};

function hideLabel (field_id, hide) {
  var field_for;
  var labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    field_for = labels[i].htmlFor || labels[i].getAttribute('for');
    if (field_for == field_id) {
      labels[i].style.textIndent = (hide) ? '-5000px' : '0px';
      return true;
    }
  }
}

window.onload = function () {
  setTimeout(initOverLabels, 50);
};

function calcDate(frmDate)
   {
   //checks for a valid date
   if (validateDate(frmDate.cboday, frmDate.cbomonth, frmDate.cboyear) == false)
      {
      frmDate.txtdate.value = "";
      alert("Invalid Date" + "\n" + "Please Check!");
      }
   else
      {
      //if all 3 dropdowns aren't "- -" then populate txtdate textbox
      if (frmDate.cboday.selectedIndex != 0 && frmDate.cbomonth.selectedIndex != 0
        && frmDate.cboyear.selectedIndex != 0)
         {
         frmDate.txtdate.value = frmDate.cboday.value + "/" + 
           frmDate.cbomonth.value + "/" + frmDate.cboyear.value;
         }
      else
         {
         frmDate.txtdate.value = "";
         }
      }
   }		

function validateDate(day, month, year)
   //check correct number of day for given month/year
   {
   if (day.selectedIndex != 0 && month.selectedIndex != 0 
     && year.selectedIndex != 0)
      {
      switch(month.value) 
         {
         case "02" :
            //February
            if (year.value == Math.round(year.value / 4) * 4)
	       //leap year
	       {
	       if (day.value > 29)
                  {
                  return false;
                  }
               }
            else
               {
               //non-leap year
               if (day.value > 28)
                  {
                  return false;
                  }
               }
               break;	
         case "04" :
            //April
            if (day.value > 30)
               {
               return false;
               }	
               break;
         case "06":
            //June
            if (day.value > 30)
               {
               return false;
               }	
               break;		
         case "09":
            //September
            if (day.value > 30)
               {
               return false;
               }	
               break;
         case "11":
            //November
            if (day.value > 30)
               {
               return false;
               }	
               break;
         default:
            //date is valid
            return true;
            break;
         }
      }
   }
   
function copy(text2copy) {
  if (window.clipboardData) {
    window.clipboardData.setData("Text",text2copy);
  } else {
    var flashcopier = 'flashcopier';
    if(!document.getElementById(flashcopier)) {
      var divholder = document.createElement('div');
      divholder.id = flashcopier;
      document.body.appendChild(divholder);
    }
    document.getElementById(flashcopier).innerHTML = '';
    var divinfo = '<embed src="_clipboard.swf" FlashVars="clipboard='+escape(text2copy)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
    document.getElementById(flashcopier).innerHTML = divinfo;
  }
}

