	var dhtml = document.getElementById?1:0;
	var ie = document.all?1:0;
	var ns = !ie&&document.getElementById?1:0;
	
	var slotCount = 0;
	var tabCount = 0;
	
	function setDragLayers(){
		for(i=1;i<=tabCount;i++){
			lay = document.getElementById('lDrag_'+i);
			lay.onmousedown = startDrag;
		}
		currLay = document.getElementById('drag');
	}
	
	var currLay = null;
	var dragOffsetX = null;
	var dragOffsetY = null;
	
	function startDrag(e){
		var id = getID(ie?this:e.target);
		if(ie) { dragOffsetX = event.offsetX; dragOffsetY = event.offsetY; }
		else if(ns){ dragOffsetX = e.layerX; dragOffsetY = e.layerY; }
		if(ns){ document.captureEvents(Event.MOUSEMOVE); }
		document.onmousemove = doDrag;
		document.onmouseup = stopDrag;	
		doDrag(e);
		var lay = document.getElementById('lDrag_'+id);
			lay.onmousedown = null;
		setDragLayer(id);		
		return false;
	}
	
	function doDrag(e){
		ePos = getEventPos(!e?event:e);
		currLay.style.left = ePos.x - dragOffsetX;
		currLay.style.top = ePos.y - dragOffsetY;
		return false;
	}
	
	function stopDrag(e){
		document.onmousemove = null;
		document.onmouseup = null;	
		if(ns){ document.releaseEvents(Event.MOUSEMOVE); }
		ePos = getEventPos(!e?event:e);
		for(i=1;i<=slotCount;i++){
			trgt = document.images["slot"+i];
			oPos = getOffsetFromBody(trgt);		
			if((ePos.x>oPos.left&&ePos.x<oPos.right)&&(ePos.y>oPos.top&&ePos.y<oPos.bottom)){
				loadProjector(currLay.currID, i);
				return true;
			}
		}
		resetThumb(currLay.currID);
		return false;
	}
	
	function getEventPos(e){
		var pos = new Object(); 
		if(ie) { pos.x = e.clientX+document.body.scrollLeft; pos.y = e.clientY+document.body.scrollTop; }
		else if(ns) { pos.x = e.pageX; pos.y = e.pageY; }
		return pos;
	}
	
	function getOffsetFromBody(o){
		var orgO = o;
		var pos = new Object(); pos.left = 0; pos.top = 0;	
		while(o){ 
			pos.left += o.offsetLeft; 
			pos.top += o.offsetTop;
			o = o.offsetParent; 
		}	
		pos.right = pos.left + orgO.offsetWidth; 
		pos.bottom = pos.top + orgO.offsetHeight;	
		return pos;
	}

	function getID(o){
		if(o.projID){ return o.projID }
		else{
			var oName = ie?o.id:o.name;
			return parseInt(oName.split("_")[1]);
		}
	}
	
	function setDragLayer(id){
		currLay.currID = id;
		currLay.style.visibility = "visible";
		document.images.iDrag.src = dragImage[id].src;
		document.images["iDrag_"+id].src = dragEmpty.src;
	}
	
	function resetThumb(id){
		currLay.style.visibility = "hidden";
		var oImg = document.images["iDrag_"+id];
		oImg.src = dragImage[id].src;
		if(oImg.slotID){ 
			resetSlot(oImg.slotID);
			oImg.slotID = null;
		}
		var lay = document.getElementById('lDrag_'+id);
			lay.onmousedown = startDrag;
	}
	
	function resetSlot(id){
		document.images["slot"+id].src = slotEmpty.src;		
		var oLink = document.getElementById('area_link_slot'+id);
		var oLink2 = document.getElementById('area_link2_slot'+id);
		var oDrag = document.getElementById('area_drag_slot'+id);
		oLink.removeAttribute("href"); oLink2.removeAttribute("href");
		oDrag.onmousedown = null;
		oDrag.onmouseup = null;
		oDrag.projID = null;
	}
	
	function loadProjector(proj, slot){
		var oLink = document.getElementById('area_link_slot'+slot);
		var oLink2 = document.getElementById('area_link2_slot'+slot);
		var oDrag = document.getElementById('area_drag_slot'+slot);
		var oImg = document.images["iDrag_"+proj];
		if(oDrag.projID&&(oDrag.projID!=proj)){ resetThumb(oDrag.projID) }
		if(oImg.slotID){ resetSlot(oImg.slotID) }
		document.images["slot"+slot].src = slotImage[proj].src;	
		oLink.setAttribute("href", projURL[proj]);
		oLink2.setAttribute("href", projURL[proj]);
		oDrag.onmousedown = startDrag;
		oDrag.onmouseup = stopDrag;
		oDrag.projID = proj;
		oImg.slotID = slot;		
		currLay.style.visibility = "hidden";
	}
	
	function newSlot(){
		slotCount++;
		dw("<div id='lSlot"+slotCount+"' style='position:relative;z-index:2"+slotCount+"'>");
		dw("<img name='slot"+slotCount+"' src='i/slot_empty.gif' width='108' height='560' border=0 usemap='#map_slot"+slotCount+"'>");
		dw("</div>");
		dw("<map name='map_slot"+slotCount+"'>");
		dw("<area id='area_drag_slot"+slotCount+"' coords='0,0,108,25'>");
		dw("<area id='area_link_slot"+slotCount+"' coords='0,25,108,100'>");
		dw("<area id='area_link2_slot"+slotCount+"' coords='0,498,108,560'>");
		dw("</map>");
	}
	
	function newTab(iDrag, iSlot, url){
		tabCount++;
		dragImage[tabCount] = new Image(); dragImage[tabCount].src = iDrag;
		slotImage[tabCount] = new Image(); slotImage[tabCount].src = iSlot;
		projURL[tabCount] = url;
		dw("<div id='lDrag_"+tabCount+"' style='position:relative;z-index:"+tabCount+"'>");
		dw("<img name='iDrag_"+tabCount+"' src='"+iDrag+"' width='108' height='25'>");
		dw("</div>");
	}
	
	function dw(s){ document.write(s); }
	
	var dragImage = new Array;
	var dragEmpty = new Image();
		dragEmpty.src = "i/drag_empty.gif";
	var slotImage = new Array;
	var slotEmpty = new Image();
		slotEmpty.src = "i/slot_empty.gif";		
	var projURL = new Array;
		