function d7carousel(element,duration){
    if(typeof(cTimer)!='undefined'){
	clearInterval(cTimer);
	if(carouselClear()){
	    carouselInit(element,duration);
	}
    }else{
	carouselInit(element,duration);
    }
}
function carouselInit(element,duration){
    cElement = element;
    cC = $(cElement);
    cCE = $(cElement+' li');
    eMargin = parseInt($(cCE[0]).css('margin-right'));
    eWidth = $(cCE[0]).outerWidth()+eMargin;
    cWidth = (eWidth*cCE.length);
    $(cC).css({'position':'relative','width':cWidth,'left':'-'+eWidth});
    $(cCE).css({'display':'inline-block'});

    $(cC).unbind('hover').hover(function(){
	carouselStop();
    },
    function(){
	carouselInit(element,duration);
    });
    cTimer = setInterval(function(){carouselAnimation(duration)},duration);
}
function carouselAnimation(duration){
    var slideDuration = duration*0.75;
    $(cC).animate({left: '-='+eWidth},slideDuration,function(){
	$(cC).animate({left: '+='+eWidth},0);
	$(cC).append($(cElement+' li:first'));
    });
}

function carouselStop(){
    if(typeof(cTimer)!='undefined'){
	clearInterval(cTimer);
	cTimer = null;
    }
    return false;
}

function carouselClear(){
    cElement = null;
    cC = null;
    cCE = null;
    eMargin = null;
    eWidth = null;
    cWidth = null;
    clearInterval(cTimer);
    cTimer = null;
    if(delete(cTimer)){
	return true;
    }else{
	return false;
    }
}

