/**

JSLib.js v1.0, 11.07.2007
Copyright (c) 2006-2007 Roland Kujundzic (http://www.web-to-print.eu)

@desc
Some basic functions.

@provides

@function debug(msg)
Write debug message to id="js_log" (if js_log exists)

@function error(msg, error)
Write error message to id="js_log" (if js_log exists)

@function element_xy(element)
Return element x/y position (e.g. JSLib.element_xy(div).x)

@function url('domain|script_query|script|query|dir|file')
Return url part, e.g. http://domain.tld/xyz/index.php?abc=5:

  domain= domain.tld, script_query= xyz/index.php?abc=5, script= xyz/index.php
  query= abc=5, dir=xyz, file=index.php

@function showToolTip(id, null|element)
Show Tool-Tip. If element != null only if element.value is empty.

@function hideToolTip(id)
Hide Tool-Tip.

@function clearText(element, default_text)
Clear default text of element.

@var version
Return version (1.0)

@var mouse_x
Return current mouse x position

@var mouse_y
Return current mouse y position

 */

var JSLib = {

version: '1.0',
mouse_x: 0,
mouse_y: 0,


//-----------------------------------------------------------------------------
p_updateMousePos: function(e) {

  if (document.all) {
    mouse_x = window.event.x + document.body.scrollLeft;
    mouse_y = window.event.y + document.body.scrollTop;
  }
  else {
    mouse_x = e.pageX;
    mouse_y = e.pageY;
  }
},


//-----------------------------------------------------------------------------
element_xy: function(el) {
  var xy = { x: 0, y: 0};

  do {
    xy.x += el.offsetLeft;
    xy.y += el.offsetTop;
  }
  while ((el = el.offsetParent));

  return xy;
},


//-----------------------------------------------------------------------------
showToolTip: function(id, el) {

  var tt = document.getElementById(id);

  if (tt && (el == null || !el.value)) {
    tt.style.display = "block";
    tt.style.left = (mouse_x + 10) + "px";
    tt.style.top = (mouse_y + 10) + "px";
  }
},


//-----------------------------------------------------------------------------
hideToolTip: function (id) {

  var tt = document.getElementById(id);

  if (tt) {
    tt.style.display = "none";
  }
},


//-----------------------------------------------------------------------------
clearText: function(el, default_text) {
  if (default_text && el.value == default_text) {
    el.value = '';
  }
},


//-----------------------------------------------------------------------------
url: function(part) {
  var url = window.location.href;
  var m1 = url.match(/http\:\/\/(.+?)\/(.*)/);
  var p = { url: url, domain: m1[1], script_query: m1[2] };

  var m2 = m1[2].match(/^(.+?)\?(.+)$/);

  if (m2) {
    p['script'] = m2[1];
    p['query'] = m2[2];
  }
  else {
    p['script'] = m1[2];
  }

  var m3 = p['script'].match(/^(.+)\/(.*?)$/);
  p['dir'] = m3[1];
  p['file'] = m3[2];

  return p[part];
},


//-----------------------------------------------------------------------------
error: function(msg, error) {
  var out = document.getElementById('js_log');

  if (out) {
    out.innerHTML += '<b>ERROR: ' + msg + '</b><br><tt style="color:#ff0000">' 
      + error + '</tt><br>';
  }
  else {
    alert('ERROR: ' + msg + "\n" + error);
  }
},


//-----------------------------------------------------------------------------
debug: function(msg) {
  var out = document.getElementById('js_log');

  if (out) {
    if (msg == '*') {
      out.innerHTML = '';
    }
    else {
      out.innerHTML += 'DEBUG: ' + msg + '<br>';
    }
  }
}


}


document.onmousemove = JSLib.p_updateMousePos;


