// JavaScript Document
/* x_plezanje.js compiled from X 4.0 with XC 0.28b. Distributed under GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com */

// globals, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xNN4,xUA=navigator.userAgent.toLowerCase();

if(window.opera){

  var i=xUA.indexOf('opera');

  if(i!=-1){

    var v=parseInt(xUA.charAt(i+6));

    xOp7Up=v>=7;

    xOp6Dn=v<7;

  }

}

else if(navigator.vendor!='KDE' && document.all && xUA.indexOf('msie')!=-1){

  xIE4Up=parseFloat(navigator.appVersion)>=4;

  xIE4=xUA.indexOf('msie 4')!=-1;

  xIE5=xUA.indexOf('msie 5')!=-1;

}

else if(document.layers){xNN4=true;}

xMac=xUA.indexOf('mac')!=-1;

// xAddEventListener, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

                                                      

function xAddEventListener(e,eT,eL,cap)

{

  if(!(e=xGetElementById(e))) return;

  eT=eT.toLowerCase();

  if((!xIE4Up && !xOp7Up) && e==window) {

    if(eT=='resize') { window.xPCW=xClientWidth(); window.xPCH=xClientHeight(); window.xREL=eL; xResizeEvent(); return; }

    if(eT=='scroll') { window.xPSL=xScrollLeft(); window.xPST=xScrollTop(); window.xSEL=eL; xScrollEvent(); return; }

  }

  var eh='e.on'+eT+'=eL';

  if(e.addEventListener) e.addEventListener(eT,eL,cap);

  else if(e.attachEvent) e.attachEvent('on'+eT,eL);

  else eval(eh);

}

// called only from the above

function xResizeEvent()

{

  if (window.xREL) setTimeout('xResizeEvent()', 250);

  var cw = xClientWidth(), ch = xClientHeight();

  if (window.xPCW != cw || window.xPCH != ch) { window.xPCW = cw; window.xPCH = ch; if (window.xREL) window.xREL(); }

}

function xScrollEvent()

{

  if (window.xSEL) setTimeout('xScrollEvent()', 250);

  var sl = xScrollLeft(), st = xScrollTop();

  if (window.xPSL != sl || window.xPST != st) { window.xPSL = sl; window.xPST = st; if (window.xSEL) window.xSEL(); }

}

// xClientHeight, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xClientHeight()

{

  var h=0;

  if(xOp6Dn) h=window.innerHeight;

  else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientHeight)

    h=document.documentElement.clientHeight;

  else if(document.body && document.body.clientHeight)

    h=document.body.clientHeight;

  else if(xDef(window.innerWidth,window.innerHeight,document.width)) {

    h=window.innerHeight;

    if(document.width>window.innerWidth) h-=16;

  }

  return h;

}

// xClientWidth, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xClientWidth()

{

  var w=0;

  if(xOp6Dn) w=window.innerWidth;

  else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientWidth)

    w=document.documentElement.clientWidth;

  else if(document.body && document.body.clientWidth)

    w=document.body.clientWidth;

  else if(xDef(window.innerWidth,window.innerHeight,document.height)) {

    w=window.innerWidth;

    if(document.height>window.innerHeight) w-=16;

  }

  return w;

}

// xDef, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xDef()

{

  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}

  return true;

}

// xEvent, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xEvent(evt) // object prototype

{

  var e = evt || window.event;

  if(!e) return;

  if(e.type) this.type = e.type;

  if(e.target) this.target = e.target;

  else if(e.srcElement) this.target = e.srcElement;

 

  // Section B

  if (e.relatedTarget) this.relatedTarget = e.relatedTarget;

  else if (e.type == 'mouseover' && e.fromElement) this.relatedTarget = e.fromElement;

  else if (e.type == 'mouseout') this.relatedTarget = e.toElement;

  // End Section B

 

  if(xOp6Dn) { this.pageX = e.clientX; this.pageY = e.clientY; }

  else if(xDef(e.pageX,e.pageY)) { this.pageX = e.pageX; this.pageY = e.pageY; }

  else if(xDef(e.clientX,e.clientY)) { this.pageX = e.clientX + xScrollLeft(); this.pageY = e.clientY + xScrollTop(); }

 

  // Section A

  if (xDef(e.offsetX,e.offsetY)) {

    this.offsetX = e.offsetX;

    this.offsetY = e.offsetY;

  }

  else if (xDef(e.layerX,e.layerY)) {

    this.offsetX = e.layerX;

    this.offsetY = e.layerY;

  }

  else {

    this.offsetX = this.pageX - xPageX(this.target);

    this.offsetY = this.pageY - xPageY(this.target);

  }

  // End Section A

  

  if (e.keyCode) { this.keyCode = e.keyCode; } // for moz/fb, if keyCode==0 use which

  else if (xDef(e.which) && e.type.indexOf('key')!=-1) { this.keyCode = e.which; }

 

  this.shiftKey = e.shiftKey;

  this.ctrlKey = e.ctrlKey;

  this.altKey = e.altKey;

}

 

