/* isIE */
	function isIE()
	{
		return document.all;
	}

/* ieVersion */
	function ieVer()
	{
	   var ua = window.navigator.userAgent;
	   var ie = ua.indexOf("MSIE ");
	   return ((ie > 0) ? parseInt(ua.substring(ie+5, ua.indexOf(".", ie))) : 0);
	}


/* grab function */
	function grab( id )
	{
		return document.getElementById(id);
	}

/* display toggler */
function display_toggle(object_id, type)
	{
		type = (type?type:'block');
		var object = grab( object_id ).style;
		if( object.display == '' )
		{
			object.display = 'none';
		}
		else if( object.display == 'none' )
		{
			object.display = '';
		}
		return true;
	}

	function display_show(object_id, type)
	{
		type = (type?type:'block');
		grab( object_id ).style.display = type;
		return true;
	}

	function display_hide(object_id)
	{
		grab( object_id ).style.display = 'none';
		return true;
	}

/* toggle and set focus */
	function toggle_display_focus(object_id, type)
	{
		toggle_display(object_id, type);
		setfocus(object_id);
	}

/* focus */
	function setfocus( object_id )
	{
		grab(object_id).select();
		grab(object_id).focus();
	}

/* confirm */
	function gconfirm( msg, on_accept )
	{
		if( confirm(msg) )
		{
			window.location = on_accept;
		}
		else
		{
			return false;
		}
	}

/* go_back */
	function go_back()
	{
		return history.go(-1);
	}

/* qpop */
	function qpop( url, id, width, height, xtra )
	{
		if( xtra != '' )
			xtra = ',' + xtra;
		return window.open(url, id, 'width=' + width + ',height=' + height + xtra );
	}

/* bookmark */
	function bookmarkPage( )
	{
		var title = grab('ptitle').innerHTML;
		if( (navigator.appName == 'Microsoft Internet Explorer') && (parseInt(navigator.appVersion) >= 4) )
		{
			window.external.AddFavorite(window.location, title);
		}
		else if( navigator.appName == 'Netscape' )
		{
			window.sidebar.addPanel(title, window.location, '');
		}
		else
		{
			alert('Press CTRL-D in Netscape or CTRL-T in Opera to Bookmark this page.');
		}
	}
/* cross browser opacity changer */
	function setOpacity(obj, opacity)
	{
		obj.style.opacity = (opacity / 100);
		obj.style.MozOpacity = (opacity / 100);
		obj.style.KhtmlOpacity = (opacity / 100);
		if( document.all )
			obj.style.filter = 'alpha(opacity=' + opacity + ')';
	}

/* cross browser opacity changer */
	function setOpacity2(opacity, object_id)
	{
		var obj = document.getElementById(object_id).style;
			obj.opacity = (opacity / 100);
			obj.MozOpacity = (opacity / 100);
			obj.KhtmlOpacity = (opacity / 100);
		if( document.all )
			obj.filter = 'alpha(opacity=' + opacity + ')';
	}
/* imgDisplay */
	function imgDisplay( file )
	{
		document.getElementById('imgDisplaySrc').src = file;
		fullObj = document.getElementById('imgDisplay');
		fullObj.style.display = 'block';
		fullObj.style.width = document.documentElement.scrollWidth+'px';
		fullObj.style.height = document.documentElement.scrollHeight+'px';
		fullObj.style.lineHeight = document.documentElement.scrollHeight+'px';
		return false;
	}

	function imgDisplay_hide()
	{
		document.getElementById('imgDisplay').style.display = 'none';
		document.getElementById('imgDisplaySrc').src = '/theme/loading.gif';
	}

/* imgDisplay */
	var imgDisp = {
			// vars
				'items'		:	[],
				'current'	:	0,

			// functions
				'open'		:	function( id )
								{
									imgDisp.current = id;
									document.getElementById('imgDisplaySrc').src = imgDisp.items[id];
									fullObj = document.getElementById('imgDisplay');
									fullObj.style.display = 'block';
									fullObj.style.width = document.documentElement.scrollWidth+'px';
									fullObj.style.height = document.documentElement.scrollHeight+'px';
									document.getElementById('imgDisplayCount').innerHTML = (id+1) + ' of ' + imgDisp.items.length;
									return false;
								},

				'one'		:	function( image_file )
								{
									imgDisp.items = [];
									imgDisp.items[0] = image_file;
									return imgDisp.open(0);
								},

				'close'		:	function( )
								{
									document.getElementById('imgDisplay').style.display = 'none';
									document.getElementById('imgDisplaySrc').src = '/theme/blank.gif';
									return false;
								},

				'prev'		:	function( )
								{
									if( imgDisp.current > 0 )
										imgDisp.open( imgDisp.current - 1 );
									else
										imgDisp.open( imgDisp.items.length-1 );

									return false;
								},

				'next'		:	function( )
								{
									if( imgDisp.current < imgDisp.items.length-1 )
										imgDisp.open( imgDisp.current + 1 );
									else
										imgDisp.open( 0 );
									return false;
								}
	}

