jQuery(document).ready(function(){
  var currentPosition = 0;
  var slideCSSWidth = (jQuery('#slideshow').css("width"))?jQuery('#slideshow').css("width"):"0px";
 
  var slideWidth = slideCSSWidth.replace(/px/g, "");

  
  var slides = jQuery('.slide');
  var numberOfSlides = slides.length;
  var duration = 300;
  
  
  var menuItems = [];
  jQuery("#pageBg-outside #main-navigation li").each(function () {
	 if(! jQuery(this).hasClass("divider")){ 
		 menuItems.push(jQuery(this));
	 }
  });

  for(currentMenuItem = 0; currentMenuItem<menuItems.length; currentMenuItem++){
	  jQuery("#main-navigation ." + jQuery(menuItems[currentMenuItem]).attr("class") + " a").bind('click', {pos: currentMenuItem}, getCurrentMenu);	  	  
  }
  
  
  function getCurrentMenu(event){
	  currentPosition = event.data.pos;
	  jQuery('#slideInner').css({
	      'marginLeft' : slideWidth*(-currentPosition)
	    });
	  manageControls(currentPosition);
	    
  }
  
  
  
  // Remove scrollbar in JS
  jQuery('#slidesContainer').css('overflow', 'hidden');

  // Wrap all .slides with #slideInner div
  slides
    //.wrapAll('<div id="slideInner" class="clearfix"></div>')
    // Float left to display horizontally, readjust .slides width
	.css({
      'float' : 'left',
      'width' : slideWidth,
      'display' : 'block'
    });

  // Set #slideInner width equal to total width of all slides
  jQuery('#slideInner').css('width', slideWidth * numberOfSlides);
//alert(jQuery('#slideInner').css('width'));
  
  // Insert controls in the DOM
  jQuery('#slideshow')
    .prepend('<span class="control" id="leftControl"></span>')
    .append('<span class="control" id="rightControl"></span>');

  // Hide left arrow control on first load
  manageControls(currentPosition);

  // Create event listeners for .controls clicks
  
  function aClick(){
	// Determine new position
	currentPosition = (jQuery(this).attr('id')=='rightControl') ? currentPosition+1 : currentPosition-1;
    
	// if last
	
	if(currentPosition==numberOfSlides){
		currentPosition = 0;
		
		jQuery('#slideInner').css({
		      'marginLeft' : slideWidth*(-currentPosition)
		});
		manageControls(currentPosition);
		  
	}else{
	
		// Hide / show controls
	    manageControls(currentPosition);
	    // Move slideInner using margin-left
	    jQuery('#slideInner').animate({
	      'marginLeft' : slideWidth*(-currentPosition)
	    },
	    { duration: duration, queue: false  });
	}
	
	// as definded in /layout/default/tracking/script_http.xhtml
	doTrack();
	
  }
  
  

  // manageControls: Hides and Shows controls depending on currentPosition
  function manageControls(position){
	
	// set menu item to active state
	  obj = slides[position];
	  jQuery("#pageBg-outside #main-navigation a").removeClass("active");
	  jQuery("#pageBg-outside #main-navigation ." + jQuery(obj).attr("id") + " a").addClass("active");
	  
    // Hide left arrow if position is first slide
	if(position==0){ 
		jQuery('#leftControl').addClass("disabled");		
		jQuery('#leftControl').unbind('click', aClick);		
	} else{
		jQuery('#leftControl').removeClass("disabled");		
		jQuery('#leftControl').bind('click', aClick);
	}
	// Hide right arrow if position is last slide
    if(position==numberOfSlides-1){ 
    	jQuery('#rightControl').addClass("disabled");
    	jQuery('#rightControl').unbind('click', aClick);
    	
    } else{ 
    	jQuery('#rightControl').removeClass("disabled"); 
    	jQuery('#rightControl').bind('click', aClick);
    }
  }	
  
  
});