


var easyViewer = Class.create({
	xShift: easyViewerConstants ? easyViewerConstants.xShift : 0,
	yShift: easyViewerConstants ? easyViewerConstants.yShift : 0,
	boderWidth: easyViewerConstants ? easyViewerConstants.borderWidth : 0,
	styleLeft: easyViewerConstants ? easyViewerConstants.styleLeft : false,
 
	initialize: function(elementName) {

		var element = $('ev' + elementName);
		if (element != null) {
			this.elementName = elementName;
			this.element = element;
			
			this.enhanceShadow();
			
			this.shadow = $('ev' + this.elementName + 'Shadow');
			this.shadowIFrame = $('ev' + this.elementName + 'ShadowIframe');
			
			this.attachActionsToHandles();
		}
		var currentnode = $("evShipInfoWidget");
		var qv = $("evQuickViewWidget");
		var whatThis = $("evWhatThisWidget");
		if(currentnode)
		{
			var parent = currentnode.parentNode;
			// node exists
			if(parent)
			{
				parent.id = "popUps";
				if(qv)
				{
					parent.appendChild(qv);
					qv.style.display='block';
				}
				if(whatThis)
				{
					parent.appendChild(whatThis);
					whatThis.style.display='block';
				}
				currentnode.style.display='block';
				document.body.appendChild(parent);
			}
		}
	},

	enhanceShadow: function() {
		var shadowElement = new Element('div', {id: 'ev' + this.elementName + 'Shadow'});
		shadowElement.insert('<table id="tbl' + this.elementName + 'Shadow">'
				           + '	<tr>'
				           + '		<td class="cellTLShadow"></td>'
				           + '		<td class="cellTShadow"></td>'
				           + '		<td class="cellTRShadow"></td>'
				           + '	</tr>'
				           + '	<tr>'
				           + '		<td class="cellLShadow"></td>'
				           + '		<td class="cellCShadow">'
				           + '			<div id="ev' + this.elementName + 'ShadowIframe"></div>'
				           + '		</td>'
				           + '		<td class="cellRShadow"></td>'
				           + '	</tr>'
				           + '	<tr>'
				           + '		<td class="cellBLShadow"></td>'
				           + '		<td class="cellBShadow"></td>'
				           + '		<td class="cellBRShadow"></td>'
				           + '	</tr>'
				           + '</table>');
		this.element.insert({after: shadowElement});
	},

	attachActionsToHandles: function() {
		var openHandles = $$('.ev' + this.elementName + 'OpenHandle');
		for (var i = 0; i < openHandles.length; i++) {
			openHandles[i].easyviewer = this;
			openHandles[i].onclick = this.showHandler;
		}
		
		var closeHandles = $$('.ev' + this.elementName + 'CloseHandle');
		for (var i = 0; i < closeHandles.length; i++) {
			closeHandles[i].easyviewer = this;
			closeHandles[i].onclick = this.hideHandler;
		}
	},
	
	show: function() {
		var isIE6=false;
		if(this.element.id != 'evShopBag' && this.element.id != 'evEnlarge' && this.element.id != 'evPrint')
			this.element.style.top = 135+getY()+"px";
		this.element.style.display = 'block';
		if(navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf("MSIE 6")!=-1) {
			isIE6=true;
		}
		if(this.styleLeft && this.element.id != 'evShopBag' && this.element.id != 'evEnlarge' && this.element.id != 'evPrint') {
			if(document.body.offsetWidth > this.element.offsetWidth) {
				var w_diff = (document.body.offsetWidth - this.element.offsetWidth) / 2;
				this.element.style.left = w_diff+"px";
			} else {
				this.element.style.left = 0+"px";
			}
			//this.element.style.left = ((document.body.offsetWidth - 860) / 2 + (810 - this.element.offsetWidth)) + "px";
		}

		if(isIE6 == false) {
			this.shadowIFrame.style.width = (this.element.offsetWidth - this.boderWidth * 2) + "px";
			this.shadowIFrame.style.height = (this.element.offsetHeight - this.boderWidth * 2) + "px";
			this.shadow.style.left = (this.element.offsetLeft + this.xShift) + "px";
			this.shadow.style.top = (this.element.offsetTop + this.yShift) + "px";		
			this.shadow.style.display = 'block';
		}
		else if(this.element.id != 'evShopBag') {
			//alert('Mode: debugging - nav a');
			
			this.shadowIFrame.style.width = (this.element.offsetWidth - this.boderWidth * 2) + "px";
			this.shadowIFrame.style.height = (this.element.offsetHeight - this.boderWidth * 2) + "px";
			//alert('Mode: debugging - nav b');
			this.shadow.style.left = (this.element.offsetLeft + this.xShift) + "px";
			this.shadow.style.top = (this.element.offsetTop + this.yShift) + "px";
			//alert('Mode: debugging - nav c');
			this.shadow.style.display = 'block';
		}
		if(navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf("MSIE 6")!=-1) {
			var a = document.getElementsByTagName("select");
			for(i=0; i<a.length; i++) {
				document.getElementsByTagName("select")[i].style.visibility="hidden";
			}
		}
	},
	
	showHandler: function() {
		var easyviewer = this.easyviewer;
		easyviewer.show();
		return false;
	},
	
	hideHandler: function() {
		var easyviewer = this.easyviewer;
		easyviewer.element.hide();
		easyviewer.shadow.hide();

		if(navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf("MSIE 6")!=-1) {
			var a = document.getElementsByTagName("select");
			for(i=0; i<a.length; i++) {
				document.getElementsByTagName("select")[i].style.visibility="visible";
			}
		}

		return false;	
	}
});



function getY(e) {
	var y;
	if(browser.isIE)
		y=document.documentElement.scrollTop+document.body.scrollTop;

	if(browser.isNS)
		y=window.scrollY;
	return y;
}
function Browser(){
	var ua,s,i;
	this.isIE=false;
	this.isNS=false;
	this.version=null;
	ua=navigator.userAgent;
	s="MSIE";
	if((i=ua.indexOf(s))>=0){
		this.isIE=true;
		this.version=parseFloat(ua.substr(i+s.length));
		return;
	}
	s="Netscape6/";
	if((i=ua.indexOf(s))>=0){
		this.isNS=true;
		this.version=parseFloat(ua.substr(i+s.length));
		return;
	}

	s="Gecko";
	if((i=ua.indexOf(s))>=0){
		this.isNS=true;
		this.version=6.1;
		return;
	}
}
var browser=new Browser();
