// JavaScript Document

var gseLinks = {
	
	addListeners: function() {
		if (!document.getElementsByTagName || !document.getElementById)
			return;		

		// set listeners on new window and frame links
		var arrAs = document.getElementsByTagName('a');
		
		for (i=0; i < arrAs.length; i++) {
			if (arrAs[i].className == 'lnkNewWindow' || arrAs[i].className == 'lnkInFrame1' || arrAs[i].className == 'lnkInFrame2' || arrAs[i].className == 'lnkInFrame3') {
				var objA = arrAs[i];
				rwScript.addEvent(objA, 'click', gseLinks.getLinkClick(objA), false);
				objA.onclick = gseLinks.cancelClick;
			}
		}
		
		var objMainContent = document.getElementById('mainContent');
		var arrDIVs = objMainContent.getElementsByTagName('div');
		for (i=0; i < arrDIVs.length; i++) {
			if (arrDIVs[i].className == 'catObject') {
				var objDIV = arrDIVs[i];
				rwScript.addEvent(objDIV, 'mouseover', gseLinks.getCatOver(objDIV), false);
				rwScript.addEvent(objDIV, 'mouseout', gseLinks.getCatOut(objDIV), false);
				rwScript.addEvent(objDIV, 'click', gseLinks.getCatClick(objDIV), false);
			}
			if (arrDIVs[i].className == 'prdObject') {
				var objDIV = arrDIVs[i];
				rwScript.addEvent(objDIV, 'mouseover', gseLinks.getPrdOver(objDIV), false);
				rwScript.addEvent(objDIV, 'mouseout', gseLinks.getPrdOut(objDIV), false);
				rwScript.addEvent(objDIV, 'click', gseLinks.getPrdClick(objDIV), false);
			}
		}
		
		// Open URL In Frame
		if (openInFrame.strURL != '') {
			var frmTarget = document.getElementById('iFrmTarget')
			if (frmTarget.style.display != 'block') {
				frmTarget.style.display = 'block';
			}
			frmTarget.src = openInFrame.strURL + '.asp';
		}

		// Window Dim Object
		var objDimWindow = document.getElementById('dimWindow');
		rwScript.addEvent(objDimWindow, 'click', gseLinks.activateWindow, false);
	},

	loadNewPage: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		if (el.className == 'lnkNewWindow') {
			// Open Link in New Window
			var newWindow = '';
			if (!newWindow.closed && newWindow.location) {
				newWindow.location.href = el.href;
			} else {
				newWindow=window.open(el.href,'newWindow','toolbar=no,status=no,resizable=yes,height=500,width=500');
				if (!newWindow.opener) {
					newWindow.opener = self;
				}
				newWindow.location.href = el.href;
			}
			
			if (window.focus) {
				newWindow.focus();
			}
		} else {
			if (el.className.indexOf('lnkInFrame') >= 0) {
				// Open Link in iFrame
				var intTarget = el.className.substring(10);
				var frmTarget = document.getElementById('iFrmTarget' + intTarget)
				if (frmTarget.style.display == 'block') {
					frmTarget.src = el.href;
				} else {
					frmTarget.style.display = 'block';
					frmTarget.src = el.href;
				}
			}
			
			var intCurrentPosition = 0;
			var strID = frmTarget.id;
	
			// determine target panel's current depth
			for (i = 0; i < gseLinks.arrFrameStack.length; i++) {
				if (gseLinks.arrFrameStack[i] == strID) {
					if (i == 0) {
						return;
					} else {
						intCurrentPosition = i;
					}
				}
			}
			
			// re-order depth list
			for (i = intCurrentPosition; i >= 1; i--) {
				gseLinks.arrFrameStack[i] = gseLinks.arrFrameStack[i - 1];
			}
			gseLinks.arrFrameStack[0] = strID;
	
			// set new depths based on depth list
			var objOne = document.getElementById(gseLinks.arrFrameStack[1]);
			var objTwo = document.getElementById(gseLinks.arrFrameStack[2]);
	
			frmTarget.style.zIndex = 10;
			objOne.style.zIndex = 7;
			objTwo.style.zIndex = 6;
			
			// make sure current frame does not appear outside screen
			if (window.innerWidth) {
				var intWinHeight = window.innerHeight;
				var intWinWidth = window.innerWidth;
			} else {
				var intWinHeight = document.documentElement.clientHeight;
				var intWinWidth = document.body.clientWidth;
			}
			var intTargetOne = objOne.id.substring(10);
			var intTargetTwo = objTwo.id.substring(10);
			
			var intFrameTop = gseLinks.intFrameBottom[intTarget] + frmTarget.offsetHeight;
			if (intFrameTop > intWinHeight) {
				var intFrameBottom = intWinHeight - (frmTarget.offsetHeight + 30);
				frmTarget.style.bottom = (intFrameBottom - gseLinks.intFrameAdjustment[intTarget]) + 'px';
				objOne.style.bottom = (intFrameBottom - gseLinks.intFrameAdjustment[intTargetOne]) + 'px';
				objTwo.style.bottom = (intFrameBottom - gseLinks.intFrameAdjustment[intTargetTwo]) + 'px';
			}
		}
		
		return false;
	},
	getLinkClick: function (node) { return function(e) { gseLinks.loadNewPage(e, node); }; },
	cancelClick: function() { return false; },

	catOver: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		var strID = el.id;
		var intCatID = strID.substring(4);
		
		var strBrowser = rwScript.identifyBrowser();
		if (strBrowser == "ie5" || strBrowser == "ie5.5" || strBrowser == "ie6" || strBrowser == false) {
			el.style.backgroundPosition = '-131px 7px';
		}
		
		el.style.cursor = "pointer";
	},
	getCatOver: function (node) { return function(e) { gseLinks.catOver(e, node); }; },

	catOut: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		var strID = el.id;
		var intCatID = strID.substring(4);

		var strBrowser = rwScript.identifyBrowser();
		if (strBrowser == "ie5" || strBrowser == "ie5.5" || strBrowser == "ie6" || strBrowser == false) {
			el.style.backgroundPosition = '-2px 7px';
		}

		el.style.cursor = "auto";
	},
	getCatOut: function (node) { return function(e) { gseLinks.catOut(e, node); }; },

	catClick: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		var strID = el.id;
		var intCatID = strID.substring(4);

		window.location.href = "gse_prd_cat_Detail.asp?catID=" + intCatID;
	},
	getCatClick: function (node) { return function(e) { gseLinks.catClick(e, node); }; },

	prdOver: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		var strID = el.id;
		var intProductID = strID.substring(4);

		el.style.cursor = "pointer";
		window.status = "http://www.goose.com.au/gse_prd_Info.asp?prdID=" + intProductID;
	},
	getPrdOver: function (node) { return function(e) { gseLinks.prdOver(e, node); }; },

	prdOut: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		el.style.cursor = "auto";
		window.status = "";
	},
	getPrdOut: function (node) { return function(e) { gseLinks.prdOut(e, node); }; },

	prdClick: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		var strID = el.id;
		var intProductID = strID.substring(4);

		var frmTarget = document.getElementById('iFrmTarget1')
		if (frmTarget.style.display == 'block') {
			frmTarget.src = "gse_prd_Info.asp?prdID=" + intProductID;
		} else {
			// Make sure product frame does not appear outside screen
			if (window.innerWidth) {
				var intWinHeight = window.innerHeight;
				var intWinWidth = window.innerWidth;
			} else {
				var intWinHeight = document.documentElement.clientHeight;
				var intWinWidth = document.body.clientWidth;
			}
			
			frmTarget.style.display = 'block';
			frmTarget.src = "gse_prd_Info.asp?prdID=" + intProductID;
			intFrameTop = 365 + frmTarget.offsetHeight;
			
			if (intFrameTop > intWinHeight) {
				intNewBottom = intWinHeight - (frmTarget.offsetHeight + 30);
				frmTarget.style.bottom = intNewBottom + 'px';
			}
		}
		
		gseLinks.changeDepth(frmTarget);
	},
	getPrdClick: function (node) { return function(e) { gseLinks.prdClick(e, node); }; },

	changeDepth: function (el) {
		var intCurrentPosition = 0;
		var strID = el.id;

		// determine target panel's current depth
		for (i = 0; i < gseLinks.arrFrameStack.length; i++) {
			if (gseLinks.arrFrameStack[i] == strID) {
				if (i == 0) {
					return;
				} else {
					intCurrentPosition = i;
				}
			}
		}
		
		// re-order depth list
		for (i = intCurrentPosition; i >= 1; i--) {
			gseLinks.arrFrameStack[i] = gseLinks.arrFrameStack[i - 1];
		}
		gseLinks.arrFrameStack[0] = strID;

		// set new depths based on depth list
		var objTop = document.getElementById(gseLinks.arrFrameStack[0]);
		var objOne = document.getElementById(gseLinks.arrFrameStack[1]);
		var objTwo = document.getElementById(gseLinks.arrFrameStack[2]);
		var objThree = document.getElementById(gseLinks.arrFrameStack[3]);

		objTop.style.zIndex = 20;
		objOne.style.zIndex = 15;
		objTwo.style.zIndex = 14;
		objThree.style.zIndex = 13;

		// make sure current frame does not appear outside screen
		if (window.innerWidth) {
			var intWinHeight = window.innerHeight;
			var intWinWidth = window.innerWidth;
		} else {
			var intWinHeight = document.documentElement.clientHeight;
			var intWinWidth = document.body.clientWidth;
		}
		var intTargetTop = objTop.id.substring(10);
		var intTargetOne = objOne.id.substring(10);
		var intTargetTwo = objTwo.id.substring(10);
		var intTargetThree = objThree.id.substring(10);
		
		var intFrameTop = gseLinks.intFrameBottom[intTargetTop] + objTop.offsetHeight;
		if (intFrameTop > intWinHeight) {
			var intFrameBottom = intWinHeight - (objTop.offsetHeight + 30);
			objTop.style.bottom = (intFrameBottom - gseLinks.intFrameAdjustment[intTargetTop]) + 'px';
			objOne.style.bottom = (intFrameBottom - gseLinks.intFrameAdjustment[intTargetOne]) + 'px';
			objTwo.style.bottom = (intFrameBottom - gseLinks.intFrameAdjustment[intTargetTwo]) + 'px';
			objThree.style.bottom = (intFrameBottom - gseLinks.intFrameAdjustment[intTargetThree]) + 'px';
		}
	},
	
	emailFocus: function () {
		var objEmailAddress = document.getElementById('mailingListEmail');
		if (objEmailAddress.value == 'enter your email') {
			objEmailAddress.value = '';
			objEmailAddress.style.color = '#000000';
		}
	},

	emailBlur: function () {
		var objEmailAddress = document.getElementById('mailingListEmail');
		if (objEmailAddress.value == 'enter your email' || objEmailAddress.value == '') {
			objEmailAddress.value = 'enter your email';
			objEmailAddress.style.color = '#777777';
		}
	},

	activateWindow: function () {
		var objDimWindow = document.getElementById('dimWindow');
		objDimWindow.style.display = 'none';
		objDimWindow.style.height = '1px';
		objDimWindow.style.width = '1px';
	},

	arrFrameStack: ['iFrmTarget1','iFrmTarget2','iFrmTarget3','iFrmTarget4'],
	intFrameBottom: [0,365,350,335,350],
	intFrameAdjustment: [0,0,15,30,15]
};

rwScript.addEvent(window, 'load', gseLinks.addListeners, false);
rwScript.addEvent(window, 'unload', EventCache.flush, false);