// JavaScript Document

// function to detect browser
function Browser() {
	var ua, s, i;
  this.isIE    = false;
  this.isNS    = false;
  this.version = null;
  ua = navigator.userAgent;
  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }
  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }
  // Treat any other "Gecko" browser as NS 6.1.
  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
  // Treat iPhone as Netscape 6
  s = "iPhone/i";
  if ((i = ua.indexOf(s)) >= 0) {
  	this.IsNS = true;
  	this.version = 6.1;
  }
  // Treat iPad as Netscape 6
  s = "iPad";
  if ((i = ua.indexOF(s)) >= 0) {
  	this.IsNS = true;
  	this.version = 6.1;
  }
}
var browser = new Browser();
var dragObj = new Object();
dragObj.zIndex = 0;
	
// function to refresh html fragment
// objectname - desired name of xmlhttp connection object
// url - The file that will be loaded in to the desired location
// elementid - the element id that will be refreshed
// type - the type of refresh 0 or false for synchronous or 1, or true for asynchronous 
// You Typically use 1 or true.
function refreshhtml(objectname, url, elementid, type) {
	if (window.XMLHttpRequest) {
		objectname = new XMLHttpRequest(); }
	else if (window.ActiveXObject) {
		objectname = new ActiveXObject("Microsoft.XMLHTTP"); }
	if(objectname) {
		var htmlobject = document.getElementById(elementid);
		objectname.open("GET", url, type);
		objectname.onreadystatechange = function()
		{

			if (objectname.readyState == 4 && objectname.status == 200) {
				htmlobject.innerHTML = objectname.responseText;
				var scriptTags = htmlobject.getElementsByTagName("script");
				for (var f=0; f < scriptTags.length; f++) {
					window.eval(scriptTags.item(f).firstChild.nodeValue);
				}

			}
		};
		objectname.send(null);
	}
}

// Function that sends data to the desired file through POST.
// Works ust like the previous function but you must have parsed
// parameters to use this.
function posthtml(connection, url, divid, params, type) {
	if (window.XMLHttpRequest) {
		connection = new XMLHttpRequest(); }
	else if (window.ActiveXObject) {
		connection = new ActiveXObject("Microsoft.XMLHTTP"); }
	if(connection) {
		var htmlobject = document.getElementById(divid);
		connection.open("POST", url, type);
		connection.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		connection.onreadystatechange = function()
		{
			if (connection.readyState == 4 && connection.status == 200) {
				htmlobject.innerHTML = connection.responseText;
				var scriptTags = htmlobject.getElementsByTagName("script");
				for (var f=0; f < scriptTags.length; f++) {
					window.eval(scriptTags.item(f).firstChild.nodeValue);
				}
			}
		};
		connection.send(params);
	}
}
// Function that completely disables the enter key.
function disableenterkey(e) 
{
     var key;
     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox
     if(key == 13)
          return false;
     else
          return true;
}

// Function that only detects thepressing of the enter key.
function enterkey(e)
{
	var key;
	if(window.event)
		key = window.event.keyCode;
	else
		key = e.which;
	if(key == 13)
		return true;
	else
		return false;
}

// Function to hide or show menu items. Takes only one argument
// which is the desired div element to effect.
// WARNING!!! desired element must already be set as display:block; in css.
function changemenu(divid) {
	sitemenu = document.getElementById(divid);
	if(sitemenu.style.display=="block" || sitemenu.style.display=="inline-table") {
		sitemenu.style.display="none";
	}
	else if(sitemenu.style.display=="none") {
		sitemenu.style.display="inline-table";
	}
}
function changetitle(divid, changedtext) {
	selectedtitle = document.getElementById(divid)
	selectedtitle.innerText = changedtext;
}
function dragStart(event, id) {
  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }
 // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }
 // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;
 // Update element's z-index.

  dragObj.elNode.style.zIndex = ++dragObj.zIndex;
  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}
function dragGo(event) {

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }
	// Move drag element by the same amount the cursor has moved.

  dragObj.elNode.style.left =
    (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  =
    (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";
  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}
function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}