// JavaScript Document



///////////// PRELOAD IMAGES ////////////////

preloadArray = new Array();
function addPreload(imgSrc) { preloadArray[preloadArray.length] = imgSrc; }
var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		for (i=0; i<preloadArray.length; i++) eval("preloadImage"+i+" = newImage('"+preloadArray[i]+"');");
		preloadFlag = true;
	}
}
function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}



////////// COOKIES /////////

function getCookie(name) { // use: getCookie("name");
	var re = new RegExp(name + "=([^;]+)");
	var value = re.exec(document.cookie);
	return (value != null) ? unescape(value[1]) : null;
}

today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000); // plus 1 year

function setCookie(name, value, sessionCookie) { // use: setCookie("name", value);
	if (sessionCookie) {
		expires = '';
	} else {
		expires = "expires=" + expiry.toGMTString();
	}
	document.cookie=name + "=" + escape(value) + "; path=/; " + expires;
}





// image swap function
// swaps src on mouseover for images using the "imageSwap" CSS class
function initImageSwap() {
	imgs = document.getElementsByTagName('IMG');
	for(i=0;i<imgs.length;i++) {
		el = imgs[i];
		if (el.className=='imageSwap') {
			el.ext = el.src.substr(el.src.length-3,3);
			addPreload(el.src.replace('0.'+el.ext,'1.'+el.ext));
			addPreload(el.src);
			if (targetId = el.getAttribute('swapTarget')) {
				// attach events to target element instead of this image
				if (!el.id) el.id = "swapTargetSrc"+Math.random();
				targetEl = document.getElementById(targetId);
				targetEl.setAttribute('swapTargetSrc',el.id);
				// is the target a form?
				targetIsForm = false;
				for(f=0;f<document.forms.length;f++) {
					if (document.forms[f]==targetEl) {
						targetIsForm = true;
						break;
					}
				}
				if (targetIsForm) {
					targetEl.onfocus = function() {
						srcImg = document.getElementById(this.getAttribute('swapTargetSrc'));
						// force animated GIFs to reload in IE
						r = (srcImg.getAttribute("swapAni") && document.all) ? "?r="+Math.random() : '';
						if (srcImg.src.indexOf('1.'+srcImg.ext)==-1) srcImg.src = srcImg.src.replace('0.'+srcImg.ext,'1.'+srcImg.ext);
						this.mactive = true;
					}
					targetEl.onblur = function() {
						// force animated GIFs to reload in IE
						r = (srcImg.getAttribute("swapAni") && document.all) ? "?r="+Math.random() : '';
						setTimeout("if (!document.getElementById('"+this.id+"').mactive) { srcImg = document.getElementById(document.getElementById('"+this.id+"').getAttribute('swapTargetSrc')); if (srcImg.src.indexOf('0.'+srcImg.ext)==-1) srcImg.src = srcImg.src.replace('1.'+srcImg.ext,'0.'+srcImg.ext)+r; }" ,250);
						this.mactive = false;
					}
				} else {
					targetEl.onmouseover = function() {
						// force animated GIFs to reload in IE
						srcImg = document.getElementById(this.getAttribute('swapTargetSrc'));
						r = (srcImg.getAttribute("swapAni") && document.all) ? "?r="+Math.random() : '';
						if (srcImg.src.indexOf('1.'+srcImg.ext)==-1) srcImg.src = srcImg.src.replace('0.'+srcImg.ext,'1.'+srcImg.ext) + r;
						this.mactive = true;
					}
					targetEl.onmouseout = function() {
						// force animated GIFs to reload in IE
						r = (srcImg.getAttribute("swapAni") && document.all) ? "?r="+Math.random() : '';
						setTimeout("if (!document.getElementById('"+this.id+"').mactive) { srcImg = document.getElementById(document.getElementById('"+this.id+"').getAttribute('swapTargetSrc')); if (srcImg.src.indexOf('0.'+srcImg.ext)==-1) srcImg.src = srcImg.src.replace('1.'+srcImg.ext,'0.'+srcImg.ext)+r; }" ,250);
						this.mactive = false;
					}
				}
			} else {
				el.onmouseover = el.onmouseup = function() {
					// force animated GIFs to reload in IE
					r = (this.getAttribute("swapAni") && document.all) ? "?r="+Math.random() : '';
					this.src = this.src.replace('0.'+this.ext,'1.'+this.ext)+r;
				}
				el.onmouseout = el.onmousedown = function() {
					// force animated GIFs to reload in IE
					r = (this.getAttribute("swapAni") && document.all) ? "?r="+Math.random() : '';
					this.src = this.src.replace('1.'+this.ext,'0.'+this.ext)+r;
				}
			}
		}
	}
}






//////////////// WINNER DISPLAY ///////////////

selectedWinner = 1;
function showWinner(n) {
	if (document.getElementById('winnerDetails')) {
		// reset all winner divs
		wDivs = document.getElementById('winnerDetails').getElementsByTagName('DIV');
		for(i=0;i<wDivs.length;i++) {
			wDiv = wDivs[i];
			if (wDiv.className=='winnerSelected') wDiv.className = 'winner';
			wDivN = wDiv.id.substr(6,wDiv.id.length);
			if (wDivN == n) wDiv.className = 'winnerSelected';
		}
		// save selected winner
		selectedWinner = n;
		setCookie('proggyWinner',n,1);
	}
}

function nextWinner() {
	n = (document.getElementById('winner'+(selectedWinner+1))) ? selectedWinner+1 : 1;
	showWinner(n);
}

lastWinner = 0;
function prevWinner() {
	if (!lastWinner) {
		wDivs = document.getElementById('winnerDetails').getElementsByTagName('DIV');
		for(i=0;i<wDivs.length;i++) {
			wDiv = wDivs[i];
			wDivN = wDiv.id.substr(6,wDiv.id.length);
			if (wDivN && (wDivN*1) > lastWinner) lastWinner = wDivN*1;
		}
	}
	n = (document.getElementById('winner'+(selectedWinner-1))) ? selectedWinner-1 : lastWinner;
	showWinner(n);
}

// change default winner based on cookie
// (if returning to the page in the same session)
function resetLastWinner() {
	if (lastVisitedWinner = getCookie('proggyWinner')) {
		showWinner(parseInt(lastVisitedWinner));
	}
}




//////////////// ONLOAD SEQUENCE //////////////

pageLoaded = false;
onload = function() {
	pageLoaded = true;
	resetLastWinner();
	initImageSwap();
	preloadImages();
}





