function carousel(params) { if (! (params.width > 0 && isFinite(params.width))) { params.width = 100; }
    if (! (params.height > 0 && isFinite(params.height))) { params.height = 100; }
    if (! (params.sides > 2 && isFinite(params.sides))) { params.sides = 4; }
    if (! (params.steps > 0 && params.steps < 100 && isFinite(params.steps))) { params.steps = 20; }
    if (! (params.speed > 0 && isFinite(params.speed))) { params.speed = 8; }
    if (! (params.image_border_width >= 0 && isFinite(params.image_border_width))) {params.image_border_width = 0; }
    if (isFinite(params.id)|| !params.id) { params.id = 'bad_id_given_'+Math.random(); }
  
  //document.write(" <div style='position:relative;overflow:hidden;' id='"+params.id.replace(/[^a-zA-Z0-9]+/g,'_')+"'&gt; &lt; /div> ");
  //var cdiv=document.getElementById(params.id.replace(/[^a-zA-Z0-9]+/g,'_'))
  var cdiv = document.createElement('div');
  cdiv.id = params.id.replace(/[^a-zA-Z0-9]+/g, '_');
  cdiv.style.position = "relative";
  cdiv.style.overflow = "hidden";
  
  cdiv.style.width = params.width + 'px';
  cdiv.style.height = params.height + 'px';
  cdiv.style.border = params.border;
  cdiv.style.position = 'relative';
  cdiv.style.overflow = 'hidden';
  
  cdiv.title = params.id;

  var container = document.getElementById("div_container");
  container.appendChild(cdiv);

  var img_bottom = document.createElement('img');
  img_bottom.style.position = 'relative';
  img_bottom.style.width = '250px';
  img_bottom.style.height = '26px';
  img_bottom.style.top = '8px';
  img_bottom.title = 'weddings, engagements, portraits, high school seniors, children and family portraits';
  img_bottom.src = 'websitegraphics/carouselpic2.png';
	container.appendChild(img_bottom);
  
  
  
  var counter = 0,interval=Math.floor(60000/params.sides/params.steps/params.speed)-5;
  var rotating_right = false;
  var rotating_left = false;
  interval = isNaN(interval)?200:interval;
  var img_position = [],images = [],img_dimension=[];
  var img_index = params.images.length+1,img_index_cap = 2*params.images.length;
  var faces = Math.ceil(params.sides/2), dimension, direction, targ, attr, faraway;

  function init(){if(params.direction=="left" || params.direction=="right"){direction=params.direction;
      dimension="width";}
    else if(params.direction=="top" || params.direction=="bottom"){
      direction=params.direction;
      dimension="height";}
    else {direction="left";
      dimension="width";}      
    faraway=(direction=="left"||direction=="top")?'-20000px':'20000px';
    cdiv.style[dimension]=params[dimension]/(params.size_mode=='image'?Math.sin(Math.PI/params.sides):1)+'px';
    //var img=new Image();
    var img=document.createElement('img');
    img.style.position='absolute';
    img.style[direction]=faraway;
    img.style.width=params.width-2*params.image_border_width+'px';
    img.style.height=params.height-2*params.image_border_width+'px';
    img.style.border=(params.image_border_width||0)+'px solid '+params.image_border_color;
  
    for(var i=0;i<params.images.length;i++){images[i]=img.cloneNode(true);
      images[i].src=params.images[i];
      if(params.links&&params.links[i]&&params.links[i]!=''){targ=params.lnk_targets&&params.lnk_targets[i]||params.lnk_base||'new';
        if(targ=="_blank"){attr=(params.lnk_attr&&params.lnk_attr[i])?",'"+params.lnk_attr[i]+"'":"";
          images[i].onclick=new Function("window.open('"+params.links[i]+"','"+targ+"'"+attr+")");}
        else if(targ.substr(0,1)=="_"){images[i].onclick=new Function(targ.substr(1)+".location='"+params.links[i]+"'");}
        else{attr=(params.lnk_attr&&params.lnk_attr[i])?",'"+params.lnk_attr[i]+"'":"";
          images[i].onclick=new Function("var t='"+targ+"';if(window[t]){try{window[t].close()}catch(z){}}window[t]=window.open('"+params.links[i]+"',t"+attr+");window[t].focus()");}
        images[i].style.cursor=document.all?'hand':'pointer';}

      if(params.titles&&params.titles[i]&&params.titles[i]!='')
        {images[i].title=params.titles[i];}
      if(document.all)
        {images[i].alt=images[i].title;}
      images[i+params.images.length]=images[i];
      if(params.images.length==faces)
        {images[i+2*params.images.length]=images[i];}
      cdiv.appendChild(images[i]);}
  
    var face_size=params.size_mode=='image'?params[dimension]:params[dimension]*Math.sin(Math.PI/params.sides);
    var face_offset=params[dimension]*Math.cos(Math.PI/params.sides)/(params.size_mode=='image'?Math.sin(Math.PI/params.sides):1)/2-0.5;
    var pi_piece=2*Math.PI/params.steps/params.sides;
    for(i=0;i<=params.steps*faces;i++){img_dimension[i]=face_size*Math.sin(pi_piece*i);
      img_position[i]=(i<params.steps*params.sides/2)?Math.floor(params[dimension]/2/(params.size_mode=='image'?Math.sin(Math.PI/params.sides):1)-face_offset*Math.cos(pi_piece*i)-img_dimension[i]/2)+'px':faraway;
      img_dimension[i]=img_dimension[i]-2*params.image_border_width>0?Math.ceil(img_dimension[i])-2*params.image_border_width+'px':'0px';}
	
		var divleft=document.createElement('div');
	  divleft.style.position='relative';
	  divleft.style.overflow='hidden';
    divleft.style.top='-90px';
    divleft.style.left='-180px';
    divleft.style.width='30px';
    divleft.style.height='25px';
    divleft.style.cursor='pointer';
    divleft.title='Move to the left';
    divleft.style.backgroundColor="transparent";
    divleft.style.backgroundImage="url('websitegraphics/walkleftoff.png')";
  	divleft.onmouseover=function(){rotating_left=true;};
  	divleft.onmouseout=function(){rotating_left=false;}; 
    container.appendChild(divleft);
    
		var divright=document.createElement('div');
	  divright.style.position='relative';
	  divright.style.overflow='hidden';
    divright.style.top='-114px';
    divright.style.left='180px';
    divright.style.width='30px';
    divright.style.height='25px';
    divright.style.cursor='pointer';
    divright.title='Move to the right';
    divright.style.backgroundColor="transparent";
    divright.style.backgroundImage="url('websitegraphics/walkrightoff.png')";
  	divright.onmouseover=function(){rotating_right=true;};
  	divright.onmouseout=function(){rotating_right=false;};
    container.appendChild(divright);}
  init();

  cdiv.rotate= function(construct){setTimeout('document.getElementById("'+cdiv.id+'").rotate(false)',interval);
    if ((rotating_right===false)&&(rotating_left===false)&&(construct===false)) {return;}
  	if (construct){if (direction=="right") {counter=counter+1;} else {counter=counter-1;}}
  	if (rotating_right){if (direction=="left") {counter=counter+1;} else {counter=counter-1;}}
  	if (rotating_left){if (direction=="right") {counter=counter+1;} else {counter=counter-1;}}
     if (counter<0){counter=params.steps-1;
      if(--img_index<params.images.length)
        {img_index=img_index_cap-1;}}
    
    if(counter>=params.steps){counter=0;
      if(++img_index>=img_index_cap)
        {img_index=params.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*params.steps];
      images[img_index-i].style[dimension]=img_dimension[counter+i*params.steps];
      
      if (img_dimension[counter+i*params.steps]=="0px") {images[img_index-i].style.border=0;} else {images[img_index-i].style.border=(params.image_border_width||0)+'px solid '+params.image_border_color;}}};
    
  setTimeout('document.getElementById("'+cdiv.id+'").rotate(true)',100);}