// JavaScripts used throughout the site...


/* ----------------------------------------------------------------------
addEvent
Adds functions to the window.onload function.

Based on these pages:
http://simonwillison.net/2004/May/26/addLoadEvent/
http://www.dustindiaz.com/top-ten-javascript
http://www.dustindiaz.com/rock-solid-addevent/
*/
function addEvent( obj, type, fn ) {
	type = type.replace(/^on/, '');
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);


function addLoadEvent(func) {
	addEvent(window, 'onload', func);
}


// Cookie Functions  ////////////////////  (:)

// Set the cookie.
// SetCookie('your_cookie_name', 'your_cookie_value', exp);

// Get the cookie.
// var someVariable = GetCookie('your_cookie_name');

var expDays = 30;
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
//exp.setTime(exp.getTime() + (3*60*1000));

function getCookieVal (offset) {  
	var endstr = document.cookie.indexOf (";", offset);  
	if (endstr == -1) { endstr = document.cookie.length; }
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
		var j = i + alen;    
		if (document.cookie.substring(i, j) == arg) return getCookieVal (j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}

function SetCookie (name, value) {  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}

function DeleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}




function ShowBefore() {
	if(document.getElementById('pTitle')) {
		document.getElementById('pTitle').innerHTML =
			document.getElementById('pTitle').innerHTML.replace(/After/, 'Before');
	}
	document.title = document.title.replace(/After/, 'Before');
	if(document.getElementById('before')) {
		document.getElementById('before').style.display = 'block';
	}
	if(document.getElementById('after')) {
		document.getElementById('after').style.display = 'none';
	}
	return false;
}


function ShowAfter() {
	if(document.getElementById('pTitle')) {
		document.getElementById('pTitle').innerHTML =
			document.getElementById('pTitle').innerHTML.replace(/Before/, 'After');
	}
	document.title = document.title.replace(/Before/, 'After');
	if(document.getElementById('before')) {
		document.getElementById('before').style.display = 'none';
	}
	if(document.getElementById('after')) {
		document.getElementById('after').style.display = 'block';
	}
	return false;
}


function ShowImage(imageId, newTitle) {

	if(document.getElementById('pTitle')) {
		document.getElementById('pTitle').innerHTML = newTitle;
	}
	document.title = newTitle;
	
	// Hide all
	for(var i=1; i<=3; i++) {
		if(document.getElementById('image' + i)) {
			document.getElementById('image' + i).style.display = 'none';
		}
	}
	// Show selection
	for(var i=1; i<=3; i++) {
		if(i == imageId && document.getElementById('image' + i)) {
			document.getElementById('image' + i).style.display = 'block';
		}
	}
	
	return false;
}


