	/* ###################### EXTENDED OBJECT FUNCTIONALITY ####################*/
	Object.extend(Element, {
		getWidth: function(element) {
		   	element = $(element);
		   	return element.offsetWidth; 
		},
		setWidth: function(element,w) {
		   	element = $(element);
	    	element.style.width = w +"px";
		},
		setHeight: function(element,h) {
	   		element = $(element);
	    	element.style.height = h +"px";
		},
		setTop: function(element,t) {
		   	element = $(element);
	    	element.style.top = t +"px";
		},
		setLeft: function(element,t) {
		   	element = $(element);
	    	element.style.left = t +"px";
		},	
		setSrc: function(element,src) {
	    	element = $(element);
	    	element.src = src; 
		},
		setHref: function(element,href) {
	    	element = $(element);
	    	element.href = href; 
		},
		setInnerHTML: function(element,content) {
			element = $(element);
			element.innerHTML = content;
		}
	});
	
	/* ###################### MAIN AJAX FUNCTIONALITY ####################*/
	
	/*
	function mainBoxContentSwitch(flName) {
		document.getElementById("mainContentContainer").innerHTML = "&nbsp;";
		document.getElementById("mainContentContainer").style.height = "300px";
		document.getElementById("mainContentContainer").style.backgroundImage = "url(\"images/basicelements/contentpreloader.gif\")";
		document.getElementById("mainContentContainer").style.backgroundPosition = "center bottom";
		document.getElementById("mainContentContainer").style.backgroundRepeat = "no-repeat";
		// ajax to grab content
		setTimeout("ajaxSwitch('"+flName+"','mainContentContainer','1')", 100);
	}
	*/
	
	pageURL = "";
	
	function ajaxSwitch(flName,divName,fnNum) {
		var url = flName;
		var div = divName;
		var num = fnNum;
		
		var parts = splitURL(url);
		var url = parts[0];
		pageURL = url;
	
		var pars = 'rand=' + Math.floor(Math.random() * 999) + '&' + parts[1];
		
		var myAjax = new Ajax.Request( 
			url,
			{
				method: 'post',
				parameters: pars,
				onComplete:  function(response) { 
													if(num == 1)
													    {
														mainBoxContentLoad(response, divName);
														}
													if(num == 2)
													    {
														rightNaviContentLoader(response,"test","test");
														}
													if(num == 3)
													 	{
													 	checkoutBoxContentLoad(response);
													 	}
												},
														         
				onFailure: function() { mainBoxContentLoad(response, divName);}
				
			}
	   );
	}
	
	function mainBoxContentLoad(response, divName) {	
		document.getElementById(divName).style.background = "none";
		document.getElementById(divName).style.height = "auto";			
		document.getElementById(divName).innerHTML = response.responseText;
	//	titleChange();
	//	fix.fixLinks(true);
	}
	
	function checkoutBoxContentLoad(response) {	
		document.getElementById("checkoutbox").style.background = "none";
		document.getElementById("checkoutbox").style.height = "auto";			
		document.getElementById("checkoutbox").innerHTML = response.responseText;
	//	titleChange();
	//	fix.fixLinks(true);
	}
	
	function rightNaviContentLoader(lnk,text,link) {	
		var url = lnk;
		var pars = 'rand=' + Math.floor(Math.random() * 999);
		
		var myAjax = new Ajax.Request( lnk,
			{
				method: 'post',
				parameters: pars,
				onFailure: function() { document.getElementById("welcome").innerHTML = "Error receiving content. Please refresh"; },
				
				onComplete: function(response) {		
													//document.writeln(response.responseText)
													document.getElementById("welcome").style.background = "none";
													document.getElementById("welcome").style.height = "auto";		
													document.getElementById("welcome").innerHTML = "<a href='/'>&lt; continue shopping</a></div>";


													//document.writeln(response.responseText)
													document.getElementById("storelinks").style.background = "none";
													document.getElementById("storelinks").style.height = "auto";			
													document.getElementById("storelinks").innerHTML = "<a href='#' onclick='lightboxWin('recentlyviewed'); return false;'>recently viewed</a>|<a href='MyAccountAction.do?reload=true');'>my account</a>|<a href='javascript:rightNaviContentLoader('CheckoutAction.do','welcome','1')'>check-out</a>|<a href='#' id='mybaglnk' onclick='lightboxWin('mybag'); return false;' >my bag</a>";


													document.writeln(response.responseText)
												}
		} );
	}
	/* ###################### EMAIL REGISTRATION BOX ####################*/
	
	/*function submitPersonalDetails() {
		// process data
		// code goes here
		
		// close lightbox
		pumaLightbox.close();
	}*/
	
	
	/* ######################## SEND TO FRIEND ######################*/
	/*function sendToFriend() {
		// ------------------------------
		// process data -- code goes here
		// ------------------------------
		
		pumaLightbox.contentSrc = "SendToFriendThanks.do";
		pumaLightbox.populate();
	
		// lightbox sizing
		var lObj = pumaLightbox.obj_lbcontent;
		var lHeight = lObj.offsetHeight;
		var lsperc = Math.floor(100 * (250 / lHeight)); // 290 is new height;
	
		new Effect.Parallel(
			[ new Effect.Scale(lObj, lsperc,
				{ sync: true, scaleX: false, scaleY:true, scaleFromCenter: false, scaleContent: false, scaleMode: { originalHeight: lHeight, originalWidth: 660 } } ) 
			],
			{ duration: 0.3 }
		);
	}
	
	function openSendToFriend() {
		
		pumaLightbox.contentSrc = "SendToAFriendAction.do";
		pumaLightbox.populate();
		
		// lightbox sizing
		var lObj = pumaLightbox.obj_lbcontent;
		 alert(pumaLightbox);
		var lHeight = lObj.offsetHeight;
		var lsperc = Math.floor(100 * (410 / lHeight)); // 290 is new height;
	
		new Effect.Parallel(
			[ new Effect.Scale(lObj, lsperc,
				{ sync: true, scaleX: false, scaleY:true, scaleFromCenter: false, scaleContent: false, scaleMode: { originalHeight: lHeight, originalWidth: 660 } } ) 
			],
			{ duration: 0.1 }
		);
		
	}*/
	
	
	
	/* ###################### SEARCH FUNCTIONALITY ####################*/
	/*var qVal = "";
	function searchSub(frmObj) {
		qVal = document.getElementById("q").value;
		if (qVal != 'search' && qVal != '') {
			if(document.iframesfix) {
				document.getElementById('ajaxnav').setAttribute('src', 'history.php?p=search.php?&a=1&q='+qVal);
			} else {
				document.location.href = '#search.php?a=1&q='+qVal;
			}
		} else {
			searchError(frmObj,'on');
		}
	}
	
	var objSearchError;
	function searchError(frmObj,status) {
		if (!objSearchError) {
			objBody = document.getElementsByTagName("body").item(0);
	
			objSearchError = document.createElement("div");
			objSearchError.setAttribute('id','searchError');
			objSearchError.style.display = 'none';
			objBody.appendChild(objSearchError);
			objSearchError.innerHTML = "Please enter a search term";
	
			q = document.getElementById("q");
			qWrap = document.getElementById("inputwrapper");
	
			Element.setTop(objSearchError,findPosY(q));
			Element.setLeft(objSearchError,findPosX(q) + Element.getWidth(qWrap) );
		}
		if (status=='on') {
			new Effect.Appear(objSearchError, { duration: .25, afterFinish: function() {
				setTimeout("searchError('"+frmObj+"','off')",850);
			}});
		} else {
			new Effect.Fade(objSearchError, { duration: .25, from: 1.0, to: 0 });
		}
		return false;
	}*/
	
	
	/* ###################### PRODUCT DETAIL COLOR SWITCHER ####################*/
	/*function colorSwitch(elem,newId,newSrc,colortxt) {
		document.getElementById("shoemedium").src = shoecolorpath + newSrc + imageext;
		document.getElementById("colortxt").innerHTML = colortxt;
		document.getElementById("itemID").innerHTML = newId;
		
		for (i=0; i<elem.parentNode.parentNode.getElementsByTagName("li").length; i++) {
			elem.parentNode.parentNode.getElementsByTagName("li")[i].className = "";
		}
		elem.parentNode.className = "focused";
		currentColorIndex = elem.parentNode;
	
		defaultColor = newSrc;
		defaultColorTxt = colortxt;
		defaultItemTxt = newSrc;	
		document.getElementById("chosencolor").value = newSrc;
	}*/
	
	
	/* ###################### EXTRA PROTOTYPES AND FUNCTIONS ####################*/
	
	
	//
	// getPageScroll()
	// Returns array with x,y page scroll values.
	// Core code from - quirksmode.org
	//
	function getPageScroll(){
		var yScroll;
	
		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
		} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
			yScroll = document.documentElement.scrollTop;
		} else if (document.body) {// all other Explorers
			yScroll = document.body.scrollTop;
		}
	
		arrayPageScroll = new Array('',yScroll) 
		return arrayPageScroll;
	}
	
	// -----------------------------------------------------------------------------------
	
	//
	// getPageSize()
	// Returns array with page width, height and window width, height
	// Core code from - quirksmode.org
	// Edit for Firefox by pHaez
	//
	function getPageSize(){
		
		var xScroll, yScroll;
		
		if (window.innerHeight && window.scrollMaxY) {	
			xScroll = document.body.scrollWidth;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		
		var windowWidth, windowHeight;
		if (self.innerHeight) {	// all except Explorer
			windowWidth = self.innerWidth;
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		
		// for small pages with total height less then height of the viewport
		if(yScroll < windowHeight){
			pageHeight = windowHeight;
		} else { 
			pageHeight = yScroll;
		}
	
		// for small pages with total width less then width of the viewport
		if(xScroll < windowWidth){	
			pageWidth = windowWidth;
		} else {
			pageWidth = xScroll;
		}
	
	
		arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
		return arrayPageSize;
	}
	
	
	function showSelectBoxes(){
		selects = document.getElementsByTagName("select");
		for (i = 0; i != selects.length; i++) {
			selects[i].style.visibility = "visible";
		}
	}
	
	// ---------------------------------------------------
	
	function hideSelectBoxes(){
		selects = document.getElementsByTagName("select");
		for (i = 0; i != selects.length; i++) {
			selects[i].style.visibility = "hidden";
		}
	}
	
	function findPosX(obj) {
		var curleft = 0;
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x) curleft += obj.x;
		return curleft;
	}
	
	function findPosY(obj) {
		var curtop = 0;
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}
		else if (obj.y) curtop += obj.y;
		return curtop;
	}
	
	// browser detection
	var _appName = navigator.appName;
	var _appVersion = navigator.appVersion;
	var _userAgent = navigator.userAgent.toLowerCase();
	
	function getBrowser() {      
	      var browser = '';
	      
	      if ((_appName.indexOf('Microsoft') != -1) && (_userAgent.indexOf('mac') == -1)) {
			  browser = 'IE';
		  } else if ((_appName.indexOf('Microsoft') != -1) && (_userAgent.indexOf('mac') != -1)) {		
		      browser = 'Other';
		  } else if (_userAgent.indexOf('safari') != -1) {
			  browser = 'Safari';
		  } else if (_userAgent.indexOf('firefox') != -1) {
			  browser = 'Firefox';
		  } else {
			  browser = 'Other';
		  }
		  return browser;
	}
	
	// ---------------------------------------------------
	
	//
	// pause(numberMillis)
	// Pauses code execution for specified time. Uses busy code, not good.
	// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
	//
	function pause(numberMillis) {
		var now = new Date();
		var exitTime = now.getTime() + numberMillis;
		while (true) {
			now = new Date();
			if (now.getTime() > exitTime)
				return;
		}
	}
	
	function ns6fix() {
		if (navigator.userAgent.toLowerCase().indexOf('netscape')!=-1 && parseInt(parseFloat(navigator.appVersion)+1)==6) {
			objBodyWrap = document.getElementsByTagName("body").item(0);
			objAllDivs = document.getElementsByTagName("div");
			var objClear;
	
			for (i=0; i<objAllDivs.length; i++) {
				objClear = document.createElement("span");
				objClear.className = "clearblock";
				objClear.innerHTML = "&nbsp;";
				curDiv = objAllDivs[i];
				curDiv.appendChild(objClear);
			}
		}
	}
	
	function ajaxPrep() {
		var links = document.getElementsByTagName("A");
		for(var i=0; i<links.length; i++) {
			var rel = links[i].getAttribute("rel");
			var href = links[i].getAttribute("href");
			var pref = "&";
			if (rel == "contents") {
				if (href.indexOf("?") == -1) pref = "?";
				links[i].setAttribute("href","#" + href + pref + "a=1");
			}
		}
	}
	
	function htmlNavAct(elem) {
		var ulElemsAtLevel = elem.parentNode.parentNode.getElementsByTagName("ul");
		var ulElemToToggle = elem.parentNode.getElementsByTagName("ul")[0];
	
		for (i=0; i<ulElemsAtLevel.length; i++) {
			if (ulElemsAtLevel[i] == ulElemToToggle) {
				ulElemToToggle.style.display = (ulElemToToggle.style.display == "block") ? "none" : "block";
			} else {
				ulElemsAtLevel[i].style.display = "none";
			}
		}
	}
	
	function init() {
		//FixBackAndBookmarking();
		//getAddToBagID('addtobaganim');
		ns6fix();
	}


