function imageholderclass(){
	this.over=new Array();
	this.down=new Array();
	this.src=new Array();
	this.store=store;
	
	function store(src, down, over){
		var AL=this.src.length;
		this.src[AL]=new Image(); this.src[AL].src=src;
		this.over[AL]=new Image(); this.over[AL].src=over;
		this.down[AL]=new Image(); this.down[AL].src=down;
	}
}

var ih = new imageholderclass();
var mouseisdown=0;

function preloader(t){
	for(i=0;i<t.length;i++){
		if(t[i].getAttribute('srcover')||t[i].getAttribute('srcdown')){
			
			storeimages(t[i]);
			var checker='';
			checker=(t[i].getAttribute('srcover'))?checker+'A':checker+'';
			checker=(t[i].getAttribute('srcdown'))?checker+'B':checker+'';
			
			switch(checker){
			case 'A' : mouseover(t[i]);mouseout(t[i]); break;
			case 'B' : mousedown(t[i]); mouseup2(t[i]); break;
			case 'AB' : mouseover(t[i]);mouseout(t[i]); mousedown(t[i]); mouseup(t[i]); break;
			default : return;			
			}
			
			if(t[i].src){t[i].setAttribute("oldsrc",t[i].src);}
		}
	}
}
function mouseup(t){
	var newmouseup;
	if(t.onmouseup){
		t.oldmouseup=t.onmouseup;
		newmouseup=function(){mouseisdown=0;this.src=this.getAttribute("srcover");this.oldmouseup();}

	}
	else{newmouseup=function(){mouseisdown=0;this.src=this.getAttribute("srcover");}}
	t.onmouseup=newmouseup;
}

function mouseup2(t){
	var newmouseup;
	if(t.onmouseup){
		t.oldmouseup=t.onmouseup;
		newmouseup=function(){mouseisdown=0;this.src=this.getAttribute("oldsrc");this.oldmouseup();}
		}
	else{newmouseup=function(){mouseisdown=0;this.src=this.getAttribute("oldsrc");}}
	t.onmouseup = newmouseup;
}

function mousedown(t){
	var newmousedown;
	if(t.onmousedown){
		t.oldmousedown=t.onmousedown;
		newmousedown=function(){if(mouseisdown==0){this.src=this.getAttribute("srcdown");this.oldmousedown();}}
	}
	else{newmousedown=function(){if(mouseisdown==0){this.src=this.getAttribute("srcdown");}}}
	t.onmousedown=newmousedown;
}

function mouseover(t){
	var newmouseover;
	if(t.onmouseover){
		t.oldmouseover=t.onmouseover;
		newmouseover=function(){this.src=this.getAttribute("srcover");this.oldmouseover();}
	}
	else{newmouseover=function(){this.src=this.getAttribute("srcover");}}
	t.onmouseover=newmouseover;
}

function mouseout(t){
	var newmouseout;
	if(t.onmouseout){
		t.oldmouseout=t.onmouseout;
		newmouseout=function(){this.src=this.getAttribute("oldsrc");this.oldmouseout();}
	}
	else{newmouseout=function(){this.src=this.getAttribute("oldsrc");}}
	t.onmouseout=newmouseout;
}

function storeimages(t){
	var s=(t.getAttribute('src'))?t.getAttribute('src'):'';
	var d=(t.getAttribute('srcdown'))?t.getAttribute('srcdown'):'';
	var o=(t.getAttribute('srcover'))?t.getAttribute('srcover'):'';
	ih.store(s,d,o);
}

function preloadimgsrc(){
	if(!document.getElementById) return;
	var it=document.getElementsByTagName('IMG');
	var it2=document.getElementsByTagName('INPUT');
	preloader(it);
	preloader(it2);
}

if(window.addEventListener){window.addEventListener("load", preloadimgsrc, false);} 
else{
	if(window.attachEvent){window.attachEvent("onload", preloadimgsrc);}
	else{if(document.getElementById){window.onload=preloadimgsrc;}}
}

function addEvent(obj, evType, fn)
{ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, true); 
		return true; 
	} else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}

function gEl(id)
{
	return document.getElementById(id);
}

function onErrorCatchInit()
{
	window.onerror = function(msg, url, linenumber)
	{
//		alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber)
		return true
	}
}
addEvent(window, 'load', onErrorCatchInit);


/* scroller */

