//**************************************************************************
//    commrtn.js - globální rutiny
//--------------------------------------------------------------------------
//    Datum vytvoření   : 10.3.2002
//    Autor             : Michal Bursa
//    Součást projektu  : iMapa
//--------------------------------------------------------------------------
//    Copyright (c) 2002  CDSw - City Data Software s.r.o.
//**************************************************************************
//    $Id: commrtn.js,v 1.5 2008-01-11 09:20:03 michal Exp $


// is

// The -is- object is used to identify the browser.  Every browser edition
// identifies itself, but there is no standard way of doing it, and some of
// the identification is deceptive. This is because the authors of web
// browsers are liars. For example, Microsoft's IE browsers claim to be
// Mozilla 4. Netscape 6 claims to be version 5.

var is = {
    ie:      navigator.appName == 'Microsoft Internet Explorer',
    java:    navigator.javaEnabled(),
    ns:      navigator.appName == 'Netscape',
    ua:      navigator.userAgent.toLowerCase(),
    version: parseFloat(navigator.appVersion.substr(21)) ||
             parseFloat(navigator.appVersion),
    win:     (navigator.platform == 'Win32'),
    mac:     (navigator.userAgent.toLowerCase().indexOf('mac') >= 0)
};
if (is.ua.indexOf('opera') >= 0) {
    is.ie = is.ns = false;
    is.opera = true;
};
if (is.ua.indexOf('gecko') >= 0) {
    is.ie = is.ns = false;
    is.gecko = true;
};


// - vrací vzdálenost komponenty Control od levého okraje dokumentu
// Control ... element dokumentu
// return  ... pixelová vzdálenost od levého okraje dokumentu
function GetAbsOffsetLeft(Control) {
  Control = $(Control);
  var result = 0;
  while ((Control) && (Control != document.body)) {
    result = result + Control.offsetLeft;
    Control = Control.offsetParent;
  }
  return result;
}  


// - vrací vzdálenost komponenty Control od horního okraje dokumentu
// Control ... element dokumentu
// return  ... pixelová vzdálenost od horního okraje dokumentu
function GetAbsOffsetTop(Control) {
  Control = $(Control);
  var result = 0;
  while ((Control) && (Control != document.body)) {
    result = result + Control.offsetTop;
    Control = Control.offsetParent;
  }
  return result;
}  


// - vrací vzdálenost levého okraje elementu Control1 od levého
//   okraje elementu Control2
// Control1 ... element dokumentu
// Control2 ... element dokumentu
// return   ... pixelová vzdálenost levých okrajů
function GetRelOffsetLeft(Control1, Control2) {
  x1 = GetAbsOffsetLeft(Control1);
  x2 = GetAbsOffsetLeft(Control2);
  return (x1-x2);
}  


// - vrací vzdálenost horního okraje elementu Control1 od hornho
//   okraje elementu Control2
// Control1 ... element dokumentu
// Control2 ... element dokumentu
// return   ... pixelová vzdálenost horních okrajů
function GetRelOffsetTop(Control1, Control2) {
  x1 = GetAbsOffsetTop(Control1);
  x2 = GetAbsOffsetTop(Control2);
  return (x1-x2);
}  


// - zobrazí element Control
// Pozn. element musí mít v atributu STYLE uvedeno "display"
function ShowControl(Control) {
  Control.style.display = '';
}  

// - skryje element Control
// Pozn. element musí mít v atributu STYLE uvedeno "display"
function HideControl(Control) {
  Control.style.display = 'none';
}  

// - přepne viditelnost elementu Control
// Pozn. element musí mít v atributu STYLE uvedeno "display"
function SwitchVisibility(Control) {
  if (Control.style.display == '')
    HideControl(Control);
  else
    ShowControl(Control);
}  

// - nastaví viditelnost elementu Control
// Pozn. element musí mít v atributu STYLE uvedeno "display"
// Show ... true/false
function SetVisibility(Control, Show) {
  if (Show == true)
    ShowControl(Control);
  else
    HideControl(Control);
}  


//********************************************************
// vrací číslo zaokrouhlené na 3 desetinná místa

function round3($number) {
	return Math.round($number*1000)/1000;
}



//*************************************************************
// prázdná reakce
function discardEvent(event) {
    if (!event) event = window.event;
    if (event) {
        //event.cancelBubble = true;
        if (event.stopPropagation) event.stopPropagation();
    }
    return false;
}


//*************************************************************
// prázdná reakce
function getEventKeyCode(event) {
  if (event.which) return event.which
  else return event.keyCode;
}


function samePointers(p1, p2) {
    return (p1.inspect() == p2.inspect());
}

