sfHover = function () {
    var sfEls = document.getElementById("nav").getElementsByTagName("LI");
    for (var i = 0; i < sfEls.length; i++) {
        sfEls[i].onmouseover = function () {
            this.className += "sfhover";
        }
        sfEls[i].onmouseout = function () {
            this.className = this.className.replace(new RegExp(" sfhover\\b"), "");
        }
    }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

function init() {
	//addRollovers( Array() ,getRollSrc);
	PopUpSafe(document.getElementsByTagName('a'));
	InitNavMenu();
	initFlash();
}
addEvent(window,'load',init);

//function initFlash() {
//	if ( !document.getElementById || typeof(FlashObject) == 'undefined' || Cookies.read('stopFlash') == "1" )  return;
//	myFlash = new FlashObject("/images/mp/mlra_main_flash_map.swf", "flash_map", "179", "184", 6.0, "#EAF5DE");
//	myFlash.addParam("wmode","transparent");
//	myFlash.write("fl_map");
//	Cookies.add('stopFlash',1);
//}

function PopUpSafe(els) {
	if (!els) return;
	for (var i = 0; i < els.length; i++) {
		var r = els[i].rel;
		if (r.indexOf(':') >= 0) {
			els[i].onclick = function() { args = this.rel.split(':'); return PopWin(this.href,args[0],args[1],args[2]); }
		}
		else if ( r.search(/(external)|(GIS)/) > -1 ) {
			els[i].onclick = function() { return PopWin(this.href,this.rel.replace('external','')); }
		}
	}
}// PopUpSafe()

//ROLLOVER RELATED
///////////////////////////
function Rollovers(idArr,func) {
	var imgs, a;
	if (!func) func = getRollSrc;
	if (!document.images) return;

	for (i = 0; i < idArr.length; i++) {
		imgs = getObj(idArr[i]);
		if (!imgs) continue;
		out[ idArr[i] ] = new Image();
		over[ idArr[i] ] = new Image();
		out[ idArr[i] ].src = imgs.src;
		over[ idArr[i] ].src = func(imgs.src,1);
		a = imgs.parentNode;
		if ((a && a.tagName.toLowerCase() == 'a') ){
			a.onmouseover = function() { this.childNodes[0].src = over[this.childNodes[0].id].src; }
			a.onmouseout = function() { this.childNodes[0].src = out[this.childNodes[0].id].src;  }
			a.onfocus = function() { this.childNodes[0].src = over[this.childNodes[0].id].src; }
			a.onblur = function() { this.childNodes[0].src = out[this.childNodes[0].id].src; }
		}
		else if (imgs.tagName.toLowerCase() == 'input') {
			imgs.onmouseover = function() { this.src = over[this.id].src; }
			imgs.onmouseout = function() { this.src = out[this.id].src; }
		}
	}
}
function getRollSrc(src, hover) { return (hover) ? src.replace(/a.(gif|jpg)/,"b.$1") : src.replace(/b.(gif|jpg)/,"a.$1"); }

//DROPDOWNS RELATED
///////////////////////////
function InitNavMenu() {
	var mn = document.getElementById('mainnav');
	var oldIE = (document.all && getIEVersion() < 7)
	if (!mn) return;
	
	var uls = mn.getElementsByTagName('ul');
	
	var fn_a = function() { this.navMenu.onactivate(); }
	var fn_d = function() { this.navMenu.ondeactivate(); }
	if (oldIE)	{
		fn_a = IEactive;
		fn_d = IEinactive;
	}
	for (var i = 0; i < uls.length; i++ ){
		setOpacity(uls[i],90);
		uls[i].parentNode.navMenu = uls[i];
		uls[i]["onactivate"] = setLyr;
		uls[i]["ondeactivate"] = unsetLyr;
		uls[i].parentNode.onmouseover = fn_a;
		uls[i].parentNode.onmouseout = fn_d;
		uls[i].activator = getActivator(uls[i]);
		if ( oldIE ) {
			if (uls[i].parentNode.id == '') {
			uls[i].onmouseover = function() { if(this.activator) jscss('add',this.navMenu,"chsel"); };
			uls[i].onmouseout = function() { if(this.activator) jscss('add',this.navMenu,"chsel");  };
			}
		}
	}
}

function setLyr() {
	//put dropdown activation code here
}
function unsetLyr() {
	//put dropdown deactivation code here
}

function IEactive() { jscss('add',this,"IEhover"); jscss('add',this.navMenu,"ddesc"); this.navMenu.onactivate(); }
function IEinactive() { jscss('remove',this,"IEhover"); jscss('remove',this.navMenu,"ddesc"); this.navMenu.ondeactivate(); }
function getActivator(n) {
	while(n.previousSibling ) {
		n = n.previousSibling;
		if( n.nodeName == "A" ) { return n; }
	}
	return null;
}

//GENERAL PURPOSE FUNCTIONS
///////////////////////////
var wini; //Reference to a window
function PopWin(url, name, width, height) {
	var s;
	if (width || height) {
		h = (height) ? height : 600;
		w = (width) ? width : 800;
		lp = (screen.width) ? (screen.width-w)/2 : 0;
		tp = (screen.height) ? (screen.height-h)/2 : 0;
		sc = 'yes';
		s = 'height='+ h +',width='+ w +',top='+tp+',left='+lp+',scrollbars='+sc+',resizable';
	}
	else if ( name=='GIS')
		s = 'scrollbars=yes,toolbars=no,resizable';
	else s = '';
	wini = window.open(url,name,s);
	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(objId) {
	var els = new Array();
	for (var i=0,el; el=arguments[i]; i++) {
	if (typeof el == 'string')
		el = document.getElementById(el);
	if (arguments.length == 1) 
		return el;
	els.push(el);
	}
	return els;
}

function findObjPos(obj){
	var curtop = 0;
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y && obj.x) {
		curtop += obj.y;
		curleft += obj.x;
	}
	var t = new Object();
	t.dx = curleft;
	t.dy = curtop;
	return t;
}


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);
    }
  }
}

// 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;
  }
}

// COOKIE HANDLER
//////////////////////////////
var Cookies = {
	add : function(name, value, days) {
		var expires = "";
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			expires = "; expires="+date.toGMTString();
		}
		document.cookie = name+"="+value+expires+"; path=/";
	},
	read : function (name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
	},
	remove : function(name) { this.add(name,"",-1); }
}

// FUNCTIONS NEEDED FOR VARIOUS DETECTIONS
///////////////////////////////////////////
function getIEVersion() {
  var rv = -1;
  if (navigator.appName == 'Microsoft Internet Explorer') {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

function getFlashVersion() {
	var flashversion = 0;
	if (navigator.plugins && navigator.mimeTypes.length) {
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			var y = x.description;
   			flashversion = y.charAt(y.indexOf('.')-1);
		}
	} else {
		result = false;
	    for(var i = 15; i >= 3 && result != true; i--){
   			execScript('on error resume next: result = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.'+i+'"))','VBScript');
   			flashversion = i;
   		}
	}
	return flashversion;
}
function detectFlash(ver) { return (getFlashVersion() >= ver) ? true:false; }

jscss('add',document.getElementsByTagName('html')[0],'hasScript');
if ( detectFlash(6) && Cookies.read('stopFlash') != "1") jscss('add',document.getElementsByTagName('html')[0],'hasFlash');
