function moveCarousel(dir, element, text,moveto)
{
    var carousel = document.getElementById(element);
    var imgs = carousel.getElementsByTagName('img');
    var total = imgs.length;
		if (total==0) return false;
    var width = $(imgs[0]).readAttribute('width');
    var x = ($(element).getStyle('left') == null) ? '0px' : $(element).getStyle('left');
    x = String(x.substring(0, (x.length - 2)));
		//alert(x+" "+width)
    if (dir == 'next') {
        var image = (x == 0) ? 2 : ((Math.abs(x) / width) + 2);
    } else if (dir == 'prev') {
        var image = (Math.abs(x) / width);
    } else if (dir=='pos') {
			// move to position
      var image = (Math.abs(x) / width);
			//alert("pos  move"+image+" "+moveto+" reset"+(width*image)+" end moveto: -"+(width*moveto))
			new Effect.MoveBy(element, 0, 0 , { x: (width*image), y: 0, duration: 0.0,  transition: Effect.Transitions.sinoidal});			
			new Effect.MoveBy(element, 0, 0 , { x: -(width*moveto), y: 0, duration: 0.0,  transition: Effect.Transitions.sinoidal});
			return true;
		} else {
        return false;
    }
		try {
    if (!$(imgs[image - 1])) {
				new Effect.MoveBy(element, 0, 0 , { x: (width*(image-2)), y: 0, duration: 0.0,  transition: Effect.Transitions.sinoidal});
        return false;
    }
		}
		catch (e){
			new Effect.MoveBy(element, 0, 0 , { x: -(width*(imgs.length-1)), y: 0, duration: 0.0,  transition: Effect.Transitions.sinoidal});
			//alert(e+" "+imgs.length+" "+width+""+imgs.length+" "+width)
		}

    if (dir == 'next') {

        if (x > -(width * (total - 1))) {
            new Effect.MoveBy(element, 0, 0 , { x: -width, y: 0, duration: 0.0,  transition: Effect.Transitions.sinoidal});
            //$(text).update($(imgs[image - 1]).readAttribute('title'));
            return true;
        }

    } else if (dir == 'prev') {

        if (x < 0) {
            new Effect.MoveBy(element, 0, 0 , { x: width, y: 0, duration: 0.0,  transition: Effect.Transitions.sinoidal});
            //$(text).update($(imgs[image - 1]).readAttribute('title'));
            return true;
        }
    } else {
        return false;

    }
    return false;
}
