/* 
 *  Sliding Divs
 */
var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
  if(moving[objname])
    return;
 
  if(document.getElementById(objname).style.display != "none")
    return; // cannot slide down something that is already visible
 
  moving[objname] = true;
  dir[objname] = "down";
  startslide(objname);
}
 
function slideup(objname){
  if(moving[objname])
    return;
 
  if(document.getElementById(objname).style.display == "none")
    return; // cannot slide up something that is already hidden
 
  moving[objname] = true;
  dir[objname] = "up";
  startslide(objname);
}

function startslide(objname){
  obj[objname] = document.getElementById(objname);
 
  endHeight[objname] = parseInt(obj[objname].style.height);
  startTime[objname] = (new Date()).getTime();
 
  if(dir[objname] == "down"){
    obj[objname].style.height = "1px";
  }
 
  obj[objname].style.display = "block";
 
  timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);

}
function slidetick(objname){
  var elapsed = (new Date()).getTime() - startTime[objname];
 
  if (elapsed > slideAniLen)
    endSlide(objname)
  else {
    var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
    if(dir[objname] == "up")
      d = endHeight[objname] - d;
 
    obj[objname].style.height = d + "px";
  }
 
  return;
}

function endSlide(objname){
  clearInterval(timerID[objname]);
 
  if(dir[objname] == "up")
    obj[objname].style.display = "none";
 
  obj[objname].style.height = endHeight[objname] + "px";
 
  delete(moving[objname]);
  delete(timerID[objname]);
  delete(startTime[objname]);
  delete(endHeight[objname]);
  delete(obj[objname]);
  delete(dir[objname]);
 
  return;
}

function slideupordown(objname){
	if(document.getElementById(objname).style.display != "none"){
        slideup(objname);
		return;
	} else {
        slidedown(objname);
	}
    return; // cannot slide down something that is already visible

}

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() { //v4.0
  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.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\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 = errors + '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
function MM_validateForm2() { //modified to highlight required fields
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm2.arguments, oldstyle='1px solid c9c7ba', newstyle='3px solid #FF0000';
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
  //reset the border
  document.getElementById(args[i]).style.border=oldstyle;
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { 
		p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) { errors+='- '+nm+' must contain an e-mail address.\n'; document.getElementById(args[i]).style.border = newstyle; }
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) {errors+='- '+nm+' must contain a number.\n'; document.getElementById(args[i]).style.border = newstyle; }
        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'; MM_findObj(args[i]).style.border = newstyle; }
    } } } else if (test.charAt(0) == 'R') {errors += '- '+nm+' is required.\n'; document.getElementById(args[i]).style.border = newstyle;} }

  } if (errors) {
	//alert('The following error(s) occurred:\n'+errors);
	document.getElementById('errorTextDiv').innerHTML="Please complete the highlighted fields.";
    }

  document.MM_returnValue = (errors == '');

}

function rollOverSm(cell)
{
	cell.style.backgroundImage = 'url(images/nav_sm_on.jpg)';
	cell.style.cursor = 'hand';
}
function rollOutSm(cell)
{
	cell.style.backgroundImage = 'url(images/nav_sm_off.jpg)';
}