// JavaScript Document
// for HTMLTable - editing
// (c) Stefan Suessner/ Rockin Ram Productions
var lastselectedelem = null;
var lastselectrow = -1;
var normalRowcss = "";

function htab_init() 
{ lastselectedelem = null;  lastselectrow = -1;  normalRowcss = ""; }
function htab_mouseover(elem, cssclass, rowno){ if(rowno != lastselectrow) elem.className = cssclass; }   
function htab_mouseout(elem, cssclass, rowno) { if(rowno != lastselectrow) elem.className = cssclass;  normalRowcss = cssclass; }  
function htab_mousedown(elem, cssclass, rowno)
{
  if(lastselectedelem != null) lastselectedelem.className = normalRowcss;
  lastselectrow = rowno;
  elem.className = cssclass;
  lastselectedelem = elem;  
}  
/*
function htmltab_keydown(e)
{
  if (!e) var e = window.event
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
   //e.cancelBubble = true;
	//if (e.stopPropagation) e.stopPropagation();
 */ 

// popupwindow / dropdown
function getPosition(element)
{
  var elem=element,tagname="",x=0,y=0;
  while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
  {
    y+=elem.offsetTop;   
    x+=elem.offsetLeft;   
    tagname=elem.tagName.toUpperCase();
    if (tagname=="BODY")   elem=0;   // break
    if (typeof(elem)=="object")
      if (typeof(elem.offsetParent)=="object")
        elem=elem.offsetParent;
  }
  var position=new Object();
  position.x=x;
  position.y=y;
  return position;
}
function getCenterPos(width, height)
{ 
  var scrollOffset = 0;
  if (window.pageYOffset) scrollOffset = window.pageYOffset;
  else  scrollOffset = document.body.scrollTop;
  //  IE7 scrollOffset = document.documentElement.scrollTop;
  var wwidth = document.all ? document.body.clientWidth : window.innerWidth;
  var wheight = document.all ? document.body.clientHeight : window.innerHeight;
  position=new Object();
  position.x=(wwidth/2) - (width/2);
  position.y=(wheight/2) - (height/2)+scrollOffset;
  return position;
}

function Showpopup(popupid, srcelemID) 
{
  var pop = document.getElementById(srcelemID);
  if(pop != null)
  {
    changecontent(popupid, pop.innerHTML);
    pop.innerHTML = "";
    //var d=document.getElementById(popupid+'_b');
    //if(d.style.display=='none')
    //{
      var pos = getCenterPos(600, 400);
      movePopup(popupid, pos.x, pos.y);
    //}
    //fadeboxin(popupid);
    showbox(popupid);
  }
}
function Hidepopup(popupid) 
{
  //fadeboxout(popupid);
  hidebox(popupid);
  changecontent(popupid, "");
  movePopup(popupid, -1000, 0);
}
// dropdown 
var DropDwndiv = null;
var DropDwnDestElemID = '';

function UpdateDropDwndiv(destelemID) 
{
  var elem = document.getElementById(destelemID);
  if(elem != null)
  { 
    var pos = getPosition(elem);
    if(DropDwndiv != null) 
    {
      DropDwndiv.style.left = pos.x + 'px';
      DropDwndiv.style.top = pos.y + elem.offsetHeight + 'px';
    }
  }
}
function ShowDropDwndiv(destelemID, id) 
{
  DropDwndiv = document.getElementById(id);
  if(DropDwndiv != null)
  {
     if(DropDwndiv.style.display == "none")
     {
       UpdateDropDwndiv(destelemID);
       DropDwndiv.style.display = "inline";
       DropDwnDestElemID = destelemID;
     }
     else HideDropDwndiv();
  }
  else DropDwnDestElemID = '';
}
function HideDropDwndiv() 
{
  if(DropDwndiv != null) 
  {
    DropDwndiv.style.display = "none";
    DropDwnDestElemID = '';
  }  
}
function DropDwndivSetSelectedValue(val)
{
  if(DropDwnDestElemID == '') return;
  var elem = document.getElementById(DropDwnDestElemID);
  if(elem != null)
  {
    elem.value = val;
    HideDropDwndiv();
    if(typeof(elem.onchange) == "function") elem.onchange();
  }  
}

