
	var bgBox;
	var theBox;
	var iPop;
	
	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);
		__doPostBack('ctl00$btnHiddenEditSubtask' + which, '');	
		showBG();
		setTimeout("showBox('" + which + "')",500);
	}

	function showView(id,which) {
		window.scrollTo(0, 0);
		//document.forms['aspnetForm'].elements['ctl00$Contentplaceholder2$funcParam10'].value = id;
		//__doPostBack('ctl00$Contentplaceholder2$btnHiddenEditSubtask' + which, '');	
		showBG();
		setTimeout("showBox('" + which + "')",500);
	}
	
	function hideView(which) {
		clearTimeout(iPop);
		opacity('viewDetails' + which, 100, 0, 400);
		setTimeout("hideBG()",500);
	}
	
	function showBox(which){
		theBox = getObj('viewDetails' + which);
		var theBox2 = getObj2('viewDetails' + which);
		theBox.display = 'block';
		theBox.filter = "alpha(opacity=0)";
		theBox.MozOpacity = 0;
		theBox.Opacity = 0;
		var page = getPageSize();
		//Drag.init(theBox2);
    	//theBox2.onDrag = function(x, y) { reportDrag(page, theBox2, x, y); }
		theBox.left = ((page.width / 2) - (theBox2.offsetWidth/2)) + 'px';
		theBox.top = '50px';
		opacity('viewDetails' + which, 0, 100, 400);
	}
	
	function showBG() {
		bgBox = getObj('bgBox');
		var page = getPageSize();
		bgBox.height = page.height + 'px';
		bgBox.width = page.width + 'px';
		bgBox.display = "block";
		bgBox.filter = "alpha(opacity=0)";
		bgBox.mozOpacity = 0;
		bgBox.opacity = 0;
		opacity('bgBox', 0, 80, 400);
	}
	
	function sizeBG() {
		bgBox = getObj('bgBox');
		var page = getPageSize();
		bgBox.height = page.height + 'px';
		bgBox.width = page.width + 'px';
	}

	function hideBG() {
		bgBox = getObj('bgBox');
		opacity('bgBox', 80, 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) {
            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)

            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) {
		
		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';
        }
    }