 //**************swap image*******************
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
 //**************image restore*******************
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
 //**************preload images*******************
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
 //**************layer swap*******************
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //isEmail changed, isPhoneNum tests for phone numbers
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=(val+' ').search(/[\w\.-]+@([\w-]+\.){1,3}[a-zA-Z]{2,}\s{1}/);
        if (p!=0) errors+='- '+nm+' must contain an e-mail address in abc@def.com format.\n';
	  } else if (test.indexOf('isPhone')!=-1) { p=(val+' ').search(/\d{3}-\d{3}-\d{4}\s{1}/);
	    if (p!=0) errors+='- '+nm+' must contain a valid phone number in 123-555-1212 format.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is a required field.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}


/*
Roughly derived from htmldog's suckerfish dropdowns:
http://www.htmldog.com/articles/suckerfish/example/

I've added a slight delay to prevent flicker.  
Simple idea: close in a few seconds, if in the meantime the
close hasn't been cancelled (in cancel_off) by hovering
on a link within the drop-down in question.
*/
var menu_objs=[];
var cancel_off=[];
function dropdown_on(obj_index)
{ 
  if (menu_objs.length>obj_index) 
  {
    var obj = menu_objs[obj_index];
    cancel_off[obj_index]=true;
    if (!obj || obj.className.indexOf("over")>=0) return;
    obj.className="over";
  }
}
function dropdown_off(obj_index)
{
  if (menu_objs.length>obj_index) 
  {
    var obj = menu_objs[obj_index];
    if (!obj || obj.className.indexOf("over")<0) return;
    if (!cancel_off[obj_index]) 
       obj.className="";//obj.className.replace(" over", "");
  }
}
function delay_dropdown_off(obj_index,wait)
{
  if (cancel_off.length>obj_index) 
  {
    cancel_off[obj_index]=false;
    setTimeout("dropdown_off("+obj_index+");",wait);
  }
}
function dropdown_init() 
{
  var ulnodes,linodes,nav_root,node,subnode,subsubnode;
  if (document.getElementById && document.getElementsByTagName) 
  {
    nav_root = document.getElementById("navigation-bar");
    if (nav_root==null) return;
    linodes = nav_root.getElementsByTagName("LI");
    for (var i=0; i<linodes.length; i++) 
    {
      node = linodes[i];
      menu_objs[i]=node;
      if (node.id=="") continue;
      ulnodes=node.getElementsByTagName("UL");
      if (ulnodes.length<=0) continue; //--dont bother if no subelements

      myfun=new Function("dropdown_on("+i+");");
      node.onmouseover=myfun;
      myfun=new Function("delay_dropdown_off("+i+",100);");
      node.onmouseout=myfun;
    }
  }
}







window.onload=function()
{
  MM_preloadImages(  //--preload any mouseover images to prevent weird gap
'images/footer_text2_on.gif'
  );
  dropdown_init();
}


 //**************window open*******************
 function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}



//**************fixed positioning for IE*******************

if (typeof(scroll_ie) != 'undefined') {

window.onscroll = window_onscroll;
function window_onscroll(){
  var el = document.getElementById('fixed');
  if (el != null) {
	  if(typeof(document.media)=='string')
	  {// only do this for ie
	    var s;
	    // scrolling offset calculation via www.quirksmode.org 
	    if (self.pageYOffset){s = self.pageYOffset;}
	    else if (document.documentElement && 
	      document.documentElement.scrollTop) {     
	        s = document.documentElement.scrollTop; }
	    else if (document.body) {   s = document.body.scrollTop; }
	    el.style.top= s;
	  }
  }
}

}


