// Written By Seth Lopez

var userAgent = navigator.userAgent;
var isIE = (userAgent.indexOf("MSIE") > 0 && userAgent.indexOf("Win") > 0 && userAgent.indexOf("Opera") < 0) ? true : false; //6.0 5.5 -5.6?
var isIEMac = (userAgent.indexOf("MSIE") > 0 && userAgent.indexOf("Mac") > 0) ? true : false; //5.23
var isFirefox = (userAgent.indexOf("Firefox") > 0) ? true : false; //1.0 Gecko/20041107
var isSafari = (userAgent.indexOf("Safari") > 0) ? true : false; //125.12 AppleWebKit/1.25.6
var isNetscape = (userAgent.indexOf("Netscape") > 0) ? true : false; //7.1 Gecko/20030624
var isOpera = (userAgent.indexOf("Opera") > 0) ? true : false; //7.23, 7.54

function removePX(pixels)
{
	if ( pixels.slice( (pixels.length-2),(pixels.length) ) == "px") return Number( pixels.slice( (0), (pixels.length-2) ) );
	else return Number(pixels);
}

function getSrc(elem) //for alphaImageLoader
{
	var filter = (elem.runtimeStyle) ? (elem.runtimeStyle.filter) ? elem.runtimeStyle.filter : false : false;
	if (!filter) filter = (elem.style) ? (elem.style.filter) ? elem.style.filter : false : false;

	if (filter)
	{
		var openingQuote = filter.indexOf("src=")+5;
		var restOfString = filter.substring(openingQuote);
		var closingQuote = restOfString.indexOf("'");
	}
	var src = (filter) ? src = filter.slice(openingQuote, openingQuote + closingQuote) : elem.src;
	return src;
}

function bustinOut()
{
	if (top != self)
	{
		top.location.href = location.pathname;
		return true;
	}
	else return false;
}

var isSwapLoaded = false;
function swapImage(event, sImage)
{
	if (!event) event = window.event;
	var img = (sImage) ? sImage : this;
	var imgID = (img.id) ? img.id : img.name;

	if (isIE && this.outerHTML)
	{
		var outer = trim(this.outerHTML.toLowerCase());
		if ( outer.substring(1,4) == "div" )
		{
			var divSrc = getSrc(img);
			if ( divSrc.slice( divSrc.length-8, divSrc.length-4 ) != "Over" ) //rollOver
			{
				divSrc = divSrc.replace( /^(.*)\.(.*)$/, "$1Over.$2" );
			}
			else divSrc = divSrc.replace( /^(.*)Over(.*)$/, "$1$2" ); //rollBack

			img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizing='scale',src='" + divSrc + "')";
			return true;
		}
		else
		{
			var imgSrc = getSrc(img);
	
			if (event.type == "mouseover") 		imgSrc = imgSrc.replace( /^(.*)\.(.*)$/, "$1Over.$2" ); //rollOver
			else if (event.type == "mouseout") 	imgSrc = imgSrc.replace( /^(.*)Over(.*)$/, "$1$2" ); //rollBack
			img.src = imgSrc;
		}
	}
	else //all other browsers
	{
		var imgSrc = getSrc(img);

		if (event.type == "mouseover") 		imgSrc = imgSrc.replace( /^(.*)\.(.*)$/, "$1Over.$2" ); //rollOver
		else if (event.type == "mouseout") 	imgSrc = imgSrc.replace( /^(.*)Over(.*)$/, "$1$2" ); //rollBack
		img.src = imgSrc;
	}
	return true;
}

function preloadSwaps()
{
	var pageImages = document.getElementsByTagName("img");
	for (x=0; x<pageImages.length; x++)
	{
		img = pageImages[x];
		imgAttributes = img.attributes;
		for (y=0; y<imgAttributes.length; y++)
		{
			if (imgAttributes[y] != null && imgAttributes[y].value != null) //ie 5.5
			{
				attributeValue = imgAttributes[y].value;
				if (attributeValue.indexOf("swapImage") != -1)
				{
					preloadedSwaps[preloadIntloop] = new Image();
					preloadedSwaps[preloadIntloop].src = img.src.replace( /^(.*)\.(.*)$/, "$1Over.$2" );
					preloadIntloop++;
				}
			}
		}
	}
     return true;
}

function selectGalleryImage(event, sImage)
{
	var img = (sImage) ? sImage : this;
	var imgNum = img.id.substring(12,13);
	var img = document.createElement("img");
	img.onload = loadGalleryImage;
	img.id = imgNum;
	img.src = "/images/gallery/img" + imgNum + "Detail.jpg";
}

