	var browserName=navigator.appName; 
	var ie = false;
	
	if (browserName.indexOf("Internet Explorer") > 0 ){
		ie = true;
	}
	
	function MM_preloadImages() { //v3.0
	  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}
	
	function MM_swapImgRestore() { //v3.0
	  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	
	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	
	function MM_swapImage() { //v3.0
	  MM_swapImgRestore();var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}
	
	var bgBox;
	var theBox;
	var theBox2;
	var iPop;
	var sd = 0;
	
	function opacity(id, opacStart, opacEnd, millisec) {
		//speed for each frame
		var speed = Math.round(millisec / 100);
		var timer = 0;
	
		//determine the direction for the blending, if start and end are the same nothing happens
		if(opacStart > opacEnd) {
			for(i = opacStart; i >= opacEnd; i--) {
				setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
				timer++;
			}
		} else if(opacStart < opacEnd) {
			for(i = opacStart; i <= opacEnd; i++)
				{
				setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
				timer++;
			}
		}
	}
	
	//change the opacity for different browsers
	function changeOpac(opacity, id) {
		var object = getObj(id);
		object.opacity = (opacity / 100);
		object.MozOpacity = (opacity / 100);
		object.KhtmlOpacity = (opacity / 100);
		object.filter = "alpha(opacity=" + opacity + ")";
		sizeBG();
		if (opacity == 0){
			object.display = 'none';
		}else{
			object.display = 'block';
		}
	} 

	function send(delUrl) {
		window.open(delUrl, '_self');
	}
	
	function showBasket(which) {
		window.scrollTo(0, 0);
		showBG();
		setTimeout("showBox('" + which + "')",500);
	}
	
	function showView(which) {
		window.scrollTo(0, 0);
		showBG();
		setTimeout("showBox('" + which + "')",500);
	}
	
	function hideView(which) {
		clearTimeout(iPop);
		if (ie == true){
			theBox = getObj('viewDetails' + which);
			theBox.display = 'none';
		}else{
			opacity('viewDetails' + which, 100, 0, 400);
		}
		setTimeout("hideBG()",500);
	}
	
	function showBox(which){
		var ScrollTop = document.body.scrollTop;
		if (ScrollTop == 0)	{
			if (window.pageYOffset){
				ScrollTop = window.pageYOffset;
			}else{
				ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
			}
		}
		
		theBox = getObj('viewDetails' + which);
		theBox2 = getObj2('viewDetails' + which);
		theBox.display = 'block';
		var page = getPageSize();
		theBox.left = ((page.width / 2) - (theBox2.offsetWidth/2)) + 'px';
		//theBox.top = '50px';
		
		theBox.top = (125) + 'px';
		
		if (ie == false){
			theBox.filter = "alpha(opacity=0)";
			theBox.MozOpacity = 0;
			theBox.Opacity = 0;
			opacity('viewDetails' + which, 0, 100, 400);
		}
		
		sd = 0;
		startDrag(which);
	}
	
	function startDrag(which){
		var theBox2 = getObj2('viewDetails' + which);
		var theBar = getObj2('viewDetailsH2' + which);
		var page = getPageSize();
		Drag.init(theBar);
    	theBar.onDrag = function(x, y) { reportDrag(page, theBox2, x, y); }
	}
	
	function showBG() {
		bgBox = getObj('bgBox');
		var page = getPageSize();
		bgBox.height = page.height + 'px';
		bgBox.width = page.width + 'px';
		bgBox.display = "block";
		if (ie == false){
			bgBox.filter = "alpha(opacity=0)";
			bgBox.mozOpacity = 0;
			bgBox.opacity = 0;
			opacity('bgBox', 0, 70, 400);
		}
	}
	
	function sizeBG() {
		bgBox = getObj('bgBox');
		var page = getPageSize();
		bgBox.height = page.height + 'px';
		bgBox.width = page.width + 'px';
	}

	function hideBG() {
		bgBox = getObj('bgBox');
		if (ie == true){
			bgBox.display = 'none';
		}else{
			opacity('bgBox', 70, 0, 400);
		}
	}
	
	function getObj(name) {
		if (document.getElementById) {
			return document.getElementById(name).style;
		} else if (document.all) {
			return document.all[name].style;
		} else if (document.layers) {
			return document.layers[name];
		}
	}
	
	function getObj2(name) {
		if (document.getElementById){
			return document.getElementById(name);
		}else if (document.all){
			return document.all[name];
		}else if (document.layers){
			return document.layers[name];
		}
	}
	
	function getPageSize() {
		var d = document,
		db = d.body,
		de = d.documentElement,
		mode = d.compatMode;
		
		var num = new Array();
		var maxi = 1;
		
		num[0] = parseInt(db.clientHeight);
		num[1] = parseInt(db.scrollHeight);
		num[2] = parseInt(db.offsetHeight);
		num[3] = parseInt(de.clientHeight);
		num[4] = parseInt(de.scrollHeight);
		num[5] = parseInt(de.offsetHeight);
		
		for (var h in num) {
			if (h > maxi){
				h = maxi;	
			}
		}
		
		w = Math.max(db && +db.scrollWidth || 0,
		de && +de.scrollWidth || 0),
		h = Math.max(db && +db.scrollHeight || 0,
		de && Math.max(+de.scrollHeight || 0,
		+de.clientHeight || 0) || 0);
		if (mode == "BackCompat" && db && de && de.clientWidth === 0) {
			w = +db.scrollWidth;
			h = +db.clientHeight;
		}
		return { width: w, height: h };
	}
	   
	function showCartResults(message){
		window.scroll(0,0);
		getObj2('cartResult').innerHTML = message;
		showBG();
		setTimeout("showBox('1')",500);
		iPop = setTimeout("hideCartResults();",4500);
	}
	
	function hideCartResults(){
		opacity('viewDetails1', 100, 0, 400);
		setTimeout("hideBG()",500);
	}
  
	function showMessage(message){
		window.scroll(0,0);
		getObj2('cartResult').innerHTML = message;
		showBG();
		setTimeout("showBox('1')",500);
		iPop = setTimeout("hideCartResults()",10500);
	}
	
	var Drag = {

        obj: null,

        init: function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper) {
            o.onmousedown = Drag.start;

            o.hmode = bSwapHorzRef ? false : true;
            o.vmode = bSwapVertRef ? false : true;

            o.root = oRoot && oRoot != null ? oRoot : o;

            if (o.hmode && isNaN(parseInt(o.root.style.left))) o.root.style.left = "0px";
            if (o.vmode && isNaN(parseInt(o.root.style.top))) o.root.style.top = "0px";
            if (!o.hmode && isNaN(parseInt(o.root.style.right))) o.root.style.right = "0px";
            if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

            o.minX = typeof minX != 'undefined' ? minX : null;
            o.minY = typeof minY != 'undefined' ? minY : null;
            o.maxX = typeof maxX != 'undefined' ? maxX : null;
            o.maxY = typeof maxY != 'undefined' ? maxY : null;

            o.xMapper = fXMapper ? fXMapper : null;
            o.yMapper = fYMapper ? fYMapper : null;

            o.root.onDragStart = new Function();
            o.root.onDragEnd = new Function();
            o.root.onDrag = new Function();
        },

        start: function(e) {
            var o = Drag.obj = this;
            e = Drag.fixE(e);
            var y = parseInt(o.vmode ? o.root.style.top : o.root.style.bottom);
            var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right);
            o.root.onDragStart(x, y);

            o.lastMouseX = e.clientX;
            o.lastMouseY = e.clientY;

            if (o.hmode) {
                if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;
                if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;
            } else {
                if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
                if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
            }

            if (o.vmode) {
                if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;
                if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;
            } else {
                if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
                if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
            }

            document.onmousemove = Drag.drag;
            document.onmouseup = Drag.end;

            return false;
        },

        drag: function(e) {
			sd += 1;
            e = Drag.fixE(e);
            var o = Drag.obj;

            var ey = e.clientY;
            var ex = e.clientX;
            var y = parseInt(o.vmode ? o.root.style.top : o.root.style.bottom);
            var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right);
            var nx, ny;

            if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
            if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
            if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
            if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);

            nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
            ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));

            if (o.xMapper) nx = o.xMapper(y)
            else if (o.yMapper) ny = o.yMapper(x)
			
			if(sd==1){
				nx = theBox2.offsetLeft;
    	        ny = theBox2.offsetTop;
			}
			
			Drag.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
    	    Drag.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
			
			Drag.obj.lastMouseX = ex;
			Drag.obj.lastMouseY = ey;

            Drag.obj.root.onDrag(nx, ny);
            return false;
        },

        end: function() {
            document.onmousemove = null;
            document.onmouseup = null;
            Drag.obj.root.onDragEnd(parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]),
									parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
            Drag.obj = null;
        },

        fixE: function(e) {
            if (typeof e == 'undefined') e = window.event;
            if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
            if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
            return e;
        }
    };
	
	function reportDrag(page, theRoot, x, y) {
		
		theRoot.style.top = y + 'px';
		theRoot.style.left = x + 'px';
		
		if (y < 0){
			theRoot.style.top = '0px';
		}
		
		if (x < 0){
			theRoot.style.left = '0px';
		}
		
        if (y > parseInt(page.height - theRoot.offsetHeight)) {
            theRoot.style.top = (page.height - theRoot.offsetHeight) + 'px';
		}

        if (x > parseInt(page.width - theRoot.offsetWidth)) {
            theRoot.style.left = (page.width - theRoot.offsetWidth) + 'px';
        }
    }
