var isNav, isIE
var offsetX, offsetY
var selectedObj 

var enlargefactor=3

var largewidth = 1
var largeheight = 1
var largeleft =0  
var largetop = 300

var thumbwidth = Math.floor(largewidth/enlargefactor)
var thumbheight = Math.floor(largeheight/enlargefactor)
var thumbleft = 0
var thumbtop = 300

var mglasswidth = 70
var mglassheight = 70
var mglassleft = 0
var mglasstop = 300

var difleft= largeleft-thumbleft
var diftop= largetop-thumbtop

var clippoints

var cliptop = (thumbheight-mglassheight)*enlargefactor
var clipbottom = cliptop+(mglassheight*enlargefactor)
var clipleft = (thumbwidth-mglasswidth)*enlargefactor
var clipright = clipleft+(mglasswidth*enlargefactor)

if (parseInt(navigator.appVersion) >= 4) {
	if (navigator.appName == "Netscape") {
		isNav = true
		startLeft = (window.innerWidth/2)
	} else {
		isIE = true
		startLeft = (document.body.clientWidth/2)
	}
}
var origWidth, origHeight;

if (document.layers) {
  onresize = function() { if(innerWidth != origWidth || innerHeight != origHeight) location.reload(); }
}

else if (document.all) 
  onresize = function() { window.location.reload(); }

largeleft = startLeft - 350
thumbleft = startLeft - 100
mglassleft = startLeft - 100
//alert("startLeft="+startLeft+";document.body.clientWidth="+document.body.clientWidth)
//alert("startLeft="+startLeft+";document.body.scrollLeft="+document.body.scrollLeft  	)

function setZIndex(obj, zOrder) {
	obj.zIndex = zOrder
}

function shiftTo(obj, x, y) {
	if (isNav) {
		obj.moveTo(x,y)
	} else {
		obj.pixelLeft = x
		obj.pixelTop = y
	}	
	cliptop = (y-thumbtop)*enlargefactor
	clipbottom = cliptop+(mglassheight*enlargefactor)
	clipleft = (x-thumbleft)*enlargefactor
	clipright = clipleft+(mglasswidth*enlargefactor)

	if (document.all) {
		clippoints ="rect("+cliptop+" "+clipright+" "+clipbottom+" "+clipleft+")"
		document.all.large.style.posTop=largetop-cliptop
		document.all.large.style.posLeft=largeleft-clipleft
		document.all.large.style.clip=clippoints
	}
	if (document.layers) {
		document.large.top=largetop-cliptop
		document.large.left=largeleft-clipleft
		document.large.clip.left = clipleft
		document.large.clip.right = clipright
		document.large.clip.top = cliptop
		document.large.clip.bottom = clipbottom
	}
}

function setSelectedElem(evt) {
	if (isNav ) {
		var testObj
		var clickX = evt.pageX
		var clickY = evt.pageY
		if ( document.layers )  {
			for (var i = document.layers.length - 1; i >= 0; i--) {
				testObj = document.layers[i]
				if ((clickX > testObj.left) && 
					(clickX < testObj.left + testObj.clip.width) && 
					(clickY > testObj.top) && 
					(clickY < testObj.top + testObj.clip.height)) {
						selectedObj = testObj
						setZIndex(selectedObj, 100)
						return
				}
			}
		}
	} else {
		var imgObj = window.event.srcElement
		if (imgObj.parentElement.id.indexOf("mglass") != -1) {
			selectedObj = imgObj.parentElement.style
			setZIndex(selectedObj,100)
			return
		}
	}
	selectedObj = null
	return
}

function dragIt(evt) {
	if (selectedObj) {
		if (isNav) {
			shiftTo(selectedObj, (evt.pageX - offsetX), (evt.pageY - offsetY))
		} else {
			shiftTo(selectedObj, (window.event.clientX - offsetX), (window.event.clientY - offsetY))
			return false
		}
	}
}

function engage(evt) {
	setSelectedElem(evt)
	if (selectedObj) {
		if (isNav) {
			offsetX = evt.pageX - selectedObj.left
			offsetY = evt.pageY - selectedObj.top
		} else {
			offsetX = window.event.offsetX
			offsetY = window.event.offsetY
		}
	}
	return false
}

function release(evt) {
	if (selectedObj) {
		setZIndex(selectedObj, 0)
		selectedObj = null
	}
}

function setNavEventCapture() {
	if (isNav) {
		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)
	}
}

function init() {

	if (document.layers) {
		document.large.left=largeleft
		document.large.top=largetop
		
		document.framegif.left=largeleft-50
		document.framegif.top=largetop-50
	
		document.thumb.left=thumbleft
		document.thumb.top=thumbtop
	
		document.mglass.left=mglassleft
		document.mglass.top=mglasstop
		
		document.large.clip.left = 0
		document.large.clip.right = 0
		document.large.clip.top = 0
		document.large.clip.bottom = 0
		
		setNavEventCapture()
	}
	
	if (document.all) {
		document.all.large.style.posLeft=largeleft
		document.all.large.style.posTop=largetop
		
		document.all.framegif.style.posLeft=largeleft-1
		document.all.framegif.style.posTop=largetop-1
	
		document.all.thumb.style.posLeft=thumbleft
		document.all.thumb.style.posTop=thumbtop
	
		document.all.mglass.style.posLeft=mglassleft
		document.all.mglass.style.posTop=mglasstop
		document.all.large.style.clip="rect(0 0 0 0)"
	}
	
	document.onmousedown = engage
	document.onmousemove = dragIt
	document.onmouseup = release
}



