/***************************************************************
*
*		GrouchoMarxists.com general script
*		Brian Schwinn ( Fucko Marx )
*		
****************************************************************/

// background/link states
var initializing	= false;	// page is initializing flag
var linkActive		= false;	// user is hovering over a link flag
var linkTimer		= null;
// background states, BG_xxx vars = index in imageArr
var BG_PRELOAD		= 0;
var BG_LOADING		= 1;
var BG_DEFAULT		= 2;
var BG_HIGHLIGHT	= 3;
var BG_CONTENT		= 4;
var imageArr = new Array( 'img/spacer.gif', 'img/gmMainLogoFadeIn.gif', 'img/gmMainLogo.gif', 'img/gmMainLogo.gif', 'img/gmMainLogoFaded.gif' );
// default link state - '' is invisible (red on red), 'on' is on (black), and 'barely' is just that...
var defaultLinkState = '';
// content is being show state flag
var contentShowing = false;

// init logo/links
function initPage() {
	initializing = true;
	changeLogo( 'init');
	changeLinkState( 'on' );
	window.setTimeout( 'resetLogo();', 7500 );
}
// reset logo/links after init
function resetLogo() {
	initializing = false;
	if ( !linkActive ) {
		unhighlight();
	}
}
// highlight logo/links - toggle on
function highlight() {
	if ( !initializing ) {
		changeLogo('over');
		window.clearTimeout( linkTimer );
		linkTimer = null;
		changeLinkState( 'on' );
	}
	linkActive = true;
}
// un-highlight logo/links - toggle off
function unhighlight() {
	if ( !initializing ) {
		changeLogo('out');
		// a little delay for IE
		linkTimer = window.setTimeout( 'changeLinkState();', 50 );
	}
	linkActive = false;
}
// change class on the link container
function changeLinkState( state ) {
	var elem = document.getElementById( 'gmLinkContainer' );
	if ( elem != null ) {
		if ( state != null && state.length>0 ) {
			elem.className = 'gmLinkContainer ' + state;
		} else {
			elem.className = 'gmLinkContainer ' + defaultLinkState;
		}
	}
}
// show some content
function refreshContent( _list, _templateId, _title ) {
	var elem = document.getElementById( 'gmMainContent' );
	var elemTitle = document.getElementById( 'gmMainContentTitle' );
	var elemInner = document.getElementById( 'gmMainContentInner' );
	if ( elem != null && elemInner != null && elemTitle != null ) {
		elemTitle.innerHTML = _title;
		var winWidth = (document.all)?document.body.clientWidth:window.innerWidth;
		var elemWidth = isNaN(parseInt(elem.style.width)) ? 450 : parseInt(elem.style.width);
		var winHeight = (document.all)?document.body.clientHeight:window.innerHeight;
		var elemHeight = isNaN(parseInt(elem.style.height)) ? 450 : parseInt(elem.style.height);
		elem.style.top = (winHeight/2)-(elemHeight/2) + 'px';
		elem.style.left = (winWidth/2)-(elemWidth/2) + 'px';
		elem.style.display = 'block';
		elemInner.innerHTML = pimp.renderListHTML( _list, _templateId );
	}
	contentShowing = true;
	changeLogo();
}
// hide current content
function hideContent() {
	// clear main panel
	var elem = document.getElementById( 'gmMainContent' );
	var elemInner = document.getElementById( 'gmMainContentInner' );
	if ( elem != null && elemInner != null ) {
		elem.style.display = '';
	}
	contentShowing = false;
	changeLogo();
}
// change main logo (background)
function changeLogo( action ) {
	var gmMainBG = document.images['gmMainBGImg'];
	if ( gmMainBG != null ) {
		switch ( action ) {
			case 'preload' :
				gmMainBG.src = imageArr[BG_PRELOAD];
				break;
			case 'init' :
				gmMainBG.src = imageArr[BG_LOADING];
				break;
			case 'over' :
				gmMainBG.src = (contentShowing) ? imageArr[BG_CONTENT] : imageArr[BG_HIGHLIGHT];
				break;
			case 'content' :
				gmMainBG.src = imageArr[BG_CONTENT];
				break;
			default :
				gmMainBG.src = (contentShowing) ? imageArr[BG_CONTENT] : imageArr[BG_DEFAULT];
				break;
		}
	}
}