/* walkthrough */
	var flow = {
			// config
				'speed'		:	25, // 0.025 seconds between steps
				'interval'	:	6.5, // in seconds

			// vars
				'pages'		:	null,
				'iepaths'	:	[],
				'last'		:	0,
				'opacity1'	:	0,
				'opacity2'	:	0,
				'current'	:	0,
				'goto'		:	0,
				'wait'		:	null,

			// init
				'init'		:	function()
								{
									flow.object = grab('flow');
									flow.pages = grab('flow').getElementsByTagName('a');
									flow.last = flow.pages.length-1;
									// don't bother if we don't have to!
									if( flow.pages <= 1 )
										return false;

									// build pager
									for( i=0; i < flow.pages.length; i++ )
									{
										var mk = document.createElement('a');
											mk.setAttribute('id', '_flowjump'+i);
											mk.setAttribute('onmouseup', 'return flow.jumpto(' +i+ ');');
											mk.setAttribute('href', '#');
											mk.setAttribute('class', (i==0?'sel':''));
										grab('flow_pager').appendChild(mk);
										// internet explorer hack
										if( isIE() && ieVer() < 9 )
										{
											var mki = document.createElement('img');
												mki.setAttribute('src', '/files/blank.gif');
											var mkt = document.createElement('div');
												mkt.setAttribute('style', 'filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' +flow.pages[i].firstChild.src+ '\', sizingMethod=\'scale\');');
												mkt.appendChild(mki);
											flow.pages[i].removeChild(flow.pages[i].childNodes[0]);
											flow.pages[i].appendChild(mkt);
										}
									}

									// quick fade in
									for( i=1; i <= 10; i++ )
									{
										setTimeout('flow.opacity(0, '+(i*10)+'); setOpacity2('+(i*10)+', "flow_pager");', 50*i);
									}

									// begin
									flow.wait = (new Date().getTime()) + (flow.interval*1000);
									flow.goto = 1;
									flow.current = 0;
									flow.opacity1 = 100;
									flow.opacity2 = 0;
									setInterval( 'flow.walk();', flow.speed);
								},

			// walk
				'walk'		:	function()
								{
									var timestamp = new Date().getTime();
									if( timestamp <= flow.wait )
										return false;

									if( flow.pages[flow.goto].style.display == 'none' )
										flow.pages[flow.goto].style.display = 'block';

									// time check has passed -- continue
									if( flow.opacity1 > 0 && flow.opacity2 < 100 )
									{
										flow.opacity1 = flow.opacity1 - 5;
										flow.opacity2 = flow.opacity2 + 5;
										flow.opacity(flow.current, flow.opacity1);
										flow.opacity(flow.goto, flow.opacity2);
										if( flow.opacity1 == 40 && flow.opacity2 == 60 )
										{
											grab('_flowjump'+flow.current).className = '';
											grab('_flowjump'+flow.goto).className = 'sel';
										}
									}
									else if( flow.opacity1 == 0 && flow.opacity2 == 100 )
									{
										flow.pages[flow.current].style.display = 'none';
										//
										flow.current = flow.goto;
										if( (flow.goto+1) > flow.last )
										{
											flow.goto = 0;
										}
										else
										{
											flow.goto++;
										}
										flow.opacity1 = 100;
										flow.opacity2 = 0;
										flow.wait = (new Date().getTime()) + (flow.interval*1000);
									}
									else
									{
										// do nothing for now
									}

								},

			// set opacity function
				'opacity'	:	function( id, opac )
								{
									flow.pages[id].style.opacity = (opac / 100);
									flow.pages[id].style.MozOpacity = (opac / 100);
									flow.pages[id].style.KhtmlOpacity = (opac / 100);
									// I hate you IE...
									if( document.all )
										flow.pages[id].style.filter = 'alpha(opacity=' +opac+ ')';
								},

			// jump
				'jumpto'	:	function( page )
								{
									flow.wait = 0; // do it now!
									flow.goto = page;
									return false;
								}
		}

