﻿// JavaScript Document

popobjs=new Array();
popobjnames=new Array();

function popupdiv(aanchorobj,divobjname, x_offset, y_offset){

var acursor=getAnchorPosition(aanchorobj);

divobj=getdivobj(divobjname);

divobj.style.top=acursor.y+y_offset;
divobj.style.left=acursor.x+x_offset;
divobj.style.visibility='visible';




}
function killpopupdiv(divobjname){
divobj=getdivobj(divobjname);
divobj.style.visibility='hidden';


}
function getdivobj(divobjname){
	found=0;
	if(popobjs.length){

		for(i=0;i<popobjs.length;i++){
			if(popobjnames[i]==divobjname){
				divobj=popobjs[i];
				found=1;
				break;
			}	
	
		}
	}
	if(!found){
		popobjnames[popobjs.length]=divobjname;
		popobjs[popobjs.length]=new getObj(divobjname);
		divobj=popobjs[popobjs.length-1];


	}
	return divobj;
}


// getAnchorPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the page.

// this version takes the anchor obj as a parameter, rather than the name of the anchor obj

function getAnchorPosition(anchorobj) {
	// This function will return an Object with x and y properties
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	// Browser capability sniffing
	var use_gebi=false, use_css=false, use_layers=false;
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
	// Logic to find position
 	if (use_gebi && document.all) {
		x=AnchorPosition_getPageOffsetLeft(anchorobj);
		y=AnchorPosition_getPageOffsetTop(anchorobj);
		}
	else if (use_gebi) {
	//	var o=document.getElementById(anchorname);
		x=AnchorPosition_getPageOffsetLeft(anchorobj);
		y=AnchorPosition_getPageOffsetTop(anchorobj);
		}
 	else if (use_css) {
		x=AnchorPosition_getPageOffsetLeft(anchorobj);
		y=AnchorPosition_getPageOffsetTop(anchorobj);
		}
	else if (use_layers) {
//		var found=0;
//		for (var i=0; i<document.anchors.length; i++) {
//			if (document.anchors[i].name==anchorname) { found=1; break; }
//			}
//		if (found==0) {
//			coordinates.x=0; coordinates.y=0; return coordinates;
//			}
//		x=document.anchors[i].x;
//		y=document.anchors[i].y;
		x=anchorobj.x;
		y=anchorobj.y;
		}
	else {
		coordinates.x=0; coordinates.y=0; return coordinates;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

// getAnchorWindowPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the window
function getAnchorWindowPosition(anchorname) {
	var coordinates=getAnchorPosition(anchorname);
	var x=0;
	var y=0;
	if (document.getElementById) {
		if (isNaN(window.screenX)) {
			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
			y=coordinates.y-document.body.scrollTop+window.screenTop;
			}
		else {
			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
			}
		}
	else if (document.all) {
		x=coordinates.x-document.body.scrollLeft+window.screenLeft;
		y=coordinates.y-document.body.scrollTop+window.screenTop;
		}
	else if (document.layers) {
		x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
		y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
	}

	function getObj(name){
	  if (document.getElementById)  {
	  	this.obj = document.getElementById(name);
		if(!this.obj){
			alert("Cannot find element name "+name);
		} else	if(this.obj.style){
			this.style = this.obj.style;
		}
	} else if (document.all)  {
		this.obj = document.all[name];
		if(document.all[name].style){
			this.style = document.all[name].style;
		}
	}  else if (document.layers)  {
		this.obj = getObjNN4(document,name);
		this.style = this.obj;
	  }
	}

	function getObjNN4(obj,name){
		var x = obj.layers;
		var thereturn;
		for (var i=0;i<x.length;i++)	{
		if (x[i].id == name)
		 	thereturn = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
			if (tmp) thereturn = tmp;
		}
		return thereturn;
	}


	function getchildObj(childobj, name){
	  if (childobj.document.getElementById)  {
	  	this.obj = childobj.document.getElementById(name);
		this.style =childobj. document.getElementById(name).style;
	  } else if (childobj.document.all)  {
		this.obj = childobj.document.all[name];
		this.style = childobj.document.all[name].style;
	  }  else if (childobj.document.layers)  {
		this.obj = getchildObjNN4(childobj.document,name);
		this.style = this.obj;
	  }
	}

	function getchildObjNN4(obj,name){
		var x = obj.layers;
		var thereturn;
		for (var i=0;i<x.length;i++)	{
		if (x[i].id == name)
		 	thereturn = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
			if (tmp) thereturn = tmp;
		}
		return thereturn;
	}

