var timeout    = 500;
var closetimer = 0;
var ddmenuitem = 0;

function jsddm_open()
{  jsddm_canceltimer();
   jsddm_close();
   ddmenuitem = $(this).find('ul').css('visibility', 'visible');}

function jsddm_close()
{  if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');}

function jsddm_timer()
{  closetimer = window.setTimeout(jsddm_close, timeout);}

function jsddm_canceltimer()
{  if(closetimer)
   {  window.clearTimeout(closetimer);
      closetimer = null;}}

function mycarousel_initCallback(carousel)
{
    // Disable autoscrolling if the user clicks the prev or next button.
    carousel.buttonNext.bind('click', function() {
        carousel.startAuto(0);
    });
 
    carousel.buttonPrev.bind('click', function() {
        carousel.startAuto(0);
    });
 
    // Pause autoscrolling if the user moves with the cursor over the clip.
    carousel.clip.hover(function() {
        carousel.stopAuto();
    }, function() {
        carousel.startAuto();
    });
	

    jQuery('#slider-next').bind('click', function() {
        carousel.next();
        return false;
    });
 
    jQuery('#slider-prev').bind('click', function() {
        carousel.prev();
        return false;
    });	
};

						
function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt)
{
	// The index() method calculates the index from a
	// given index who is out of the actual item range.
	var idx = carousel.index(i, mycarousel_itemList.length);
	carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[idx - 1]));
};
 
function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{ carousel.remove(i); };
 
/**
 * Item html creation helper.
 */
function mycarousel_getItemHTML(item)
{ return '<a href="' + item.link + '"><img src="' + item.url + '" width="176" height="161" alt="' + item.title + '" /></a>'; };

var speed = 50;
var pic, numImgs, arrLeft, i, totalWidth, n, myInterval; 
var scrollPaused = false;
var scrollDirection = 1;
var step = 1;



function flexiScroll(){
	if(scrollPaused) return;
	$("#debug").html("");
	for (i=0;i<numImgs;i++){
		arrLeft[i] -= step * scrollDirection;		

		if (arrLeft[i] <= -($(pic[i]).width())){	
			totalWidth = 0;	
			for (n=0;n<numImgs;n++){
				if (n!=i){	
					totalWidth += $(pic[n]).width();
				}			
			}	
			arrLeft[i] = totalWidth;
		}
		else if(arrLeft[i] >= totalWidth) {
			arrLeft[i] = -$(pic[i]).width();
		}
		
		$(pic[i]).css("left",arrLeft[i]);
		//$("#debug").append("Image #" + i + ": " + arrLeft[i] + "px\n");
	}
}


$(document).ready(function()
{
	$('#feature-banner-nav').hide();
	$('#jsddm > li').bind('mouseover', jsddm_open)
	$('#jsddm > li').bind('mouseout',  jsddm_timer)
	
	/*
	$("#image-slider").jcarousel({
        auto: 5,
		wrap: 'last',
        initCallback: mycarousel_initCallback,
        buttonNextHTML: null,
        buttonPrevHTML: null,
        wrap: 'circular',
        itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
        itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
    });
	*/

	pic = $("#image-slider").children("a");
	numImgs = pic.length;
	arrLeft = new Array(numImgs);
	
	for (i=0;i<numImgs;i++){
		
		totalWidth=0;
		for(n=0;n<i;n++){
			totalWidth += $(pic[n]).width();
		}
		
		arrLeft[i] = totalWidth;
		$(pic[i]).css("left",totalWidth);
	}
	
	myInterval = setInterval("flexiScroll()",speed);
	$(pic).show();		
	
	$('#feature-banner-images').cycle({ 
		fx:     'fade', 
		timeout: 6000,
		pager: '#feature-banner-nav',
		pagerEvent: 'click',
		pauseOnPagerHover: true 
	});	

    $('#feature-banner').hover(
        function() { $('#feature-banner-nav').fadeIn(); $("#feature-banner-images").cycle('pause');  },
        function() { $('#feature-banner-nav').fadeOut(); $("#feature-banner-images").cycle('resume'); }
    );
	
	$("#image-slider").hover(
		function() { scrollPaused = true; },
		function() { scrollPaused = false; }
	);
	
	// slider-prev, slider-next
	$("#slider-next").hover(
		function() { clearInterval(myInterval); step = 2; myInterval = setInterval("flexiScroll()",1); },
		function() { clearInterval(myInterval); step = 1; myInterval = setInterval("flexiScroll()",speed); }
	);
	$("#slider-prev").hover(
		function() { scrollDirection = -1; clearInterval(myInterval); step = 2; myInterval = setInterval("flexiScroll()",1); },
		function() { scrollDirection = 1; clearInterval(myInterval); step = 1; myInterval = setInterval("flexiScroll()",speed); }
	);
});

document.onclick = jsddm_close;