var sc_Int = null;
var sc_Sp = 10;
var sc_Top = 0;
var sc_M = 0;
function wsScrollTo(y)
{
	sc_Int = setInterval('sc_Run('+y+')',10);
}
function sc_Gy(e)
{
	var y = e.offsetTop
	if (e.offsetParent) while (e = e.offsetParent) y += e.offsetTop
	return y
}
function sc_Gs()
{
	body=document.body
	var d = document.documentElement
	if (body && body.scrollTop) return body.scrollTop
	if (d && d.scrollTop) return d.scrollTop
	if (window.pageYOffset) return window.pageYOffset
	return 0;
}
function sc_End(e)
{
	if (window.event) 
	{
		window.event.cancelBubble = true
		window.event.returnValue = false
      		return;
    	}
	if (e.preventDefault && e.stopPropagation) 
	{
		e.preventDefault()
		e.stopPropagation()
	}
}

function sc_Run(d)
{
	var i = window.innerHeight || document.documentElement.clientHeight;
	var h = document.body.scrollHeight;
	var a = sc_Gs();
	if(d>a)
		if(h-d>i)
			a+=Math.ceil((d-a)/sc_Sp)
		else
			a+=Math.ceil((d-a-(h-d))/sc_Sp)
	else
		a = a+(d-a)/sc_Sp;
	window.scrollTo(0,a)
	if(a==d || sc_Top == a)
	{
		clearInterval(sc_Int)
		sc_Mapped();
	}
	sc_Top = a
}

function sc_Mapped(h)
{
	if (h)
	{
		if (h.indexOf('?map=6') != -1 && gEl('process-auto-nav'))
		{
			processAuto = false;
			gEl('process-auto-nav').innerHTML = 'OFF';
			if (processId != 2)
				processNext(2,1);
		}
		else if (h.indexOf('?map=9') != -1 && gEl('process-auto-nav'))
		{
			processAuto = false;
			gEl('process-auto-nav').innerHTML = 'OFF';
			if (processId != 5)
				processNext(5,1);
		}
		else if (h.indexOf('?map=7') != -1 && gEl('rzoom7'))
			sc_M = 7;
		else if (h.indexOf('?map=8') != -1 && gEl('rzoom8'))
			sc_M = 8;
	}
	else if (sc_M > 0)
	{
		if (sc_M == 7 || sc_M == 8 || sc_M == 9)
		{
			zoomPreload(gEl('rzoom' + sc_M));
			zoomClick(gEl('rzoom' + sc_M), null, true);
		}
		sc_M = 0;
	}
}
function sc_Init()
{
	var a = document.getElementsByTagName('a');
	sc_End(this);
//	window.onscroll
	for (i=0;i<a.length;i++) 
	{
		var l = a[i];
		if(l.href && l.href.indexOf('#') != -1 && ((l.pathname == location.pathname) || ('/'+l.pathname == location.pathname)) )
		{
			a[i].onclick = function()
			{
				sc_End(this);
				var ll = this.hash.substr(1);
				var al = document.getElementsByTagName('a');
				for (var il=0;il<al.length;il++) 
				{
				     	if(al[il].name == ll)
				     	{
				     		clearInterval(sc_Int);
				     		sc_Mapped(this.href);
				     		sc_Int = setInterval('sc_Run('+sc_Gy(al[il])+')',10);
				     		if (ll == 'joinfree')
				     		{
				     			showJoinnFree();
				     			this.blur();
				     		}
				     		return false;
					}
				}
			}
		}
	}
}
addEvent(window, 'load', sc_Init);
/* end scroller */

/* support */
function getDimensions (element) 
{	
	var display = element.style.display;
	if (display != 'none' && display != null) // Safari bug
		return { width: element.offsetWidth, height: element.offsetHeight};

	// All *Width and *Height properties give 0 on elements with display none,
	// so enable the element temporarily
	var els = element.style;
	var originalVisibility = els.visibility;
	var originalPosition = els.position;
	var originalDisplay = els.display;
	els.visibility = 'hidden';
	els.position = 'absolute';
	els.display = 'block';
	var originalWidth = element.clientWidth;
	var originalHeight = element.clientHeight;
	els.display = originalDisplay;
	els.position = originalPosition;
	els.visibility = originalVisibility;
	return {width: originalWidth, height: originalHeight};
}

function getElementPos(container) {
	var offsetY = 0;
	var offsetX = 0;
	if (container.getBoundingClientRect) {
		var rect = container.getBoundingClientRect();
		offsetY = rect.top - 2;
		offsetX = rect.left - 2;
		var z = getScrollXY();
		offsetY += z[1];
		offsetX += z[0];
	} else {
		var parentElem = container;
		while (parentElem &&
		       parentElem != document.body &&
		       parentElem != document.documentElement) {
			offsetY += parentElem.offsetTop;
			offsetX += parentElem.offsetLeft;
			parentElem = parentElem.offsetParent;
		}
	}
	return [offsetX, offsetY];
}

