document.getElementsByTagName('html')[0].className = 'hasScript';
//ROLLOVER RELATED
///////////////////////////
var over = new Array();
var out = new Array();
function addRollovers(idArr) {
	var imgs, a;

	if (!document.images) return;

	for (i = 0; i < idArr.length; i++) {
		imgs = getObj(idArr[i]);
		if (!imgs) continue;
		a = imgs.parentNode;
		if (a && a.tagName == 'A'){
			over[i] = new Image();
			out[i] = new Image();
			over[i].src = getRollSrc(imgs.src,"gif",1);
			out[i].src = imgs.src;
			imgs.setAttribute('ro_index',i);
			a.onmouseover = function() { this.childNodes[0].src = over[this.childNodes[0].getAttribute('ro_index')].src; }
			a.onfocus = function() { this.childNodes[0].src = over[this.childNodes[0].getAttribute('ro_index')].src; }
			a.onmouseout = function() { this.childNodes[0].src = out[this.childNodes[0].getAttribute('ro_index')].src; }
			a.onblur = function() { this.childNodes[0].src = out[this.childNodes[0].getAttribute('ro_index')].src; }
		}
	}
}
function getRollSrc(src, ext, hover) {
	return (hover) ? src.replace("a."+ext,"b."+ext) : src.replace("b."+ext,"a."+ext);
}


//GENERAL PURPOSE FUNCTIONS
///////////////////////////

var wini; //Reference to a window
function PopWin(url, name, width, height) {
	h = (height) ? height : 500;
	w = (width) ? width : 600;
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings =  'height='+ h +',width='+ w +',top='+TopPosition+',left='+LeftPosition+',scrollbars=yes,resizable';
	wini = window.open(url,name,settings);
	if (wini) wini.focus();
	return ( !wini )
}// PopWin()

function addEvent(obj,evType,fn){
	if(obj.addEventListener){
		obj.addEventListener(evType,fn,false);
	}
	else if(obj.attachEvent){
		var r=obj.attachEvent("on"+evType,fn);
	}
	else{
		if ( typeof( obj['on'+evType] ) == 'function' ) {
			var last = obj['on'+evType] ;
			obj['on'+evType] = null;
			obj['on'+evType] = function() { last(); fn(); };
		}
		else obj['on'+evType] = fn;
	}
}

function getObj() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    if (arguments.length == 1) 
      return element;

    elements.push(element);
  }
  return elements;
}

//****************************
//** FROM: somewhere. Seen these functions elsewhere too many times to properly credit
//***************************
function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
}

function fadeIn(objId,opacity) {
  if (document.getElementById) {
    obj = document.getElementById(objId);
    if (opacity <= 100) {
      setOpacity(obj, opacity);
      opacity += 10;
      window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
    }
  }
}

function hideAll(r,f) {
	if (!r) return false;
	var dls = r.getElementsByTagName("li");
	
	for(i = 0; i < dls.length; i++)
	{
		if (dls[i].parentNode == r) {
			dts = dls[i].getElementsByTagName("a");
			for(var j=0;j < dts.length; j++){
				if( dts[j].parentNode == dls[i] ) {
					if(f && location.href.indexOf(dts[j].href) >= 0){ startOpenObj = dls[i]; dts[j].onclick = function() { showAll (this.parentNode); return false; }; }
					if( !jscss('check',dts[j],'closed') && !jscss('check',dts[j],'open') ) { jscss ('add',dts[j],'closed'); }
				}
			}
			dds = dls[i].getElementsByTagName("ul");
			for(var j=0;j < dds.length; j++) {
				dds[j].style.display = "none";
			}
		}
	}
}

function showAll (obj) {
	if (!obj) return false;
	dt = obj.getElementsByTagName("a")[0];

	if(!jscss('check',dt,'open')){
		cl1 = "open";
		cl2 = "closed";
		b = "block";
	}
	else {
		cl1 = "closed";
		cl2 = "open";
		b = "none";
	}
	hideAll(obj.parentNode,false);
	jscss('swap',dt,cl1,cl2);
	dd = obj.getElementsByTagName("ul");
	for(var j=0;j < dd.length; j++) {
		dd[j].style.display = b;
	}
}

// found at http://www.onlinetools.org/articles/unobtrusivejavascript/cssjsseparation.html
function jscss(a,o,c1,c2)
{
  switch (a){
    case 'swap':
      o.className=!jscss('check',o,c1)?o.className.replace(c2,c1): o.className.replace(c1,c2);
    break;
    case 'add':
      if(!jscss('check',o,c1)){o.className+=o.className?' '+c1:c1;}
    break;
    case 'remove':
      var rep=o.className.match(' '+c1)?' '+c1:c1;
      o.className=o.className.replace(rep,'');
    break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(o.className)
    break;
  }
}

