var overcolor = 'b31b21'; var offcolor = '000000'

var ie6 = false;
if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer") {
    var arVersion = navigator.appVersion.split("MSIE")
    var version = parseFloat(arVersion[1])
    if( version < 7.0 ) 
        ie6 = true;
}

// Events /////////////////////////////////////////////////////////////////////////////////
function rollOverEvent(e){ rollOver(Event.element(e)) }
function rollOutEvent(e){ rollOut(Event.element(e)) }

// Rollover Functions //////////////////////////////////////////////////////////////////////////
if( !ie6) {
rollOver = function(obj)
{    
    if( Element.hasClassName(obj,'ignoreRollOver') ) return;
    if( obj.src.search('image.php') == -1 ) {
        obj.src = obj.src.replace(/\.(\w+)$/, "_over.$1");    
    }        
    else {
        if(obj.src.indexOf('color=') > 0)
            obj.src = obj.src.replace(/color=[0-9a-fA-F]*/, 'color='+overcolor);
        else
            obj.src += '&color=' + overcolor;        
    }
}

rollOut = function(obj)
{
    if( Element.hasClassName(obj,'ignoreRollOver') ) return;
    if( obj.src.search('image.php') == -1 ) {
        obj.src = obj.src.replace(/_over\.(\w+)$/, ".$1");    
    }
    else {
        obj.src = obj.src.replace(/color=[0-9a-fA-F]*/, 'color='+offcolor);        
    }
}

}
else {
//PNGFIX
rollOver = function(obj)
{    
    if( Element.hasClassName(obj,'ignoreRollOver') ) return;
    var obj = (Element.hasClassName(obj,'transpng'))? obj.filters(0) : obj;
    if( obj.src.search('image.php') == -1 ) {
        obj.src = obj.src.replace(/\.(\w+)$/, "_over.$1");    
    }
    else {
        var src = obj.src.replace(/&color=[0-9a-fA-F]*/, '');
        src += '&color=' + overcolor;
        obj.src = src;
    }    
}

rollOut = function(obj)
{
    if( Element.hasClassName(obj,'ignoreRollOver') ) return;
    var obj = (Element.hasClassName(obj,'transpng'))? obj.filters(0) : obj;
    if( obj.src.search('image.php') == -1 ) {
        obj.src = obj.src.replace(/_over\.(\w+)$/, ".$1");    
    } else {
        obj.src = obj.src.replace(/color=[0-9a-fA-F]*/, 'color='+offcolor);
    }
}
}




// Util functions /////////////////////////////////////////////////////////////////
function setFocus(layerName) {  
  var layer = document.getElementById(layerName);
  var focusIt = layer.getElementsByTagName('a')[0];//This is an array, get the first link.
  focusIt.focus();
}


function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


// onDOMReady Event which should fire before window.onload
// Requires prototype.js
Object.extend(Event, {
  _domReady : function() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;

    if (this._timer)  clearInterval(this._timer);
    
    this._readyCallbacks.each(function(f) { f() });
    this._readyCallbacks = null;
},
  onDOMReady : function(f) {
    if (!this._readyCallbacks) {
      var domReady = this._domReady.bind(this);
      
      if (document.addEventListener)
        document.addEventListener("DOMContentLoaded", domReady, false);
        
        /*@cc_on @*/
        /*@if (@_win32)
            document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
            document.getElementById("__ie_onload").onreadystatechange = function() {
                if (this.readyState == "complete") domReady(); 
            };
        /*@end @*/
        
        if (/WebKit/i.test(navigator.userAgent)) { 
          this._timer = setInterval(function() {
            if (/loaded|complete/.test(document.readyState)) domReady(); 
          }, 10);
        }
        
        Event.observe(window, 'load', domReady);
        Event._readyCallbacks =  [];
    }
    Event._readyCallbacks.push(f);
  }
});

function menuHighlight() {
    var page = document.body.id.toLowerCase().split('-');
    if(page[0] == 'pages'){ page = page.reverse();}
    if(page[0] == 'collections'){ page[0] = 'featured';}
    var menuitem = $('menuitem_'+page[0]);
    if( menuitem ) {Element.addClassName(menuitem, 'menuhover');}
    
    var subnav = $('subnav_'+page[1]);
    if( subnav ) {Element.addClassName(subnav, 'subnavhover')};
}


// Load Events//////////////////////////////////////////////////////////////////////////

Event.onDOMReady( function () {
    menuHighlight();    
    Element.hide('mainmenu');

    // Past exhibit list year jump
    var triggers = $$('.exhibitTrigger')
    triggers.each( function(t,i) {
        if( i < 3 ) Element.show(t);
        Event.observe(t,'click', function(e){
            var year = t.id.replace('pastyearTrigger_','');
            $$('#past_exhibitions ul').each(function(el) {
                Element.hide(el);
            });
            Element.show('pastyear_'+year);
            if(scrollers) scrollers.each(function(s){s.reset();});
            //Reposition years
            triggers.each(function(el){Element.hide(el);Element.removeClassName(el,'hover');});
            Element.addClassName(t,'hover');
            try{ 
                if(i == 0 ) {
                    Element.show(triggers[i]);
                    Element.show(triggers[i+1]);
                    Element.show(triggers[i+2]);
                }
                else if( i == triggers.length-1) {
                    Element.show(triggers[i]);
                    Element.show(triggers[i-1]);
                    Element.show(triggers[i-2]);
                }
                else {
                    Element.show(triggers[i]);
                    Element.show(triggers[i+1]);
                    Element.show(triggers[i-1]);
                }
            } catch(e) {}
        });
    });
});

Event.observe(window, 'load', function(){
    // Image Rollovers
    rollovers = $$('img.rollover');
    rollovers.each( function(rollover) {
        Event.observe(rollover, 'mouseover', rollOverEvent);
        Event.observe(rollover, 'mouseout', rollOutEvent);                    
    });
    rollovers.each( function(rollover) {
        var preload = new Image();
        if( rollover.src.search('image.php') == -1 ) {
            preload.src = rollover.src.replace(/\.(\w+)$/, "_over.$1");
        }else{
            var src = rollover.src.replace(/&color=[0-9a-fA-F]*/, '');
            src += '&color=' + overcolor;
            preload.src = src;
        }
    });
    Event.observe('mailinput','focus', function(){$('mailinput').value='';})
    /*// Popup Windows
    var popups = $$('a.popupWindow');
    popups.each( function(popup) {
        Event.observe(popup, 'click', function(e){
            var url = popup.href;
            window.open(url, null, 'width=800,height=600');
            Event.stop(e);
        });
    });*/
});
