var showTooltip = false;

function goTo(link,newwin) {
   if (newwin) window.open(link,"new");
   else window.location=link;
}

function FakeTab(frmFld,e) {
   if ( e.keyCode == 13 ) {
      e.preventDefault();
      e.stopPropagation();
      var frm = frmFld.form;
      var i;
      for ( i = 0 ; i < frm.elements.length ; i++ ) {
         if ( frmFld == frm.elements[i] ) break;
      }
      if ( arguments[2] )
	 i = i + arguments[2];
      else
         ++i;
      while ( i < frm.elements.length ) {
	 if ( frm.elements[i].type == 'hidden' || frm.elements[i].type == 'button' || frm.elements[i].type == 'image' || frm.elements[i].tagName == 'FIELDSET' || frm.elements[i].disabled || frm.elements[i].readOnly )
	    ++i;
	 else
	    break;
      }
      frm.elements[i].focus();
      if (typeof(frm.elements[i].select)=='function') frm.elements[i].select();
   }
}

function Popup(link) {
   var width=640;
   var height=480;
   var posx=Math.round(screen.width/2)-(width/2);
   var posy=Math.round(screen.height/2)-(height/2);
   var features='height='+height+',width='+width+',left='+posx+',top='+posy+',scrollbars=1';
   var Pwin=window.open( link , 'newWindow' , features );
   return Pwin;
}

function FormError ( frmFld , msg ) {
   if ( msg != '' )
      alert( msg );
   if (typeof(frmFld.select)=='function')frmFld.select();
   function fieldFocus() {
      frmFld.focus();
   }
   window.setTimeout( fieldFocus , 100 );
}

function valiDate ( inDate , emptyok , type ) {
   if ( arguments.length < 3 ) {
      type = 'mdy';
      if ( arguments.length < 2 )
         emptyok = true;
   }
   if ( !(type == 'mdy' || type == 'dmy' || type == 'ymd') )
      type = 'mdy';

   if ( inDate == '' )
      return ( emptyok ) ? true : false;

   var regExp = /[^0-9]/;
   var da, mo, yr;
   var now = new Date();
   var century = String( now.getFullYear() ).substr( 0 , 2 );

   if ( regExp.test( inDate ) ) {  // delimiters found
      var dateParts = inDate.split( regExp );
      if ( dateParts.length < 2 || dateParts.length > 3 )
         return false;
	   if ( dateParts[0].length > 2 )
	      type = 'ymd';
      switch ( type ) {
      case 'mdy':
         da = dateParts[1];
         mo = dateParts[0];
         yr = (dateParts.length == 3) ? dateParts[2] : String( now.getFullYear() );
         break;
      case 'dmy':
         da = dateParts[0];
         mo = dateParts[1];
         yr = (dateParts.length == 3) ? dateParts[2] : String( now.getFullYear() );
         break;
      case 'ymd':
         da = dateParts[2];
         mo = dateParts[1];
         yr = (dateParts.length == 3) ? dateParts[0] : String( now.getFullYear() );
         break;
      }
   }
   else {  // no delimiters, parse accordingly
      if ( inDate.length != 4 && inDate.length != 6 && inDate.length != 8 ) return false;
      switch ( type ) {
      case 'mdy':
         da = inDate.substr( 2 , 2 );
         mo = inDate.substr( 0 , 2 );
         yr = (inDate.length > 4) ? inDate.substr( 4 ) : String( now.getFullYear() );
         break;
      case 'dmy':
         da = inDate.substr( 0 , 2 );
         mo = inDate.substr( 2 , 2 );
         yr = (inDate.length > 4) ? inDate.substr( 4 ) : String( now.getFullYear() );
         break;
      case 'ymd':
         switch ( inDate.length ) {
         case 4:
            mo = inDate.substr( 0 , 2 );
            da = inDate.substr( 2 , 2 );
            yr = String( now.getFullYear() );
            break;
         case 6:
            da = inDate.substr( 4 , 2 );
            mo = inDate.substr( 2 , 2 );
            yr = century + inDate.substr( 0 , 2 );
            break;
         case 8:
            da = inDate.substr( 6 , 2 );
            mo = inDate.substr( 4 , 2 );
            yr = inDate.substr( 0 , 4 );
            break;
         default:
            return false;
         }
      } // end switch
   } // end if/else

   // do some error checking
   var moI = parseInt(mo,10);
   var daI = parseInt(da,10);
   var yrI = parseInt(((yr.length==2)?century+yr:yr),10);
   if ( isNaN(daI) || daI < 1 || daI > 31 ) return false;
   if ( isNaN(moI) || moI < 1 || moI > 12 ) return false;
   if ( (yrI%4) == 0 ) {
      if ( moI == 2 && daI > 29 ) return false;
   }
   else {
      if ( moI == 2 && daI > 28 ) return false;
   }
   if ( moI == 4 || moI == 6 || moI == 9 || moI == 11 ) {
      if ( daI > 30 ) return false;
   }
   if ( isNaN(parseInt(yr)) || yr.length != 2 && yr.length != 4 ) return false;

   // fill in missing digits
   da = (da.length == 1) ? '0'+da : da;
   mo = (mo.length == 1) ? '0'+mo : mo;
   yr = (yr.length == 2) ? century + yr : yr;

   return yr + '-' + mo + '-' + da;
}

function SwitchName(n) {
   if ( n.indexOf('/') != -1 ) {
      var ns = n.split('/');
      return ns[1]+' '+ns[0];
   }
   else
      return n;
}

function tooltip( text ) {
    document.getElementById('tooltip').innerHTML = text;
    showTooltip = true;
}
function positiontip( e ) {
    if ( showTooltip ) {
	var tt = document.getElementById('tooltip');
	tt.style.left = e.pageX - 60 + "px";
	tt.style.top = e.pageY + 20 + "px";
	tt.style.visibility = "visible";
    }
}
function hidetip() {
    showTooltip = false;
    var tt = document.getElementById('tooltip');
    tt.style.visibility = "hidden";
    tt.style.left = "-1000px";
}