function getElementWidth(target) 
{
	if (target.clientWidth) return target.clientWidth;
	else if (target.innerWidth) return target.innerWidth;
	else if (target.offsetWidth) return target.offsetWidth;
	else return 0;
}
function getElementHeight(target) {
	if (target.clientHeight) return target.clientHeight;
	else if (target.innerHeight) return target.innerHeight;
	else if (target.offsetHeight) return target.offsetHeight;
	else return 0;
}

function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}
function getWindowWidth() {
	if (window.innerWidth && window.innerWidth != 0)
		return window.innerWidth;
	if (document.documentElement.clientWidth && document.documentElement.clientWidth != 0)
		return document.documentElement.clientWidth;
	if (document.body.clientWidth && document.body.clientWidth != 0)
		return document.body.clientWidth;
	return 0;
}

function getWindowHeight() {
	if (window.innerHeight && window.innerHeight != 0)
		return window.innerHeight;
	if (document.documentElement.clientHeight && document.documentElement.clientHeight != 0)
		return document.documentElement.clientHeight;
	if (document.body.clientHeight && document.body.clientHeight != 0)
		return document.body.clientHeight;
	return 0;
}
/* end support */

/* cookies */
// Cookies.
function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length));
	}
	return null;
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	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() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : ';path=/' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
/* end cookies */

function setSelectedValue(ddId, value) 
{
	var el = gEl(ddId);
	if(!el)
		return;
	for(var i=0;i<el.length; i++)
	{
		if(el.options[i].value == value)
		{
			el.selectedIndex = i;
			return;
		}
	}
}

/* */
function show(element) { gEl(element).style.display = 'block'; }
function hide(element) { gEl(element).style.display = 'none'; }
function t_show(element) { gEl(element).style.display = (gEl(element).style.display == 'none') ? 'block' : 'none'; }

function center(element)
{
	element = gEl(element);

	var my_width  = getWindowWidth();
	var my_height = getWindowHeight();

	element.style.position = 'absolute';
	element.style.zIndex   = 201;

	var scrollY = getScrollXY()[1];

	var elementDimensions = getDimensions(element);

	var setX = ( my_width  - elementDimensions.width  ) / 2;
	var setY = ( my_height - elementDimensions.height ) / 2 + scrollY;

	setX = ( setX < 0 ) ? 0 : setX;
	setY = ( setY < 0 ) ? 0 : setY;

	element.style.left = setX + "px";
	element.style.top  = setY + "px";

	element.style.display  = 'block';
}


/* preloader*/

var gtLTm = 0;
var gtLActive = false;
var gtFr = 1;
function gtPreload()
{
	getSize();
	preloadTime = new Date();
	gEl("gtLoad").style.left = (myWidth / 2) + 'px';
	gEl("gtLoad").style.top = ((myHeight / 2) + myScroll) + 'px';
	gEl("gtLoad").style.visibility = "visible";	
	gtFr = 1;
	gtLTm = setInterval("gtPreloadA()", 50);
}

function gtPreloadA(from) 
{
	if (boardLoading != false || gtFr != 1) 
	{
		bgPos = gtFr * 50 - 50;
		bgPos = bgPos * -1;
		gEl("gtSpin").style.backgroundPosition = '0px '+bgPos+'px'
		gtFr++;
		if (gtFr > 12) gtFr = 1;
		
	} else {
		gEl("gtLoad").style.visibility = "hidden";    
		clearInterval(gtLTm);
		gtLTm = 0;
	}
}

function gtPreloadInit()
{
	var inBody = document.getElementsByTagName("body").item(0);
	var inS = document.createElement("div");
	inS.setAttribute('id', 'gtLoad');
	inS.style.position = 'absolute';
	inS.style.left = '10px';
	inS.style.top = '10px';
	inS.style.visibility = 'hidden';
	inS.style.zIndex = '525';
	inBody.insertBefore(inS, inBody.firstChild);
	
	var inSpin = document.createElement("div");
	inSpin.setAttribute('id', 'gtSpin');
	inSpin.style.background = 'url(/images/zoom/zoom-spin.png) 0px 0px no-repeat';
	inSpin.style.width = '50px';
	inSpin.style.height = '50px';
	inS.appendChild(inSpin);
}
addEvent(window, 'load', gtPreloadInit);