var mini_carousel = function(id, cr_body, img, h, iw, mw){
	var IMF = YAHOO;
	var Dom = IMF.util.Dom;
	var Event = IMF.util.Event;

	if(IMF.env.ua.ie > 0 && IMF.env.ua.ie < 8){
		return;
	}
	
	
	//Check Main Container
	var ob = Dom.get(id);
	if(!ob){ return; }

	//Check Body
	var bd = Dom.getElementsByClassName( cr_body, 'div', ob);
	if( !bd || !bd[0] ){ return; }
	bd = bd[0];

	//Get Ul Container
	var ul = Dom.getElementsBy( function(){ return true; }, 'ul', bd );
	if( !ul || !ul[0] ){ return; }
	ul = ul[0];

	//Get items
	var items = Dom.getElementsBy( function(){ return true; }, 'li', ul );
	if(!items){ return; }

	var itemPos = new Array();
	
	//Set Main Container
	Dom.setStyle(ob,'position','relative');
	Dom.setStyle(ul, 'position', "relative");
	
	//Get Maximum Height
	var i = 0;
	var total_width = 0;
	for( i in items ){
		var item = items[i];
		
		var item_h = parseInt(Dom.getStyle(item, 'height'));
		item_h += parseInt(Dom.getStyle(item, 'margin-top'));
		item_h += parseInt(Dom.getStyle(item, 'margin-bottom'));
		item_h += 5;
		
		if( item_h > h ){
			h = item_h;
		}
		
		var item_w = parseInt(Dom.getStyle(item, 'width'));
		item_w += parseInt(Dom.getStyle(item, 'margin-left'));
		item_w += parseInt(Dom.getStyle(item, 'margin-right'));
		
		if(!item_w || item_w <= 0 || item_w == NaN){ var item_w = iw; }
		
		itemPos[i] = total_width;
		
		try{
			Dom.setStyle(item, 'left', total_width+"px");
			Dom.setStyle(item, 'top', "0px");
		}catch(e){
			item.setAttribute('style', item.getAttribute("style") + " left:"+total_width+"px; top:0px;"); 
		}
		
		Dom.setStyle(item,'position','absolute');		

		total_width += item_w;
	}

	//Get Body Width
	var w = parseInt( Dom.getStyle(bd, 'width') );
	if(!w || w <= 0 || w == NaN){ var w = mw; }
	
	//Set Body Container
	try{
		Dom.setStyle(bd, 'width', w+'px');
		Dom.setStyle(bd, 'height', h+'px');
		Dom.setStyle(bd, 'overflow', 'hidden');
	}catch(e){
		bd.setAttribute('style', bd.getAttribute("style") + ' width:'+w+'px; height:'+h+'px; overflow: hidden;');
	}

	//Set Ul styles
	try{
		Dom.setStyle(ul, 'width', (total_width+1000)+"px");
		Dom.setStyle(ul, 'display', "block");
	}catch(e){
		ul.setAttribute('style', ul.getAttribute("style") + ' width:'+(total_width+100)+'px; height:'+h+'px; position: relative; display: block;');
	}

	//Set Navigator
	var nav = document.createElement('div');
	nav.setAttribute('style',"position:absolute; top:5px; right:5px;");
				
		//Back Button
		var back = document.createElement('div');
		back.setAttribute('style',"display:block; width:25px; height:15px; background: url("+img+") 0px 0px no-repeat; float: left; cursor: pointer;");
		back.setAttribute('id',id+"_navigator_back");
		nav.appendChild(back);

		//Next Button
		var next = document.createElement('div');
		next.setAttribute('style',"display:block; width:25px; height:15px; background: url("+img+") 0px -20px no-repeat; float: left; cursor: pointer; margin-left: 1px;");
		next.setAttribute('id',id+"_navigator_next");
		nav.appendChild(next);
						
	ob.appendChild(nav);

	//Get Buttons
	var back = Dom.get(id+"_navigator_back");
	var next = Dom.get(id+"_navigator_next");

	var next_anim = null, back_anim = null;
	var easing_mode = IMF.util.Easing.easeOut;

	var current = 0;
	
	var next_func = function(){
		if( next_anim != null ){ next_anim.stop(); }
		if( back_anim != null ){ back_anim.stop(); }
	
		var ws = 0;
		var crnt = 0;
		
		for( var i = current; i < items.length; i++ ){
			var item = items[i];

			var item_w = parseInt(Dom.getStyle(item, 'width'));
			item_w += parseInt(Dom.getStyle(item, 'margin-left'));
			item_w += parseInt(Dom.getStyle(item, 'margin-right'));
				
			if(!item_w || item_w <= 0 || item_w == NaN){ var item_w = iw; }
			
			if( ws < w && (ws+item_w) < w ){
				ws += item_w;
			}else if(!crnt){
				crnt = i;
			}
		}

		current = crnt;
		//var item = items[crnt];
		var nx = -(itemPos[crnt]);

		next_anim = new IMF.util.Anim(ul,{"margin-left": { "to": nx }},0.7,easing_mode);
		next_anim.animate();
	}

	var back_func = function(){
		if( next_anim != null ){ next_anim.stop(); }
		if( back_anim != null ){ back_anim.stop(); }
	
		var ws = 0;
		var crnt = 0;
		
		for( var i = current; i > 0; i-- ){
			var item = items[i];

			var item_w = parseInt(Dom.getStyle(item, 'width'));
			item_w += parseInt(Dom.getStyle(item, 'margin-left'));
			item_w += parseInt(Dom.getStyle(item, 'margin-right'));
			
			if(!item_w || item_w <= 0 || item_w == NaN){ var item_w = iw; }

			if( ws < w && (ws+item_w) < w ){
				ws += item_w;
			}else if(!crnt){
				crnt = i;
			}
		}

		current = crnt;
		//var item = items[crnt];
		var nx = -(itemPos[crnt]);

		back_anim = new IMF.util.Anim(ul,{"margin-left": { "to": nx }},0.7,easing_mode);
		back_anim.animate();				
	}
	
	Event.addListener(back, "click", back_func);
	Event.addListener(next, "click", next_func);
	
	Event.addListener(back, "mouseover", function(){ Dom.setStyle(this, "background-position","-30px 0px"); });
	Event.addListener(back, "mouseout", function(){ Dom.setStyle(this, "background-position","0px 0px"); });
	Event.addListener(next, "mouseover", function(){ Dom.setStyle(this, "background-position","-30px -20px"); });
	Event.addListener(next, "mouseout", function(){ Dom.setStyle(this, "background-position","0px -20px"); });
};