var dataLocation = "/fileadmin/files/heroData.xml";

//====================================================================

var currentTime = new Date();
var pauseTime;
var transitionSpeed;
var imageRootUrl;
var navWidth;
var navMargin;
var zoneWidth;
var dateData;
var urlData;

$(document).ready(function(){
  
  $.ajax({
    type: "GET",
    url: dataLocation,
    success: function(xml)
    {
      
      // GET SLIDE SHOW SETTINGS FROM XML DOC
      $(xml).find('settings').each(function()
      {
        pauseTime = parseFloat($(this).find('pausetime').text())*1000;
        transitionSpeed = parseFloat($(this).find('transitionspeed').text())*1000;
        imageRootUrl = $(this).find('imagerooturl').text();
        navWidth = $(this).find('navwidth').text();
        navMargin = $(this).find('navmargin').text();
        zoneWidth = $(this).find('zonewidth').text();
        dateData = $(this).find('datedata').text();
        urlData = $(this).find('urldata').text();
        tierStructure = $(this).find('tierstructure').text();
        if (tierStructure == 2) {
          dateData = false;
          urlData = false;
        }
        
      });
      
      var slides = new Array();
      
      // PULL XML DATA FOR IMAGES
      $(xml).find('hero').each(function()
      {
        
        // SHOW SLIDE IF WITHIN DATE RANGE
        if (dateData == true) {
          var start = $(this).find('start').text().split('/');
          var end = $(this).find('end').text().split('/');
          
          start = new Date(start[2], start[0] - 1, start[1]);
          end = new Date(end[2], end[0] - 1, end[1]);      
          
          if (start < currentTime && end > currentTime) {
            var slide = new Object();
            slide.url = $(this).find('url').text();
            slide.image = $(this).find('image').text();
            slides[slides.length] = slide;          
          }
        } else {    
          var slide = new Object();
          if( urlData == true ){ slide.url = $(this).find('url').text() };
          
          if(tierStructure == 3) {
            slide.image = $(this).find('image').text();
          } else {
            slide.image = $(this).text();
          }
          slides[slides.length] = slide;  
        }
      
      });

      for (var i = 0; i < slides.length; i++) {
        var slide = slides[i];        
        var image = slide.image;
        
        if( urlData == true ){ 
          var url = slide.url;
          $('.herocontent').append('<a href="' + url + '"><img src="' + imageRootUrl +  image + '" alt="" /></a>');
        } else {
          $('.herocontent').append('<img src="' + imageRootUrl +  image + '" alt="" />');
        }
      }
      
      var pauseTimeout;
        
      // MOUSEENTER PAUSE
      $('.hero').mouseenter(function() { 
          $('.herocontent').cycle('pause');
        clearTimeout(pauseTimeout) 
      });
      
      // MOUSELEAVE RESUME
      $('.hero').mouseleave(function() { 
        
        pauseTimeout = setTimeout(function(){ 
            $('.herocontent').cycle('resume', true); 
        }, pauseTime ); 
      });
      
      // CYCLER FUNCTIONS
        $('.herocontent').cycle({
        fx: 'scrollHorz', //fade, scrollUp, scrollDown, scrollLeft, scrollRight, shuffle
          timeout: pauseTime, //Display Time
          pager: '.heronav', //Hero Container
          pagerEvent: 'click', //Click to Navigation
            prev: '.arrowleft', //Div for Left
            next: '.arrowright', //Div for Right
          speed: transitionSpeed //Transition Speed
      });
      
      // IF LESS THAN 2 SLIDES - SHOW NO ARROWS
      if ( $('.herocontent').children().length <= 1 ) {
        $('.arrowright').css('display','none');
        $('.arrowleft').css('display','none');
      }
      
      // CENTER NAVIGATION
      var navLeftPosition = (zoneWidth - (($('.herocontent').children().length * navWidth) - navMargin))/2
      $('.heronav').css('left',navLeftPosition);
      
      
    },
    error: function (xhr, ajaxOptions, thrownError){
            alert(xhr.status);
            alert(ajaxOptions);
            alert(thrownError);
        }
  });
});

