
// -----------------------------------
// Layer

function InsertLayer(anId, aCls, aLeft, aTop, aWidth, aHeight, aVisibility, aCnt) {
  document.write('<div id="'+anId+'" class="'+aCls+'" style="position:absolute; overflow: hidden; left:'+aLeft+'px; top:'+aTop+'px; '+
                 'width:'+aWidth+'px; height:'+aHeight+'px; visibility:'+aVisibility+';">' + aCnt + '</div>');
}

function ShowLayer(anId, anElement) {
  var l = (document.getElementById?document.getElementById(anId):(document.all?document.all[anId]:null));
  var e = (document.getElementById?document.getElementById(anElement):(document.all?document.all[anElement]:null));
  if ( ! l || ! e) return;
  l.style.left = GetXPos(e);
  l.style.top  = GetYPos(e);
  l.style.visibility = 'visible';
}

function HideLayer(anId) {
  var l = (document.getElementById?document.getElementById(anId):(document.all?document.all[anId]:null));
  if ( ! l ) return;
  l.style.visibility = 'hidden';
}

function ShowBlock(aBlkId, aHdrId, anOpenCls) {
  var b = (document.getElementById?document.getElementById(aBlkId):(document.all?document.all[aBlkId]:null));
  var h = (document.getElementById?document.getElementById(aHdrId):(document.all?document.all[aHdrId]:null));
  if ( ! b || ! h ) return;
  b.style.display = 'block';
  if ( anOpenCls != '' ) h.className  = anOpenCls; 
}

function HideBlock(aBlkId, aHdrId, aCloseCls) {
  var b = (document.getElementById?document.getElementById(aBlkId):(document.all?document.all[aBlkId]:null));
  var h = (document.getElementById?document.getElementById(aHdrId):(document.all?document.all[aHdrId]:null));
  if ( ! b || ! h ) return;
  b.style.display = 'none';
  if ( aCloseCls != '' ) h.className  = aCloseCls; 
}

function ShowHideBlock(aBlkId, aHdrId, aCloseCls, anOpenCls) {
  var b = (document.getElementById?document.getElementById(aBlkId):(document.all?document.all[aBlkId]:null));
  var h = (document.getElementById?document.getElementById(aHdrId):(document.all?document.all[aHdrId]:null));
  if ( ! b || ! h ) return;
  var display = GetStyleObj(b, 'display');
  if ( display == 'none' ) {
    b.style.display = 'block';
    if ( anOpenCls != '' ) h.className  = anOpenCls; }
  else {
    b.style.display = 'none';
    if ( aCloseCls != '' ) h.className  = aCloseCls; }  	
}

// -----------------------------------
// Standard events service

function ShowStatus(anEvent, aPar) {
  window.alert('jest');
  anEvent = (anEvent)?anEvent:((window.event)?window.event:null);
  if ( ! anEvent ) return false;
  if ( anEvent.type == 'mouseover' ) { window.status=aPar; return true; }
  if ( anEvent.type == 'mouseout'  ) { window.status='';   return true; }
  return true;
}

// -----------------------------------
// Cookies

function GetExpiresDate(aDay, anHour, aMinute) {
  var date = new Date();
  date.setDate(date.getDate()+aDay);
  date.setHours(date.getHours()+anHour);
  date.setMinutes(date.getMinutes()+aMinute); 
  return date;
}

function MergeVars(aVars) {
  var v='';
  for(i=0; i<aVars.length; i+=2) v=v+aVars[i]+':'+aVars[i+1]+'|';
  return v;
}

function GetVar(aName, aVars, aDefault) {
  var v=aDefault;
  aName = aName+':';
  p1 = aVars.indexOf(aName);
  if ( p1 != -1 ) {
    p1 = p1+aName.length;
    p2 = aVars.indexOf('|', p1);
    if ( p2 != -1 ) v=aVars.substring(p1,p2);
  }
  return v;
}

function SetCookie(aName, aVal, aDate) {
  c = aName+"="+escape(aVal);
  if ( aDate ) c=c+"; expires="+aDate.toGMTString(); 
  document.cookie = c;
  return;
}

function GetCookie(aName){
  var v = "";
  aName = aName+"=";
  if ( document.cookie ){
    p1 = document.cookie.indexOf(aName);
    if ( p1 != -1 ) {
      p1 = p1+aName.length;
      p2 = document.cookie.indexOf(";", p1);
      if ( p2 == -1 ) p2=document.cookie.length;
      v = unescape(document.cookie.substring(p1, p2));
    }
  }
  return v;
}


// -----------------------------------
// Misc

function GetStyleObj(anObj, aStyleCSS, aStyleIE) {
  if ( ! anObj ) return '';
  if ( ! aStyleIE ) aStyleIE=aStyleCSS;
  if ( window.getComputedStyle ) {
    var s = window.getComputedStyle(anObj, '');
    return s.getPropertyValue(aStyleCSS); }
  else if ( anObj.currentStyle ) return anObj.currentStyle[aStyleIE];
  return '';
}

function GetStyleById(anId, aStyleCSS, aStyleIE) {
  var obj = (document.getElementById?document.getElementById(anId):(document.all?document.all[anId]:null));
  if ( ! obj ) return '';
  return GetStyleObj(obj, aStyleCSS, aStyleIE);
}

function GetXPos(obj) {
  var p = 0;
  if ( obj.offsetParent ) while(obj) {
    p  += obj.offsetLeft;
    obj = obj.offsetParent; }	
  else if ( obj.x ) p += obj.x;
  return p;
}

function GetYPos(obj) {
  var p = 0;
  if ( obj.offsetParent ) while (obj) {
    p  += obj.offsetTop
    obj = obj.offsetParent; }
  else if ( obj.y ) p += obj.y;
  return p;
}

function BufImage(anImg) {
  if ( document.images ) {
    img = new Image();
    img.src = anImg;
  }
}

function BufImages(anImg) {
  if ( document.images ) for(i=0; i<anImg.length; i++) {
    img = new Image();
    img.src = anImg[i];
  }
}

function ChangeClass(anId, aCls) {
  if ( ! aCls ) aCls='';
  var obj = (document.getElementById?document.getElementById(anId):(document.all?document.all[anId]:null));
  if ( ! obj ) return;
  obj.className = aCls;
}

function SwitchClass(anId, aCls1, aCls2) {
  var obj = (document.getElementById?document.getElementById(anId):(document.all?document.all[anId]:null));
  if ( ! obj ) return;
  if ( obj.className == aCls1 ) obj.className=aCls2;
  else if (obj.className == aCls2 ) obj.className=aCls1; 
}