//Style Sheet Switcher version 1.0 Nov 9th, 2005 update: Feb 14th, 2006
//Author: Dynamic Drive: http://www.dynamicdrive.com
//Updated/Editied: State of Michigan - Center for Geographic Information http://www.michigan.gov/cgi
//Usage terms: http://www.dynamicdrive.com/notice.htm

window.onresize=function(){
 if (hideOnload != true) {
  layoutScript(stysheet);
  if (document.getElementById("frmMain").switchDisplay.src.indexOf("default") > 0) { 
	if (m_sClientBrowserType == 'IE') {
  	  xtime = 2
	  setTimer()
	} else {
	  myMap.setExtent()
	  fnUpdateAcetateSize();
	  //fnScrollerStartup(false);
	  fnClearSelection();
	  fnHideDHTML();
	} 
  }else {
	fnUpdateAcetateSize();
	fnClearSelection();
	fnHideDHTML();
  }
 }
}

function setTimer() {
  var y = 1;
  xtime = xtime - y
  timerID = setTimeout('setTimer()',1000)
  if (xtime == 0) {
	myMap.setExtent()
	fnUpdateAcetateSize();
	//fnScrollerStartup(false);
	fnClearSelection();
	fnHideDHTML();
  } else {if (xtime < 0) {
	clearTimeout(timerID)
	return;
  };}
}

window.onload=function(){
hideOnload = true
var formref=document.getElementById("frmMain")
indicateSelected(formref.switchDisplay)
layoutScript(stysheet);
fnGetBrowser(); //get the browser type
fnGetObjects(); //set js vars to objects
//fnScrollerStartup(false); //sets the custom scrollbar properties
menu_load(); //sets the left hand menu system
fnStartUp(); //initial application and map
createhintbox(); // creates definition hintbox divs
//fnButtonDivSetup();  //sets up the positioning of the buffer button div
fnClearControls(); //required for browser refresh in MOZ/gecko based browsers
}

function chgImageDownDisplay(x){
	if (x.src.indexOf("default") > 0) {
	  x.src = "images/default_down.gif"
	} else {
	  x.src = "images/fullscreen_down.gif"
	}
}

function chgImageOverDisplay(x){
	if (x.src.indexOf("default") > 0) {
		x.src = "images/default_over.gif"
	} else {
		x.src = "images/fullscreen_over.gif"
	}
}

function chgImageOutDisplay(x) {
	if (x.src.indexOf("default") > 0) {
		x.src = "images/default.gif"
	} else {
		x.src = "images/fullscreen.gif"
	}
}

function setImage(x) {
  var formref=document.getElementById("frmMain")
  if (x == "d") {
	formref.switchDisplay.src = "images/default.gif"
  } else {
	formref.switchDisplay.src = "images/fullscreen.gif"
  }
}

function getCookie(Name) { 
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return null
}

function setCookie(name, value, days) {
var expireDate = new Date()
//set "expstring" to either future or past date, to set or delete cookie, respectively
var expstring=(typeof days!="undefined")? expireDate.setDate(expireDate.getDate()+parseInt(days)) : expireDate.setDate(expireDate.getDate()-5)
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/";
}

function deleteCookie(name){
setCookie(name, "moot")
}

function setStylesheet(title) {
var i, cacheobj
for(i=0; (cacheobj=document.getElementsByTagName("link")[i]); i++) {
if(cacheobj.getAttribute("rel").indexOf("alternate") != -1 && cacheobj.getAttribute("title")) {
cacheobj.disabled = true
if(cacheobj.getAttribute("title") == title)
cacheobj.disabled = false //enable chosen style sheet
}
}
}

function chooseStyle(styletitle, days){
if (document.getElementById){
  if (styletitle.src.indexOf("fullscreen") > 0) {
	styletitle = "expander"
	setImage("d");
  } else {
	styletitle = "none"
	setImage("e");
  }
setStylesheet(styletitle)
stysheet = styletitle
setCookie("mysheet", styletitle, days)
layoutScript(styletitle)
myMap.setExtent()
fnUpdateAcetateSize();
//fnScrollerStartup(false);
fnClearSelection();
}
}