//  I need someone with IE/Mac to compare test snippets 1 and 2 in section A.

  

//  // Snippet 1

//  if(xDef(e.offsetX,e.offsetY)) {

//    this.offsetX = e.offsetX;

//    this.offsetY = e.offsetY;

//    if (xIE4Up && xMac) {

//      this.offsetX += xScrollLeft();

//      this.offsetY += xScrollTop();

//    }

//  }

//  else if (xDef(e.layerX,e.layerY)) {

//    this.offsetX = e.layerX;

//    this.offsetY = e.layerY;

//  }

//  else {

//    this.offsetX = this.pageX - xPageX(this.target);

//    this.offsetY = this.pageY - xPageY(this.target);

//  }

 

//  // Snippet 2

//  if (xDef(e.offsetX,e.offsetY) && !(xIE4Up && xMac)) {

//    this.offsetX = e.offsetX;

//    this.offsetY = e.offsetY;

//  }

//  else if (xDef(e.layerX,e.layerY)) {

//    this.offsetX = e.layerX;

//    this.offsetY = e.layerY;

//  }

//  else {

//    this.offsetX = this.pageX - xPageX(this.target);

//    this.offsetY = this.pageY - xPageY(this.target);

//  }

 

//  This was in section B:

 

//  if (e.relatedTarget) this.relatedTarget = e.relatedTarget;

//  else if (xIE4Up) {

//    if (e.type == 'mouseover') this.relatedTarget = e.fromElement;

//    else if (e.type == 'mouseout') this.relatedTarget = e.toElement;

//  }

//  changed to remove sniffer after discussion with Hallvord

 

// Possible optimization:

 

//  if (e.keyCode) { this.keyCode = e.keyCode; } // for moz/fb, if keyCode==0 use which

//  else if (xDef(e.which) && e.type.indexOf('key')!=-1) { this.keyCode = e.which; }

//  // replace the above 2 lines with the following?

//  // this.keyCode = e.keyCode || e.which || 0;

// xGetComputedStyle, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xGetComputedStyle(oEle, sProp, bInt)

{

  var s, p = 'undefined';

  var dv = document.defaultView;

  if(dv && dv.getComputedStyle){

    s = dv.getComputedStyle(oEle,'');

    if (s) p = s.getPropertyValue(sProp);

  }

  else if(oEle.currentStyle) {

    // convert css property name to object property name for IE

    var a = sProp.split('-');

    sProp = a[0];

    for (var i=1; i<a.length; ++i) {

      c = a[i].charAt(0);

      sProp += a[i].replace(c, c.toUpperCase());

    }   

    p = oEle.currentStyle[sProp];

  }

  else return null;

  return bInt ? (parseInt(p) || 0) : p;

}

 

// xGetElementById, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xGetElementById(e)

{

  if(typeof(e)!='string') return e;

  if(document.getElementById) e=document.getElementById(e);

  else if(document.all) e=document.all[e];

  else e=null;

  return e;

}

// xGetElementsByAttribute, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xGetElementsByAttribute(sTag, sAtt, sRE, fn)

{

  var a, list, found = new Array(), re = new RegExp(sRE, 'i');

  list = xGetElementsByTagName(sTag);

  for (var i = 0; i < list.length; ++i) {

    a = list[i].getAttribute(sAtt);

    if (!a) {a = list[i][sAtt];}

    if (typeof(a)=='string' && a.search(re) != -1) {

      found[found.length] = list[i];

      if (fn) fn(list[i]);

    }

  }

  return found;

}

// xGetElementsByClassName, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xGetElementsByClassName(c,p,t,f)

{

  var found = new Array();

  var re = new RegExp('\\b'+c+'\\b', 'i');

  var list = xGetElementsByTagName(t, p);

  for (var i = 0; i < list.length; ++i) {

    if (list[i].className && list[i].className.search(re) != -1) {

      found[found.length] = list[i];

      if (f) f(list[i]);

    }

  }

  return found;

}

// xGetElementsByTagName, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xGetElementsByTagName(t,p)

{

  var list = null;

  t = t || '*';

  p = p || document;

  if (xIE4 || xIE5) {

    if (t == '*') list = p.all;

    else list = p.all.tags(t);

  }

  else if (p.getElementsByTagName) list = p.getElementsByTagName(t);

  return list || new Array();

}

// xHeight, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xHeight(e,h)

