// If NS -- that is, !IE -- then set up for mouse capture
if (!bw.ie) document.captureEvents(Event.MOUSEMOVE)

// Set-up to use HMgetMouseXY function onMouseMove
document.onmousemove = HMgetMouseXY;

// Temporary variables to hold mouse x-y pos.s
var HMtempX = 0;
var HMtempY = 0;
var HMQIDarray = new Array();

function HM_init_all() {
	for(HMtmpObjCounter=0;HMtmpObjCounter<HMQIDarray.length;HMtmpObjCounter++) {
		HM_init(HMQIDarray[HMtmpObjCounter]);
	}
}

function HM_init(HMtargetName) {
	HMimgObj = document.getElementById("q"+HMtargetName+"_image");
	HMtmpleft = HMgetLeftFromObj(HMimgObj);
	HMtmptop  = HMgetTopFromObj(HMimgObj);
	if (bw.ie5 || bw.ie6) {
		HMtmpleft=HMtmpleft+2;
		HMtmptop=HMtmptop+2;
	}

	HMtargetName2 = "q"+HMtargetName+"_value";
	HMtargetObj = document.getElementById(HMtargetName2);
	if(HMtargetObj.value != "") {
		HMtargetValueArray = HMtargetObj.value.split(';');
		for(HMtmpLayerCounter=1;HMtmpLayerCounter<=HMtargetValueArray.length;HMtmpLayerCounter++) {
			HMtmpLayerPos = HMtargetValueArray[HMtmpLayerCounter-1];
			HMtmpLayerPos = HMtmpLayerPos.split(':');

			HMtempX = HMtmpleft+parseInt(HMtmpLayerPos[0]);
			HMtempY = HMtmptop+parseInt(HMtmpLayerPos[1]);

			HMtmpLayerObj = document.getElementById("hmq"+HMtargetName+"_"+HMtmpLayerCounter);
			HMtmpLayerObj.style.display="";

			if (document.layers) {
				HMtmpWidth = HMtmpLayerObj.document.width;
				HMtmpHeight = HMtmpLayerObj.document.height;
			} else {
				HMtmpWidth = HMtmpLayerObj.clientWidth;
				HMtmpHeight = HMtmpLayerObj.clientHeight;
			}
			HMtmpLayerObj.style.left = (HMtempX-HMtmpWidth/2)+"px";
			HMtmpLayerObj.style.top = (HMtempY-HMtmpHeight/2)+"px";
		}
	}
}


function HM_clean_pointer(HMtargetName,HMmaxRecord) {
	HMtargetName2 = "q"+HMtargetName+"_value";
	HMtargetObj = document.getElementById(HMtargetName2);
	HMtargetObj.value="";
	for(HMtmpLayerCounter=1;HMtmpLayerCounter<=HMmaxRecord;HMtmpLayerCounter++) {
		HMtmpLayerObj = document.getElementById("hmq"+HMtargetName+"_"+HMtmpLayerCounter);
		HMtmpLayerObj.style.display="none";
	}
}

function HM_get_used(HMtargetName,HMmaxRecord) {
	HMtargetName2 = "q"+HMtargetName+"_value";
	HMtargetObj = document.getElementById(HMtargetName2);
	if(HMtargetObj.value == "") {
		return 0;
	}
	var HMtmpLayerCounter=0;
	HMtargetValueArray = HMtargetObj.value.split(';');
	return HMtargetValueArray.length;
}

function HM_click_image(HMimgObj,HMtargetName,HMmaxRecord) {
	HMtmpleft = HMtempX-HMgetLeftFromObj(HMimgObj);
	HMtmptop  = HMtempY-HMgetTopFromObj(HMimgObj);
	if (bw.ie5 || bw.ie6) {
		HMtmpleft=HMtmpleft-2;
		HMtmptop=HMtmptop-2;
	}

	// Update the target Value
	HMtargetName2 = "q"+HMtargetName+"_value";
	HMtargetObj = document.getElementById(HMtargetName2);
	var HMtmpLayerCounter=0;
	if(HMtargetObj.value == "") {
		HMtargetObj.value = HMtmpleft+":"+HMtmptop;
		HMtmpLayerCounter=1;
	} else {
		// Check Max allow
		HMtargetValueArray = HMtargetObj.value.split(';');
		if(HMtargetValueArray.length >=HMmaxRecord) {
			//alert('Over the max record');
			HM_over_limit(HMmaxRecord);
		} else {
			HMtmpLayerCounter=HMtargetValueArray.length+1;
			HMtargetObj.value = HMtargetObj.value + ";" + HMtmpleft+":"+HMtmptop;
		}
	}

	if(HMtmpLayerCounter >0 ) {
		HMtmpLayerObj = document.getElementById("hmq"+HMtargetName+"_"+HMtmpLayerCounter);
		HMtmpLayerObj.style.display="";


		if (document.layers) {
			HMtmpWidth = HMtmpLayerObj.document.width;
			HMtmpHeight = HMtmpLayerObj.document.height;
		} else {
			HMtmpWidth = HMtmpLayerObj.clientWidth;
			HMtmpHeight = HMtmpLayerObj.clientHeight;
		}
		HMtmpLayerObj.style.left = (HMtempX-HMtmpWidth/2)+"px";
		HMtmpLayerObj.style.top = (HMtempY-HMtmpHeight/2)+"px";
	}
}

function HMgetMouseXY(e) {
	if (bw.ie5 || bw.ie6) { // grab the x-y pos.s if browser is IE
		HMtempX = event.clientX + document.body.scrollLeft;
		HMtempY = event.clientY + document.body.scrollTop;
	} else {
		HMtempX = e.pageX;
		HMtempY = e.pageY;
	}

	// catch possible negative values in NS4
	if (HMtempX < 0){HMtempX = 0}
	if (HMtempY < 0){HMtempY = 0}
}

function HMgetLeftFromObj(tmpObj) {
	objleft = tmpObj.offsetLeft;
	tmpParent = tmpObj.offsetParent;
	while(tmpParent.tagName.toUpperCase() != "BODY") {
		objleft = objleft + tmpParent.offsetLeft;
		tmpParent = tmpParent.offsetParent;
	}
	return objleft;
}

function HMgetTopFromObj(tmpObj) {
	objtop = tmpObj.offsetTop;
	tmpParent = tmpObj.offsetParent;
	while(tmpParent.tagName.toUpperCase() != "BODY") {
		objtop = objtop + tmpParent.offsetTop;
		tmpParent = tmpParent.offsetParent;
	}
	return objtop;
}
