function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

var READY_STATE_UNINITIALIZED = 0;
var READY_STATE_LOADING = 1;
var READY_STATE_LOADED = 2;
var READY_STATE_INTERACTIVE = 3;
var READY_STATE_COMPLETE = 4;

var gReq = null;
var gItems = [];

var g_animationManager = new AnimationManager( 50 );
var g_current_slide = 0;
var g_slides = [];

var g_slide_texts = [];
var g_icText;

var g_ver_rel_pos = [];

function loadXmlDoc(pLand) {
  
  var lHttpMethod = "GET";
  var lUrl="../php/slides.php?land="+escape(pLand);
  
  gReq = getHTTPObject();
  if (gReq) {
    gReq.onreadystatechange=onReadyXmlStateChange;
    gReq.open(lHttpMethod, lUrl, true);  
    gReq.send(""); 
  }
}

function getPictures(pSlidesGroup) {
  stop_slides();
  load_slides( gItems, pSlidesGroup );
  start_slides();
}

function onReadyXmlStateChange()
{
  var lReady = gReq.readyState;
  if (lReady = READY_STATE_COMPLETE) {
    if (gReq.status == 200 && gReq.responseXML != null) {

      var lNl = gReq.responseXML.getElementsByTagName( 'slide' );
      for( var lIdx = 0; lIdx < lNl.length; lIdx++ ) {
        var lNli = lNl.item( lIdx );
        var lGroup = lNli.getAttribute( 'group' ).toString();
        var lSrc = lNli.getAttribute( 'src' ).toString();
        var lWidth = parseInt( lNli.getAttribute( 'width' ).toString() );
        var lHeight = parseInt( lNli.getAttribute( 'height' ).toString() );
        gItems.push( { group: lGroup, src: lSrc, width: lWidth, height: lHeight } );
      }
    }
  }
}

g_animationManager.on_finished = function()
{
  g_icText.removeChild(g_slide_texts[g_current_slide]);
  if ( ++g_current_slide < g_slides.length ) {
    g_icText.appendChild(g_slide_texts[g_current_slide]);
    g_slides[ g_current_slide ].start();
  } else {
    g_current_slide = 0;
    g_slides = [];
  }
}


function load_slides( images, pSlidesGroup )
{  
  var ic = document.getElementById( pSlidesGroup );  
  // var icOpis = document.getElementById( pSlidesGroup + "_opis");
  g_icText = document.getElementById( pSlidesGroup + "_opis");
  var icCount = 0;
  g_slides = [];
  
  var lMaxHeight = 0;
  for( var i in images ) {
    var img = images[i];
    if (img.group == pSlidesGroup) {
      var imgObj = document.createElement( 'img' );
      imgObj.style.position = 'absolute';
      imgObj.style.left = '0px';
      imgObj.style.top = '0px';
      imgObj.style.visibility = 'hidden';
      ic.appendChild( imgObj );
      
      var ii = new ImageInfo( img.src, img.width, img.height, imgObj );
      
      if (img.height > lMaxHeight) {
        lMaxHeight = img.height;
      }
      
      g_slides.push( 
        new Animation( g_animationManager, ii, 7,
          [ new KenBurnsFader( ii, 30 ) ] )
      );
      icCount++;
    }
  }
  
  var lLinkoviElement = document.getElementById( 'linkovi' );  
  // var topPos = calculateVerRelPos(icOpis, lLinkoviElement, lMaxHeight + 10);
  var topPos = get(g_ver_rel_pos, pSlidesGroup);
  if (topPos == null) {
    topPos = calculateVerRelPos(ic, lLinkoviElement, lMaxHeight + 10);
    put(g_ver_rel_pos, pSlidesGroup, topPos);
  }

  ic.style.top = '' + topPos + 'px';
  g_icText.style.top = '' + topPos + 'px';

  // var icPos = findPos(ic);
 
  g_slide_texts = [];
  for (var i = 0; i<=icCount; i++) {
    var i1 = i+1;
    var textObj = document.createTextNode( '' + i1 + '/' + icCount );
    g_slide_texts.push(textObj);
  }
  // g_icText = icOpis;
}


function calculateVerRelPos(pElement, pLinkoviElement, pMaxHeight) {  
  var lVerRelPos = 0;  
  var lElementPos = findPos(pElement);
  var lElementVerPos = lElementPos[1];
   
  if (pLinkoviElement != null) {    
    var lLinkoviPos = findPos(pLinkoviElement);
    var lLinkoviVerPos = lLinkoviPos[1];
    var lVSpace = lLinkoviVerPos - lElementVerPos;
    if (pMaxHeight > lVSpace) {
      lVerRelPos = lVSpace - pMaxHeight; 
    }
  }
  return lVerRelPos;
}


function start_slides()
{ 
  g_icText.appendChild(g_slide_texts[g_current_slide]);
  createStyledText(g_icText);
  if (g_slides != null) {
    if (g_slides[ g_current_slide ] != null) {
      g_slides[ g_current_slide ].start();
    }
  }  
}

function stop_slides() {
  if (g_slides != null) {
    if (g_slides[ g_current_slide ] != null) {
      g_slides[ g_current_slide ].stop_animation();
      g_icText.removeChild(g_slide_texts[g_current_slide]);
      g_current_slide = 0;
    }
  }
}

function findPos(obj) {
  var curleft = curtop = 0;
  if (obj.offsetParent) {
          curleft = obj.offsetLeft
          curtop = obj.offsetTop
          while (obj = obj.offsetParent) {
                  curleft += obj.offsetLeft
                  curtop += obj.offsetTop
          }
  }
  return [curleft,curtop];
}


function createStyledText(pNode) {
  var lStyledNode;
  lStyledNode = pNode;
  lStyledNode.style.fontFamily = 'Arial, Helvetica, sans-serif';
  lStyledNode.style.fontSize = '10px';  
  lStyledNode.style.color = '#333399';  
  
  return lStyledNode;
}

function put(pArray, pKey, pValue) {
  if (get(pArray, pKey) == null) {
    var lEntry = new Object();
    lEntry["key"] = pKey;
    lEntry["value"] = pValue; 
    pArray.push(lEntry);
  }  
}

function get(pArray, pKey) {
  var lValue = null;
  for (var i = 0; i < pArray.length; i++) {
    var lKey = pArray[i]["key"];
    if (lKey == pKey) {
      lValue = pArray[i]["value"];
      break;
    }
  }
  return lValue;
}




