// CREDITS:
// Snowmaker Copyright (c) 2003 Peter Gehrig. All rights reserved.
// Distributed by http://www.hypergurl.com
// Permission given to use the script on webpages provided that this notice remains as is.

// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax=35
// Set the colors for the snow. Add as many colors as you like
var snowcolor=new Array("#aaaacc","#ddddFF","#ccccDD", "#BFCAD0")
// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS","Verdana")
// Set the letter that creates your snowflake (recommended:*)
var snowletter="*"
// Set the speed of sinking (recommended values range from 0.3 to 2)
var sinkspeed=0.5
// Set the maximal-size of your snowflaxes
var snowmaxsize=22
// Set the minimal-size of your snowflaxes
var snowminsize=8
// Set the snowing-zone
// Set 1 for all-over-snowing, set 2 for left-side-snowing
// Set 3 for center-snowing, set 4 for right-side-snowing
var snowingzone=1

var now = new Date();
var dateok = false;
if((now.getMonth() == 11 && now.getDate() >= 24) || (now.getMonth() == 0 && now.getDate() <= 6)) {
	dateok = true;
	if( window.location.href.indexOf("forum") != -1 && (now.getMonth() != 11 || (now.getDate() < 24 || now.getDate() > 26))) {
		dateok = false;
    }
    // the "window.onload =" call below messes up the GoToStats() script ;)
	if( window.location.href.indexOf("statistics_") != -1) {
		dateok = false;
    }
}

///////////////////////////////////////////////////////////////////////////
// CONFIGURATION ENDS HERE
///////////////////////////////////////////////////////////////////////////
// Do not edit below this line
var snow=new Array();
var marginbottom;
var marginright;
var timer;
var i_snow=0;
var x_mv=new Array();
var crds=new Array();
var lftrght=new Array();
var browserinfos=navigator.userAgent;
var ie5=document.all&&document.getElementById && !browserinfos.match(/Opera/);
var ns6=document.getElementById && !document.all;
var opera=browserinfos.match(/Opera/);
var browserok=ie5||ns6||opera;

function randommaker(range) {
	rand=Math.floor(range*Math.random());
	return rand;
}

function initsnow() {
	if (ie5 || opera) {
    	marginbottom = document.body.clientHeight;
		marginright = document.body.clientWidth-10; //-10 to substract the window border width
    }
    else if (ns6) {
    	marginbottom = window.innerHeight;
		marginright = window.innerWidth;
    }

	var snowsizerange=snowmaxsize-snowminsize;
    for (i=0;i<=snowmax;i++) {
    	crds[i] = 0;
        lftrght[i] = Math.random()*15;
        x_mv[i] = 0.03 + Math.random()/10;
        snow[i]=document.getElementById("s"+i);
        snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)];
		snow[i].size=randommaker(snowsizerange)+snowminsize;
        snow[i].style.fontSize=snow[i].size;
		snow[i].style.color=snowcolor[randommaker(snowcolor.length)];
        snow[i].sink=sinkspeed*snow[i].size/5;
		if (snowingzone==1) {
        	snow[i].posx=randommaker(marginright-snow[i].size);
        }
        if (snowingzone==2) {
	        snow[i].posx=randommaker(marginright/2-snow[i].size);
        }
        if (snowingzone==3) {
        	snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4;
        }
		if (snowingzone==4) {
        	snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2;
        }
		snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size);
        snow[i].style.left=snow[i].posx;
		snow[i].style.top=snow[i].posy;
    }
    movesnow()
}

function movesnow() {
	for (i=0;i<=snowmax;i++) {
    	crds[i] += x_mv[i];
        snow[i].posy+=snow[i].sink;
        snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]);
		snow[i].style.top=snow[i].posy;
        if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])) {
        	if (snowingzone==1) {
            	snow[i].posx=randommaker(marginright-snow[i].size);
            }
            if (snowingzone==2) {
            	snow[i].posx=randommaker(marginright/2-snow[i].size);
            }
			if (snowingzone==3) {
            	snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4;
            }
			if (snowingzone==4) {
            	snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2;
            }
			snow[i].posy=0;
        }
    }
	var timer=setTimeout("movesnow()",50);
}

for (i=0;i<=snowmax;i++) {
	document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>");
}
if (browserok && dateok) {
	window.onload=initsnow
}

///////////////////////
// end of snowscript //
///////////////////////

function do_mouseover(id) {
	document.getElementById(id).className = 'bar_main_bgloop_highlight';
}

function do_mouseout(id) {
	document.getElementById(id).className = 'bar_main_bgloop';
}

function rollover(name, source)  {
  document.images[name].src = source;
}

// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();

// *** BROWSER VERSION ***
// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

// Note: Opera and WebTV spoof Navigator.  We do strict client detection.
// If you want to allow spoofing, take out the tests for opera and webtv.
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && (is_major >= 4));
var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) || (agt.indexOf("; nav") != -1)) );
var is_nav6 = (is_nav && (is_major == 5));
var is_nav6up = (is_nav && (is_major >= 5));
var is_gecko = (agt.indexOf('gecko') != -1);
var is_firefox = (agt.indexOf('firefox') != -1);

