var DHTML = false, DOM = false, MSIE4 = false, NS4 = false, OP = false;

if (document.getElementById) {
  DHTML = true;
  DOM = true;
} else {
  if (document.all) {
    DHTML = true;
    MSIE4 = true;
  } else {
    if (document.layers) {
      DHTML = true;
      NS4 = true;
    }
  }
}
if (window.opera) {
  OP = true;
}

function getElement (Mode, Identifier, ElementNumber) {
  var Element;
  if (DOM) {
    if (Mode.toLowerCase() == "id") {
      if (typeof document.getElementById(Identifier) == "object") {
        Element = document.getElementById(Identifier);
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
      var ElementList = document.getElementsByName(Identifier);
      if (typeof ElementList == "object" || (OP && typeof ElementList == "function")) {
        Element = ElementList[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      var ElementList = document.getElementsByTagName(Identifier);
      if (typeof ElementList == "object" || (OP && typeof ElementList == "function")) {
        Element = ElementList[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    return null;
  }
  if (MSIE4) {
    if (Mode.toLowerCase() == "id") {
      if (typeof document.all[Identifier] == "object") {
        Element = document.all[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
      if (typeof document.all.tags(Identifier) == "object") {
        Element = document.all.tags(Identifier)[ElementNumber];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
      if (typeof document[Identifier] == "object") {
        Element = document[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (NS4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
      if (typeof document[Identifier] == "object") {
        Element = document[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "index") {
      if (typeof document.layers[Identifier] == "object") {
        Element = document.layers[Identifier];
      } else {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  return false;
}

function getContent (Mode, Identifier, ElementNumber) {
  var Content;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    if (Element.firstChild.nodeType == 3) {
      Content = Element.firstChild.nodeValue;
    } else {
      Content = "";
    }
    return Content;
  }
  if (MSIE4) {
    Content = Element.innerText;
    return Content;
  }
  return false;
}

function getAttribute (Mode, Identifier, ElementNumber, AttributeName) {
  var Attribute;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM || MSIE4) {
    Attribute = Element.getAttribute(AttributeName);
    return Attribute;
  }
  if (NS4) {
    if (typeof Element[ElementNumber] == "object") {
      Attribute = Element[ElementNumber][AttributeName];
    } else {
      Attribute = Element[AttributeName]
    }
    return Attribute;
  }
  return false;
}

function setContent (Mode, Identifier, ElementNumber, Text) {
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    Element.innerHTML = Text;
    //Element.firstChild.nodeValue = Text;
    return true;
  }
  if (MSIE4) {
    Element.innerHTML = Text;
    return true;
  }
  if (NS4) {
    Element.document.open();
    Element.document.write(Text);
    Element.document.close();
    return true;
  } 
}
///////////////////////////////////////////////////////////////
// Helper

var mouseX,mouseY,scrollX,scrollY;

function showLayer(lyr) {
 if(NS4) {
  getElement("id", lyr).visibility = "show";
 } else {
  getElement("id", lyr).style.visibility = "visible";
 }
}
function hideLayer(lyr) {
 if(NS4) {
  getElement("id", lyr).visibility = "hide";
 } else {
  getElement("id", lyr).style.visibility = "hidden";
 }
}
function moveLayer(lyr,x,y) {
 var obj = getElement("id", lyr);
 if(NS4) {
  obj.left = x+'px';
  obj.top = y+'px';
 } else {
  obj.style.left = x+'px';
  obj.style.top = y+'px';
 }
}


function event_init() {
 if(document.addEventListener) {
  document.addEventListener("mousemove", handleMove, true);
 } else {
  if (NS4) {
   document.captureEvents(Event.MOUSEMOVE);
   document.onmousemove = handleMove;
  } else {
   document.body.onmousemove = handleMove;
  }
 }
}
var MouseMoveHandler = new Array();
var MouseMoveHandlerCount=0;
function AddMouseMoveHandler( obj ){
 MouseMoveHandler[MouseMoveHandlerCount] = obj;
 MouseMoveHandlerCount++;
}
function handleMove(ev) {
 if(!ev) ev = window.event;
 mouseX = ev.pageX ? ev.pageX : ev.clientX;
 mouseY = ev.pageY ? ev.pageY : ev.clientY;

 if(typeof window.pageYOffset == "number") {
   scrollY = window.pageYOffset;
   scrollX = window.pageXOffset;
 } else {
  if (typeof document.body.scrollTop == "number") {
   scrollY = document.body.scrollTop;
   scrollX = document.body.scrollLeft;
   mouseY = mouseY+scrollY;
   mouseX = mouseX+scrollX;
  }
 }
 for(i=0;i<MouseMoveHandlerCount;i++){
  MouseMoveHandler[i].MouseMove(mouseX,mouseY);
 }
}



function findPosX(obj){
	var curleft = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj){
	var curtop = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