function indicateSelected(element){ //Optional function that shows which style sheet is currently selected within group of radio buttons or select menu 
var i
if (selectedtitle!=null && (element.type==undefined || element.type=="select-one")){ //if element is a radio button or select menu
	stysheet = selectedtitle
	if (stysheet=='none') {
	  setImage("e")
	} else { if (stysheet == 'expander') {
	  setImage("d")
	};} 
} else {stysheet = 'none';}
}

//copied for back as changing to use button instead of radio or select combo box
/*
function indicateSelected(element){ //Optional function that shows which style sheet is currently selected within group of radio buttons or select menu 
var i
if (selectedtitle!=null && (element.type==undefined || element.type=="select-one")){ //if element is a radio button or select menu
	stysheet = selectedtitle
	var element=(element.type=="select-one") ? element.options : element
	for (i=0; i<element.length; i++){
		if (element[i].value==selectedtitle){ //if match found between form element value and cookie value
			if (element[i].tagName=="OPTION") //if this is a select menu
				element[i].selected=true
			else //else if it's a radio button
				element[i].checked=true
	break
}
}
} else {stysheet = 'none';}
}
*/

var selectedtitle=getCookie("mysheet")
if (document.getElementById && selectedtitle!=null) //load user chosen style sheet if there is one stored
setStylesheet(selectedtitle)

function layoutScript(sheet) {
var mc = document.getElementById('maincontainer');
var head = document.getElementById('header');
var nav = document.getElementById('navigation');
var ahead = document.getElementById('appheader');
var c = document.getElementById('content');
var mapc = document.getElementById('mapcontent');
var sc = document.getElementById('sidecontent');
//var scrollc = document.getElementById('scrollarea')
var scm = document.getElementById('sidecontentmiddle');
var mimage = document.getElementById('map_image');
var mtool = document.getElementById('maptools');
var btool = document.getElementById('basetools');
var map = document.getElementById('mMap');
var bnav = document.getElementById('bottomlinks');


//css style sheet dependant renderings (*required because of limitations in IE rendering
  if (sheet == 'expander') {
  var mcH = getSizeHeight()
	c.style.height = (mcH - (head.offsetHeight + nav.offsetHeight + ahead.offsetHeight + bnav.offsetHeight)) + 'px';
	sc.style.height = (mcH - (head.offsetHeight + nav.offsetHeight + ahead.offsetHeight + bnav.offsetHeight)) + 'px';
	//scrollc.style.height = (mcH - (head.offsetHeight + nav.offsetHeight + ahead.offsetHeight + bnav.offsetHeight)) + 'px';
	scm.style.height = (mcH - (head.offsetHeight + nav.offsetHeight + ahead.offsetHeight + bnav.offsetHeight) - 2) + 'px';
	mapc.style.width = c.offsetWidth - (sc.offsetWidth) + 'px';
	mapc.style.height = (mcH - (head.offsetHeight + nav.offsetHeight + ahead.offsetHeight + bnav.offsetHeight)) + 'px';
	mimage.style.height = mapc.offsetHeight - (mtool.offsetHeight + btool.offsetHeight) + 'px';
	mimage.style.width = c.offsetWidth - (sc.offsetWidth) + 'px';
	map.style.height = mapc.offsetHeight - (mtool.offsetHeight + btool.offsetHeight) + 'px';
	map.style.width = '100%';
	btool.style.top = mtool.offsetHeight + mimage.offsetHeight + 'px';
  } else {
	c.style.height = '378px';
	sc.style.height = '378px';
	scm.style.height = '376px';
	//scrollc.style.height = '378px';
	mapc.style.width = '531px';
	mapc.style.height = '378px';
	mimage.style.height = '323px';
	mimage.style.width = '531px';
	map.style.height = '323px';
	map.style.width = '530px';
	btool.style.top = '350px';
  }
}

function getSizeWidth() {
  var myWidth = 0
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
  } else if( document.documentElement &&
      ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
  }
  return myWidth;
}

function getSizeHeight() {
  var myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if( document.documentElement &&
      ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
  return myHeight;
}