{

  if(!(e=xGetElementById(e))) return 0;

  if (xNum(h)) {

    if (h<0) h = 0;

    else h=Math.round(h);

  }

  else h=-1;

  var css=xDef(e.style);

  if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {

    h = xClientHeight();

  }

  else if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {

    if(h>=0) {

      var pt=0,pb=0,bt=0,bb=0;

      if (document.compatMode=='CSS1Compat') {

        var gcs = xGetComputedStyle;

        pt=gcs(e,'padding-top',1);

        if (pt !== null) {

          pb=gcs(e,'padding-bottom',1);

          bt=gcs(e,'border-top-width',1);

          bb=gcs(e,'border-bottom-width',1);

        }

        // Should we try this as a last resort?

        // At this point getComputedStyle and currentStyle do not exist.

        else if(xDef(e.offsetHeight,e.style.height)){

          e.style.height=h+'px';

          pt=e.offsetHeight-h;

        }

      }

      h-=(pt+pb+bt+bb);

      if(isNaN(h)||h<0) return;

      else e.style.height=h+'px';

    }

    h=e.offsetHeight;

  }

  else if(css && xDef(e.style.pixelHeight)) {

    if(h>=0) e.style.pixelHeight=h;

    h=e.style.pixelHeight;

  }

  return h;

}

// xInnerHtml, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xInnerHtml(e,h)

{

  if(!(e=xGetElementById(e)) || !xStr(e.innerHTML)) return null;

  var s = e.innerHTML;

  if (xStr(h)) {e.innerHTML = h;}

  return s;

}

// xNum, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xNum()

{

  for(var i=0; i<arguments.length; ++i){if(isNaN(arguments[i]) || typeof(arguments[i])!='number') return false;}

  return true;

}

// xPageX, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xPageX(e)

{

  if (!(e=xGetElementById(e))) return 0;

  var x = 0;

  while (e) {

    if (xDef(e.offsetLeft)) x += e.offsetLeft;

    e = xDef(e.offsetParent) ? e.offsetParent : null;

  }

  return x;

}

// xPageY, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xPageY(e)

{

  if (!(e=xGetElementById(e))) return 0;

  var y = 0;

  while (e) {

    if (xDef(e.offsetTop)) y += e.offsetTop;

    e = xDef(e.offsetParent) ? e.offsetParent : null;

  }

//  if (xOp7Up) return y - document.body.offsetTop; // v3.14, temporary hack for opera bug 130324 (reported 1nov03)

  return y;

}

// xRemoveEventListener, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xRemoveEventListener(e,eT,eL,cap)

{

  if(!(e=xGetElementById(e))) return;

  eT=eT.toLowerCase();

  if((!xIE4Up && !xOp7Up) && e==window) {

    if(eT=='resize') { window.xREL=null; return; }

    if(eT=='scroll') { window.xSEL=null; return; }

  }

  var eh='e.on'+eT+'=null';

  if(e.removeEventListener) e.removeEventListener(eT,eL,cap);

  else if(e.detachEvent) e.detachEvent('on'+eT,eL);

  else eval(eh);

}

// xScrollLeft, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xScrollLeft(e, bWin)

{

  var offset=0;

  if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {

    var w = window;

    if (bWin && e) w = e;

    if(w.document.documentElement && w.document.documentElement.scrollLeft) offset=w.document.documentElement.scrollLeft;

    else if(w.document.body && xDef(w.document.body.scrollLeft)) offset=w.document.body.scrollLeft;

  }

  else {

    e = xGetElementById(e);

    if (e && xNum(e.scrollLeft)) offset = e.scrollLeft;

  }

  return offset;

}

// xScrollTop, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xScrollTop(e, bWin)

{

  var offset=0;

  if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {

    var w = window;

    if (bWin && e) w = e;

    if(w.document.documentElement && w.document.documentElement.scrollTop) offset=w.document.documentElement.scrollTop;

    else if(w.document.body && xDef(w.document.body.scrollTop)) offset=w.document.body.scrollTop;

  }

  else {

    e = xGetElementById(e);

    if (e && xNum(e.scrollTop)) offset = e.scrollTop;

  }

  return offset;

}

// xStr, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xStr(s)

{

  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])!='string') return false;}

  return true;

}

// xWidth, Copyright 2001-2005 Michael Foster (Cross-Browser.com)

// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

 

function xWidth(e,w)

{

  if(!(e=xGetElementById(e))) return 0;

  if (xNum(w)) {

    if (w<0) w = 0;

    else w=Math.round(w);

  }

  else w=-1;

  var css=xDef(e.style);

  if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {

    w = xClientWidth();

  }

  else if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {

    if(w>=0) {

      var pl=0,pr=0,bl=0,br=0;

      if (document.compatMode=='CSS1Compat') {

        var gcs = xGetComputedStyle;

        pl=gcs(e,'padding-left',1);

        if (pl !== null) {

          pr=gcs(e,'padding-right',1);

          bl=gcs(e,'border-left-width',1);

          br=gcs(e,'border-right-width',1);

        }

        // Should we try this as a last resort?

        // At this point getComputedStyle and currentStyle do not exist.

        else if(xDef(e.offsetWidth,e.style.width)){

          e.style.width=w+'px';

          pl=e.offsetWidth-w;

        }

      }

      w-=(pl+pr+bl+br);

      if(isNaN(w)||w<0) return;

      else e.style.width=w+'px';

    }

    w=e.offsetWidth;

  }

  else if(css && xDef(e.style.pixelWidth)) {

    if(w>=0) e.style.pixelWidth=w;

    w=e.style.pixelWidth;

  }

  return w;

}

