/*******************************************************
Common Functions used for less typing.

I put my mostly used functions together in this file.

Author: Simon Cui
Date: 8 March 2006
*******************************************************/
var w3c = (document.getElementById) ? true : false;
var ie4 = (document.all && !w3c) ? true : false;
var ie5 = (document.all && w3c) ? true : false;
var ns4 = (document.layers) ? true : false;
var ns6 = (w3c && !document.all) ? true : false;
var bOffline = (window.location.protocol == "http:") ? false : true;

function getEl(id){
  return (ie4) ? document.all[id] : document.getElementById(id);
}

function setVisibility(objId, visibility) {
  var obj = getEl(objId)
	if (obj != null)
	  obj.style.visibility = visibility;
}

function isChecked(objId) {
  var obj = getEl(objId)
	if (obj != null && obj.type == "checkbox")
	  return obj.checked;
	else
	  return false;
}

function setDisable(objId, enable) {
  var obj = getEl(objId)
  if (obj != null) {
    obj.disabled = enable;
    if (enable == false) {
	    //obj.focus();
  		if (obj.type == "text")
        obj.select();
  		else if (obj.type == "radio")
  		  obj.checked = true;
      else if (obj.tagName == "SELECT")
		    obj.selectedIndex = 1;
	  }
	  else {
	    if (obj.type == "text")
	      obj.value = "";
	    else if (obj.type == "radio")
  		  obj.checked = false;
  		else if (obj.tagName == "SELECT")
  		  obj.selectedIndex = 0;
  	}
  }
}

function setFocus(objId) {
  var obj = getEl(objId)
  if (obj != null)
    obj.focus();
}

function setValue(objId, value) {
  var obj = getEl(objId)
  if (obj != null)
    obj.value = value;
}

function getElementY(element){
	var targetTop = 0;
	if (element.offsetParent) {
	  while (element.offsetParent) {
  		targetTop += element.offsetTop;
  		element = element.offsetParent;
	  }
	}
	else if (element.y) {
	  targetTop += element.y;
	}
	return targetTop;
}

function getElementX(element){
	var targetLeft = 0;
	if (element.offsetParent) {
	  while (element.offsetParent) {
  		targetLeft += element.offsetLeft;
  		element = element.offsetParent;
	  }
	}
	else if (element.x) {
	  targetLeft += element.x;
	}
	return targetLeft;
}

function highlightRow(srcElement, on) {
	srcElement.style.backgroundColor = on?"#DDDDDD":"#FFFFFF";
}

function highlightButton(srcElement, on) {
  srcElement.style.backgroundColor = on?"#669999":"#003333";
}

function setRowColor(srcElement, color) {
  srcElement.style.backgroundColor = color;
}

function gotoPage(page, table, pkey) {
  getEl("mainForm").action = page;
  getEl("table").value = table;
  getEl("pkey").value = pkey;
  getEl("mainForm").submit();
}

function newConfirm(title,mess,icon,defbut,mods) {
  if (ie5) {
    icon = (icon==0) ? 0 : 2;
    defbut = (defbut==0) ? 0 : 1;
    retVal = makeMsgBox(title,mess,icon,4,defbut,mods);
    retVal = (retVal==6);
  }
  else {
    retVal = confirm(mess);
  }
  return retVal;
}

function updateMonthYearDrop() {
  getEl("Year").disabled = (getEl("Month").value * 1 > 20); 
}

function getFocusRowColour() {
  return "#D9F2FF";
}

function stayInCurrentPage() {
  var btnnext = getEl("ahref_btnnext");
  var btnprevious = getEl("ahref_btnprevious");

  var functioncall = "";
  var url = "";

  if (btnnext != null) {
    functioncall = btnnext.onclick;
  }
  else if (btnprevious != null) {
    functioncall = btnprevious.onclick;
  }

  functioncall += "";

  if (functioncall.length > 0) {
    var from = functioncall.indexOf("&");
    var to = functioncall.indexOf(")", from);
    var url = functioncall.substring(from, to-1);

    var from = url.indexOf("page=");
    var page = url.substring(from+5, url.length);
    if (btnnext != null) {
      page--;
    }
    else if (btnprevious != null) {
      page++;
    }

    url = url.substring(0, from) + "page=" + page;
  }
  else {
    url = "&page=" + getEl("page").value;
  }
  constructParameters(url);
}