var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (is_major < 4));
var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5")==-1) && (agt.indexOf("msie 6")==-1) && (agt.indexOf("msie 7")==-1));
var is_ie4up  = (is_ie && (is_major >= 4));
var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);

var is_opera = (agt.indexOf("opera") != -1);
var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);

function OpenChat(lang) {
//	if(is_ie5up){
		chatwin = open('http://www.egosoft.com/x/questsdk/devchat/chat.php', null, 'width=640,height=480,locationbar=no,menubar=no,resizable=yes,status=no',true );
/*
	}
	else{
    	if(!lang) {
	        var url = window.location.href;
	        var urlparts = url.split(".php");
	        var start = (urlparts[0].length-2);
	        var end = urlparts[0].length;
	        var lang = urlparts[0].substr(start,end);
        }
	    window.location.href = "http://www.egosoft.com/community/chat_"+lang+".php";
	}
*/
}


/*************
**** <config>
**/
startColor = "#BFCAD0"; // MouseOut link color
endColor = "#D0A202"; // MouseOver link color

stepIn = 20; // delay when fading in
stepOut = 20; // delay when fading out

/*
** set to true or false; true will
** cause all links to fade automatically
***/
autoFade = false;
/*
** set to true or false; true will cause all CSS
** classes with "fade" in them to fade onmouseover
***/
sloppyClass = false;
/**
**** </config>
**************/
/*************
**** <install>
**
**
**** </install>
**************/

hexa = new makearray(16);
for(var i = 0; i < 10; i++)
hexa[i] = i;
hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
hexa[13]="d"; hexa[14]="e"; hexa[15]="f";

document.onmouseover = domouseover;
document.onmouseout = domouseout;

startColor = dehexize(startColor.toLowerCase());
endColor = dehexize(endColor.toLowerCase());

var fadeId = new Array();

function dehexize(Color){
var colorArr = new makearray(3);
for (i=1; i<7; i++){
for (j=0; j<16; j++){
if (Color.charAt(i) == hexa[j]){
if (i%2 !=0)
colorArr[Math.floor((i-1)/2)]=eval(j)*16;
else
colorArr[Math.floor((i-1)/2)]+=eval(j);
}
}
}
return colorArr;
}

function domouseover() {
if(document.all){
	var srcElement = event.srcElement;
    if ((srcElement.tagName == "A" && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1))
		if (srcElement.className != "news_link") {
	        fade(startColor,endColor,srcElement.uniqueID,stepIn);
        }
        else {
//			fade(endColor,startColor,srcElement.uniqueID,stepIn);
        }
    }
}

function domouseout() {
if (document.all){
	var srcElement = event.srcElement;
	if ((srcElement.tagName == "A" && autoFade) || srcElement.className == "fade" || (sloppyClass && srcElement.className.indexOf("fade") != -1))
		if (srcElement.className != "news_link") {
			fade(endColor,startColor,srcElement.uniqueID,stepOut);
        }
        else {
//	        fade(startColor,endColor,srcElement.uniqueID,stepOut);
        }
	}
}

function makearray(n) {
this.length = n;
for(var i = 1; i <= n; i++)
this[i] = 0;
return this;
}

function hex(i) {
if (i < 0)
return "00";
else if (i > 255)
return "ff";
else
return "" + hexa[Math.floor(i/16)] + hexa[i%16];}

function setColor(r, g, b, element) {
var hr = hex(r); var hg = hex(g); var hb = hex(b);
element.style.color = "#"+hr+hg+hb;
}

function fade(s,e, element,step){
var sr = s[0]; var sg = s[1]; var sb = s[2];
var er = e[0]; var eg = e[1]; var eb = e[2];

if (fadeId[0] != null && fade[0] != element){
setColor(sr,sg,sb,eval(fadeId[0]));
var i = 1;
while(i < fadeId.length){
clearTimeout(fadeId[i]);
i++;
}
}

for(var i = 0; i <= step; i++) {
fadeId[i+1] = setTimeout("setColor(Math.floor(" +sr+ " *(( " +step+ " - " +i+ " )/ " +step+ " ) + " +er+ " * (" +i+ "/" +
step+ ")),Math.floor(" +sg+ " * (( " +step+ " - " +i+ " )/ " +step+ " ) + " +eg+ " * (" +i+ "/" +step+
")),Math.floor(" +sb+ " * ((" +step+ "-" +i+ ")/" +step+ ") + " +eb+ " * (" +i+ "/" +step+ ")),"+element+");",i*step);
}
fadeId[0] = element;
}


function hideAvatar(id) {
	document.getElementById('avatarImage'+id).style.display = 'none';
    document.getElementById('avatarToggle'+id).style.display = '';
}

function showAvatar(id, path) {
    document.getElementById('avatarImage'+id).src = path;
	document.getElementById('avatarImage'+id).style.display = '';
    document.getElementById('avatarToggle'+id).style.display = 'none';
}