function carousel(arrParams){
  if(!(arrParams.width>0 && isFinite(arrParams.width)))arrParams.width=100;
  if(!(arrParams.height>0 && isFinite(arrParams.height)))arrParams.height=100;
  if(!(arrParams.sides>2 && isFinite(arrParams.sides)))arrParams.sides=6;
  if(!(arrParams.steps>0 && arrParams.steps<100 && isFinite(arrParams.steps)))arrParams.steps=20;
  if(!(arrParams.speed>0 && isFinite(arrParams.speed)))arrParams.speed=8;
  if(!(arrParams.image_border_width>=0 && isFinite(arrParams.image_border_width)))arrParams.image_border_width=0;

  // alert(arrParams.image_border_width);
  if(isFinite(arrParams.id)||!arrParams.id)arrParams.id='bad_id_given_'+Math.random();
  
  document.write("<div style='position:relative;overflow:hidden;' id='"+arrParams.id.replace(/[^a-zA-Z0-9]+/g,'_')+"'></div>");
  var objDiv=document.getElementById(arrParams.id.replace(/[^a-zA-Z0-9]+/g,'_'))
  objDiv.style.width=arrParams.width+'px';
  objDiv.style.height=arrParams.height+'px';
  objDiv.style.border=arrParams.border;
  objDiv.style.position='relative';
  objDiv.style.overflow='hidden';
  objDiv.title=arrParams.id;
    
  var counter=0,spinning=true,interval=Math.floor(60000/arrParams.sides/arrParams.steps/arrParams.speed)-5;
  interval=isNaN(interval)?200:interval;
  var img_position=[],images=[],img_dimension=[];
  var img_index=arrParams.images.length+1,img_index_cap=2*arrParams.images.length;
  var faces=Math.ceil(arrParams.sides/2), dimension, direction, targ, attr, faraway;

  function init(){
    if(arrParams.direction=="left" || arrParams.direction=="right"){
      direction=arrParams.direction;
      dimension="width";
      }
    else if(arrParams.direction=="top" || arrParams.direction=="bottom"){
      direction=arrParams.direction;
      dimension="height";
      }
    else {
      direction="left";
      dimension="width";
      }      
    faraway=(direction=="left"||direction=="top")?'-20000px':'20000px';
    objDiv.style[dimension]=arrParams[dimension]/(arrParams.size_mode=='image'?Math.sin(Math.PI/arrParams.sides):1)+'px';
    var img=new Image();
    img.style.position='absolute';
    img.style[direction]=faraway;
    img.style.width=arrParams.width-2*arrParams.image_border_width+'px';
    img.style.height=arrParams.height-2*arrParams.image_border_width+'px';
//    img.style.border=0;
    img.style.border=(arrParams.image_border_width||0)+'px solid '+arrParams.image_border_color;
  
    for(var i=0;i<arrParams.images.length;i++){
      images[i]=img.cloneNode(true);
      images[i].src=arrParams.images[i];
      if(arrParams.links && arrParams.links[i] && arrParams.links[i]!=''){
        targ=arrParams.lnk_targets && arrParams.lnk_targets[i]||arrParams.lnk_base||'new';
        if(targ=="_blank"){
          attr=(arrParams.lnk_attr && arrParams.lnk_attr[i])?",'"+arrParams.lnk_attr[i]+"'":"";
          images[i].onclick=new Function("window.open('"+arrParams.links[i]+"','"+targ+"'"+attr+")");
          }
        else if(targ.substr(0,1)=="_"){
          images[i].onclick=new Function(targ.substr(1)+".location='"+arrParams.links[i]+"'");
          }
        else{
          attr=(arrParams.lnk_attr && arrParams.lnk_attr[i])?",'"+arrParams.lnk_attr[i]+"'":"";
          images[i].onclick=new Function("var t='"+targ+"';if(window[t]){try{window[t].close()}catch(z){}}window[t]=window.open('"+arrParams.links[i]+"',t"+attr+");window[t].focus()");
          }
        images[i].style.cursor=document.all?'hand':'pointer';
        }

      if(arrParams.titles && arrParams.titles[i] && arrParams.titles[i]!='')
        images[i].title=arrParams.titles[i];
      if(document.all)
        images[i].alt=images[i].title;
      images[i+arrParams.images.length]=images[i];
      if(arrParams.images.length==faces)
        images[i+2*arrParams.images.length]=images[i];
      objDiv.appendChild(images[i]);
      }
  
    var face_size=arrParams.size_mode=='image'?arrParams[dimension]:arrParams[dimension]*Math.sin(Math.PI/arrParams.sides);
    var face_offset=arrParams[dimension]*Math.cos(Math.PI/arrParams.sides)/(arrParams.size_mode=='image'?Math.sin(Math.PI/arrParams.sides):1)/2-.5;
    var pi_piece=2*Math.PI/arrParams.steps/arrParams.sides;
    for(i=0;i<=arrParams.steps*faces;i++){
      img_dimension[i]=face_size*Math.sin(pi_piece*i);
      img_position[i]=(i<arrParams.steps*arrParams.sides/2)?Math.floor(arrParams[dimension]/2/(arrParams.size_mode=='image'?Math.sin(Math.PI/arrParams.sides):1)-face_offset*Math.cos(pi_piece*i)-img_dimension[i]/2)+'px':faraway;
      img_dimension[i]=img_dimension[i]-2*arrParams.image_border_width>1?Math.ceil(img_dimension[i])-2*arrParams.image_border_width+'px':'1px';
      }
    }
  init();

objDiv.my_dely = function(){
//	alert("asdf");
	spinning=true;
}
  objDiv.rotate = function(){
    setTimeout('document.getElementById("'+objDiv.id+'").rotate()',interval);
    if(!spinning) return;
     if(++counter>=arrParams.steps){
	setTimeout('document.getElementById("'+objDiv.id+'").my_dely()',8000);
        spinning=false;
      counter=0;
      if(++img_index>=img_index_cap)
        img_index=arrParams.images.length;
      }
    images[img_index-faces].style[direction]=faraway;
    for(var i=faces-1;i>=0;i--){
      images[img_index-i].style[direction]=img_position[counter+i*arrParams.steps];
      images[img_index-i].style[dimension]=img_dimension[counter+i*arrParams.steps];
      }
    }
  objDiv.onmouseover=function(){
    spinning=false;
    }
  objDiv.onmouseout=function(){
    spinning=true;
    }
  setTimeout('document.getElementById("'+objDiv.id+'").rotate()',100);


  }