function loadGalleryImage(e)
{
	$("MainDiv").style.backgroundImage = "url(/images/gallery/img" + this.id + "Detail.jpg)";
	if ($("BodyDiv")) $("BodyDiv").style.display = "none";
}

function isNumber(value)
{
	value = value.toString();

	var workChar = 0;
	var hasDecimal = false;
	for (i=0; i<value.length; i++)
	{
        workChar = value.charAt(i).charCodeAt(0);
		if (workChar == 45) // skip minus sign as first character
		{
			if (i == 0) continue;
			else return false;
        }
        if (workChar == 46) // skip one decimal point 
		{
            if (!hasDecimal)
			{
				hasDecimal = true;
				continue;
            }
			else return false;
        }
        if (workChar < 48 || workChar > 57) return false; // no chars outside of 0 - 9
    }
    return true;
}

function copyArray(arr)
{
	var copy = new Array();
	for (var i=0; i<arr.length; i++)
	{
		copy[i]=arr[i];
	}
	return(copy);
}

function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}

//toFixed for safari, konquerer, KJS, ect
function toFixed(x)
{
	if ( arguments.length == 0 || isNaN(parseInt(x)) ) x = 0; // make sure x is defined.
	else x = parseInt(x);

	var num = this.toString();
	if (num == "NaN") num = "0";
	var dot = num.indexOf(".");

	if (dot == -1 && x != 0) // pad with 0s or truncate
	{
		num += ".";
		for (var i = 0; i < x; i++) num += "0";
	}
	else if (dot + x >= num.length)
	{
		for (var i = num.length - 1; i < dot + x; i++) num += "0"; // pad with 0s
	}
	else if (dot + x < num.length && dot != -1) num = num.substr(0, (dot + 1) + x);
	return num;
}
if (!Number.prototype.toFixed) Number.prototype.toFixed = toFixed;

//cookie handling
//functions written by Danny Goodman

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)
		{
			var endstr = document.cookie.indexOf (";", j);
			if (endstr == -1) endstr = document.cookie.length; 
			
			return unescape(document.cookie.substring(j, endstr));
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break; 
    }
    return "";
}

function getExpDate(days, hours, minutes)
{
	var expDate = new Date();
	if ( (typeof days == "number") && (typeof hours == "number") && (typeof minutes == "number") )
	{
        expDate.setDate(expDate.getDate() + parseInt(days));
        expDate.setHours(expDate.getHours() + parseInt(hours));
        expDate.setMinutes(expDate.getMinutes() + parseInt(minutes));
        return expDate.toGMTString();
    }
}

function setCookie(name, value, expires, path, domain, secure)
{
	document.cookie = name + "=" + escape (value) + ((expires) ? "; expires=" + expires : "") +
					((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-70 00:00:01 GMT";
    }
}

//cookie check
function cookieCheck()
{
	if ( !getCookie("sessionID") )
	{
		if( location.search.indexOf("noCookies") < 1 ) location.replace("/?noCookies=true");
	}
}
//cookieCheck(); //didn't end up working consistently

function PageQuery(q)
{
	if ( q.length > 1 ) this.q = q.substring(1, q.length);
	else this.q = null;
	
	this.keyValuePairs = new Array();
	if (q)
	{
		for(var i=0; i < this.q.split("&").length; i++) { this.keyValuePairs[i] = this.q.split("&")[i]; }
	}

	this.getKeyValuePairs = function() { return this.keyValuePairs; }
	this.getValue = function(s)
					{
						for (var j=0; j < this.keyValuePairs.length; j++)
						{
							if ( this.keyValuePairs[j].split("=")[0] == s ) return this.keyValuePairs[j].split("=")[1];
						}
						return false;
					}
	this.getParameters = function()
						{
							var a = new Array( this.getLength() );
							for( var j=0; j < this.keyValuePairs.length; j++ )
							{
								a[j] = this.keyValuePairs[j].split("=")[0];
							}
							return a;
						}
	this.getLength = function() { return this.keyValuePairs.length; }
}

function queryString(key)
{
	var page = new PageQuery(window.location.search);
	return unescape( page.getValue(key) );
}

function displayItem(key)
{
	if ( queryString(key) =='false' ) document.write("you didn't enter a ?name=value querystring item.");
	else document.write( queryString(key) );
}