function CheckElementUnderMouse(e)
{
  MenuCheckElementUnderMouse(e);
  if(!e) e = window.event;
  if(DropDwndiv == null) return;
  var elem;
  if (e.srcElement)elem = e.srcElement;  // IE
  else if (e.target) elem = e.target;// NS,FF
  if(elem == null) return;
  if(elem.nodeName != 'A' && elem.nodeName != 'IMG') HideDropDwndiv();
  else
  {
    do{ if(elem == DropDwndiv) return;
    }while( (elem = elem.parentNode) != null);
    HideDropDwndiv();  
  }
}
// menu 
var menudiv = null;
var menuactive = null;
function Updatemenudiv(destelemID) 
{
  var elem = document.getElementById(destelemID);
  if(elem != null)
  { 
    var pos = getPosition(elem);
    if(menudiv != null) 
    {
      menudiv.style.left = pos.x + 'px';
      menudiv.style.top = pos.y + elem.offsetHeight + 'px';
    }
  }
}
function Showmenudiv(destelemID, id) 
{
  if(menudiv != null) Hidemenudiv();
  menudiv = document.getElementById(id);
  if(menudiv != null)
  {
     if(menudiv.style.display == "none")
     {
       Updatemenudiv(destelemID);
       menudiv.style.display = "inline";
       window.clearInterval(menuactive);
     }  
  }
}
function MenuDivSpecialHide() 
{
  if(menudiv != null)
    menuactive = window.setInterval("Hidemenudiv()", 250); 
}
function MenuDivSpecialShow() 
{
  window.clearInterval(menuactive);
}
function Hidemenudiv() 
{
  if(menudiv != null)
  { 
    menudiv.style.display = "none";
    menudiv = null;
  }  
}
function MenuCheckElementUnderMouse(e)
{
  if(!e) e = window.event;
  if(menudiv == null) return;
  var elem = null;
  if (e.srcElement)elem = e.srcElement;  // IE
  else if (e.target) elem = e.target;// NS,FF
  if(elem == null) return;
  if(elem.nodeName != 'A' && elem.nodeName != 'IMG' && elem.nodeName != 'DIV') 
    Hidemenudiv();
  else
  {
    do{ if(elem == menudiv) return;
    }while( (elem = elem.parentNode) != null);
    Hidemenudiv();  
  }
}

// input
function CheckKey(checktype, e)
{
  if (!e) e = window.event;
  code = (e.which ? e.which : (e.keyCode ? e.keyCode : 0));
  //kchar = String.fromCharCode(code);
  // test 
  //el = document.getElementById("chcode");
  //el.innerHTML = code;

  if(code == 8 || code == 9 || code == 37 || code == 39) // BSp,  Cutleft/right etc
	 return true;  
  switch(checktype)  
  {
    case 0:   // numbers int
      if(code < 46 || code > 57) return false;  // numbers 
	  break;
	  case 1:   // numbers (double)
	    if(code == 45 || code == 44) return true;  // '-', comma
      if(code < 45 || code > 57) return false;  // numbers and '.'
	  break;
	  case 2: // dates  
	    if(code == 47) return true;  // '/'
	    if(code < 44 || code > 57) return false; // numbers,'.',  -
	  break;
  }
  return true;
}
// input formatting
function formatInput(checktype, elemid)
{
  el = document.getElementById(elemid);
  if(el == null) return;
  var str = el.value; 
  switch(checktype)  
  {
	 //case 0:   // numbers int
	 case 1:   // numbers (double)
		//if(code == 45 || code == 44) return true;  // '-', comma
		//if(code < 45 || code > 57) return false;  // numbers and '.'
	 break;
	 case 2: // date, separator .   
	  el.value = formatDate('.');
	 break;
	 case 2: // date, separator /   
	  el.value = formatDate('/');
	 break;
  }
}
function formatDate(sep)
{
  if(sep == "") sep = '.';
  var newstr = '';
  var lastchr = '0';
  for(var i = 0; i < str.length; i++)
  {
    var c = str.substring(i, i+1);
    if(c < '0' || c > '9') 
	  {
		  if(lastchr >= '0' && lastchr <= '9')
		    newstr += sep;	
		  lastchr = sep; 
	  }  
	  else
  	{
	    newstr += c;
	    lastchr = c;  
	  }  
  }
  var dmy = new Array();
  dmy = newstr.split(sep);
  newstr = '';
  if(dmy.length > 0) 
  {
    if(dmy[0].length == 1) newstr += '0';
    newstr += dmy[0].substring(0, 2);
  }	
  newstr += sep;
  if(dmy.length > 1) 
  {
    if(dmy[1].length == 1) newstr += '0';
    newstr += dmy[1].substring(0, 2);
  }
  newstr += sep;
  if(dmy.length > 2) 
  {
    if(dmy[2].length == 1) newstr += '0';
    newstr += dmy[2].substring(0, 4);
  }
  return newstr;
}
function setCookie(name, val)
{
 var d = new Date();
 var en = d.getTime()+(1000*24*60*60*1000);
 d.setTime(en);
 document.cookie = name+'='+escape(val)+'; expires='+d.toGMTString();
}
