Df.ExpressShop = {

	_pars: {
		className: 'expressShop',
		iframe: true,
		animate: false,
		activeControllerClassName: 'activeController',
		controller: false

	},

	_element: false,
	_on: true,
	_animate: false,
	_request: null,
	_expressBox: null,

	addActiveTitleState: function(e){
		Event.stop(e)
		alert(this.pars.activeControllerClassName);

		return this
	},


	createExpress: function(expressBox){
		Df.ExpressShop._expressBox = expressBox
		Df.Modal.getUiInstance().element.observe(':hide',function(e){
			this.hide()
		}.bind(Df.ExpressShop._expressBox));

		return Df.ExpressShop
	},

	showExpressShop: function(showThisProdID, currentCategoryId, currentProduct){
		$$('.expressShop')[0].innerHTML = "";
		Df.Lightbox.getDialog().getElement().center();
		Df.Lightbox.show();
		Df.ExpressShop.getProduct(showThisProdID, currentCategoryId, currentProduct);

		return Df.ExpressShop
	},

	// execJS() - Executes JavaScript returned in the asynchronous response.
	execJS: function(node){
		var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
		var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
		var bMoz = (navigator.appName == 'Netscape');
		var st = node.getElementsByTagName('SCRIPT');
		var strExec;
		for(var i=0;i<st.length; i++) {
			if (bSaf) { strExec = st[i].innerHTML; }
			else if (bOpera) { strExec = st[i].text; }
			else if (bMoz) { strExec = st[i].textContent; if (strExec==undefined){strExec = st[i].text;}}
			else { strExec = st[i].text; }
			try { eval(strExec); }
			catch(e) { alert(e); }
		}
	},

	createXMLHttpRequest: function(){
		if (window.ActiveXObject) {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else if (window.XMLHttpRequest) {
			request = new XMLHttpRequest();
		}
	},

	getProduct: function(showThisProdID, currentCategoryId, currentProduct){
		Df.ExpressShop.createXMLHttpRequest();

		var queryString2 = "../product/productDetails.jsp?productId="+showThisProdID+"&currentCategoryId="+currentCategoryId+"&currentProduct="+currentProduct;
		request.open("GET", queryString2, true);
		request.onreadystatechange = Df.ExpressShop.buildExpressShop;
		// setRequestHeader() is for Safari, so rapid request requests don't logjam in the browser.
		request.setRequestHeader('If-Modified-Since', 'Wed, 15 Nov 1995 00:00:00 GMT');
		request.send(null);
	},

	buildExpressShop: function(){
		if(request.readyState == 4) {
			if(request.status == 200) {
				$$('.expressShop')[0].innerHTML = request.responseText;
				Df.ExpressShop.execJS($$('.expressShop')[0]);
				$$('.expressShop')[0].style.display = "";
				$$('.expressShop')[0].addClassName('loaded');
				$('quickClose').setStyle({display: 'block'});
				$('quickTitle').setStyle({display: 'block'});

				//Df.Modal._element.getElement()._pars.minHeight = 'category3414903'

				Df.Lightbox.getDialog().getElement().center();

				if(Prototype.Browser.ie6){
					 var o = document.viewport.getScrollOffsets()
					 Df.Modal._element.iframe.setStyle({
						  left: o.left + 'px',
						  top: o.top + 'px'
					 })
					 Df.Modal._element.getElement().setStyle({
						  left: o.left + 'px',
						  top: o.top + 'px'
					 })

					 var o = document.viewport.getScrollOffsets()
					 Df.Lightbox.getDialog().getElement().setStyle({ top: (o.top + 50) + 'px'})
				}
			} else {
				alert("Unable to retrieve a response from the server.");
			}
		}

		//hide filter forms.
		if ($('filterTop')) { $('filterTop').style.visibility = 'hidden'; }
		if ($('filterBottom')) { $('filterBottom').style.visibility = 'hidden'; }

		// raise the expressShop div to a visible z-index after burying it in centerDiv().
		document.getElementById("expressShop").style.zIndex= "103";
	},


	resetVars: function(){
		mainColorMap = new Array();
		mainSizeMap = new Array();
		prodId = '';
		swatchIds= '';
		swatchSize = 0;
		sizeAvail = "true";
		newCartProducts = new Array();
		grouping = 0;
		allItemArray = new Array();
	}
}
