﻿function spotlightImage(id){
    //alert(id);
    var img = getObject(id);
    img.style.border = '#ff0000';
}

function unspotlightImage(id){
    //alert(id);
    var img = getObject(id);
    img.style.border = '#333333';
}

function spotlightText(id){
    //alert(id);
}

function unspotlightText(id){
    //alert(id);
}

function getObject(id) {
   var object = null;
   if( document.layers ) {   
    object = document.layers[id];
   } else if( document.all ) {
    object = document.all[id];
   } else if( document.getElementById ) {
    object = document.getElementById(id);
   }
   return object;
  }
  
var cur_lyr;	// holds id of currently visible layer
function swapLayers(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) {
    if (lyr.css.display == "block"){
        hideLayer(id);
    } else {
        showLayer(id)
    }
   }
  cur_lyr = id;
}

function showLayer(id) {
  var lyr = getElemRefs(id);
  //if (lyr && lyr.css) lyr.css.visibility = "visible";
  if (lyr && lyr.css) lyr.css.display = "block";
}

function hideLayer(id) {
  var lyr = getElemRefs(id);
  //if (lyr && lyr.css) lyr.css.visibility = "hidden";
  if (lyr && lyr.css) lyr.css.display = "none";
}

function getElemRefs(id) {
	var el = (document.getElementById)? document.getElementById(id): (document.all)? document.all[id]: (document.layers)? document.layers[id]: null;
	if (el) el.css = (el.style)? el.style: el;
	return el;
}
  
function setCookie(name, value, expires, path, domain, secure) 
{
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime( today.getTime() );

    /*
    if the expires variable is set, make the correct 
    expires time, the current script below will set 
    it for x number of days, to make it for hours, 
    delete * 24, for minutes, delete * 60 * 24
    */
    if ( expires )
    {
    expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date( today.getTime() + (expires) );

    document.cookie = name + "=" +escape( value ) +
    ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
    ( ( path ) ? ";path=" + path : "" ) + 
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ( ( secure ) ? ";secure" : "" );
    //alert("cookie set for " + name + " = " + value);
}

TextResizeDetector = function() { 
	var ems = 29.538;
    var el  = null;
	var iIntervalDelay  = 200;
	var iInterval = null;
	var iCurrSize = -1;
	var iBase = -1;
 	var aListeners = [];
 	var createControlElement = function() {
	 	el = document.createElement('span');
		el.id='textResizeControl';
		el.innerHTML='&nbsp;';
		el.style.position="absolute";
		el.style.left="-9999px";
		var elC = document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID);
		// insert before firstChild
		if (elC)
			elC.insertBefore(el,elC.firstChild);
		iBase = iCurrSize = TextResizeDetector.getSize();
 	};

 	function _stopDetector() {
		window.clearInterval(iInterval);
		iInterval=null;
	};
	function _startDetector() {
		if (!iInterval) {
			iInterval = window.setInterval('TextResizeDetector.detect()',iIntervalDelay);
		}
	};
 	
 	 function _detect() {
 		var iNewSize = TextResizeDetector.getSize();
		
 		if(iNewSize!== iCurrSize) {
			for (var 	i=0;i <aListeners.length;i++) {
				aListnr = aListeners[i];
				var oArgs = {  iBase: iBase,iDelta:((iCurrSize!=-1) ? iNewSize - iCurrSize + 'px' : "0px"),iSize:iCurrSize = iNewSize};
				if (!aListnr.obj) {
					aListnr.fn('textSizeChanged',[oArgs]);
				}
				else  {
					aListnr.fn.apply(aListnr.obj,['textSizeChanged',[oArgs]]);
				}
			}

 		}
 		return iCurrSize;
 	};
	var onAvailable = function() {
		
		if (!TextResizeDetector.onAvailableCount_i ) {
			TextResizeDetector.onAvailableCount_i =0;
		}

		if (document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID)) {
			TextResizeDetector.init();
			if (TextResizeDetector.USER_INIT_FUNC){
				TextResizeDetector.USER_INIT_FUNC();
			}
			TextResizeDetector.onAvailableCount_i = null;
		}
		else {
			if (TextResizeDetector.onAvailableCount_i<600) {
	  	 	    TextResizeDetector.onAvailableCount_i++;
				setTimeout(onAvailable,200)
			}
		}
	};
	setTimeout(onAvailable,500);

 	return {
		 	/*
		 	 * Initializes the detector
		 	 * 
		 	 * @param {String} sId The id of the element in which to create the control element
		 	 */
		 	init: function() {
		 		
		 		createControlElement();		
				_startDetector();
 			},
			/**
			 * Adds listeners to the ontextsizechange event. 
			 * Returns the base font size
			 * 
			 */
 			addEventListener:function(fn,obj,bScope) {
				aListeners[aListeners.length] = {
					fn: fn,
					obj: obj
				}
				return iBase;
			},
			/**
			 * performs the detection and fires textSizeChanged event
			 * @return the current font size
			 * @type {integer}
			 */
 			detect:function() {
 				return _detect();
 			},
 			/**
 			 * Returns the height of the control element
 			 * 
			 * @return the current height of control element
			 * @type {integer}
 			 */
 			getSize:function() {
	 				var iSize;
			 		return el.offsetHeight;
		 		
		 		
 			},
 			/**
 			 * Stops the detector
 			 */
 			stopDetector:function() {
				return _stopDetector();
			},
			/*
			 * Starts the detector
			 */
 			startDetector:function() {
				return _startDetector();
			}
 	}
 }();
 
// Cross-browser implementation of element.addEventListener()
function addListener(element, type, expression, bubbling)
{
	bubbling = bubbling || false;
 
	if(window.addEventListener)	{ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	} else if(window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	} else return false;
}

function updateDimensions(){
    /* Get viewport */
    var viewportW = YAHOO.util.Dom.getViewportWidth();
    var viewportH = YAHOO.util.Dom.getViewportHeight();

    /* Save viewport dimensions in cookie */
    setCookie("viewportW", viewportW, "", "/", "", "");
    setCookie("viewportH", viewportH, "", "/", "", "");
    
    init();
    
    //alert("updated dimensions");
}
 
function init()  {
    //var ems = 29.538 *.77;
    var iBase = TextResizeDetector.addEventListener(onFontResize,null);
	//var leftcolumn = (ems * iBase);
	//setCookie("viewportLeftColumn", leftcolumn, "", "/", "", "");
}
function onFontResize(e,args) {
    var leftcolumn = (ems * args[0].iSize);
	setCookie("viewportLeftColumn", leftcolumn, "", "/", "", "");
}

var ems = 29.538 *.77; /* ems of left column */
TextResizeDetector.TARGET_ELEMENT_ID = 'main_nav'; //id of element to check for and insert control
TextResizeDetector.USER_INIT_FUNC = init; //function to call once TextResizeDetector has init'd
addListener(window, 'onresize', updateDimensions, false);
updateDimensions();