var conf_reflection_p=0.3;var conf_focus=4;var conf_slider_width=14;var conf_images_cursor="pointer";var conf_slider_cursor="default";var conf_imageflow="gallery";var conf_loading="loading";var conf_images="images";var conf_captions="captions";var conf_scrollbar="scrollbar";var conf_slider="slider";var caption_id=0;var new_caption_id=0;var current=0;var target=0;var mem_target=0;var timer=0;var array_images=new Array();var new_slider_pos=0;var dragging=false;var dragobject=null;var dragx=0;var posx=0;var new_posx=0;var xstep=150;function step(){switch(target<current-1||target>current+1){case true:moveTo(current+(target-current)/3);window.setTimeout(step,50);timer=1;break;default:timer=0;break}}function glideTo(x,new_caption_id){target=x;mem_target=x;if(timer==0){window.setTimeout(step,50);timer=1}caption_id=new_caption_id;caption=image_array[caption_id].getAttribute("alt");if(caption==""){caption="&nbsp;"}$(caption_div).fadeOut("normal",function(){caption_div.innerHTML=caption;$(caption_div).fadeIn()});if(dragging==false){new_slider_pos=(scrollbar_width*(-(x*100/((max-1)*xstep)))/100)-new_posx;slider_div.style.marginLeft=(new_slider_pos-conf_slider_width)+"px"}}function moveTo(x){current=x;var zIndex=max;for(var index=0;index<max;index++){var image=image_array[index];var current_image=index*-xstep;if((current_image+max_conf_focus)<mem_target||(current_image-max_conf_focus)>mem_target){image.style.visibility="hidden";image.style.display="none"}else{var z=Math.sqrt(10000+x*x)+100;var xs=x/z*size+size;image.style.display="block";var new_img_h=(image.h/image.w*image.pc)/z*size;switch(new_img_h>max_height){case false:var new_img_w=image.pc/z*size;break;default:new_img_h=max_height;var new_img_w=image.w*new_img_h/image.h;break}var new_img_top=(images_width*0.34-new_img_h)+images_top+((new_img_h/(conf_reflection_p+1))*conf_reflection_p);image.style.left=xs-(image.pc/2)/z*size+images_left+"px";image.style.height=new_img_h+"px";image.style.width=new_img_w+"px";image.style.top=new_img_top+"px";image.style.visibility="visible";switch(x<0){case true:zIndex++;break;default:zIndex=zIndex-1;break}switch(image.i==caption_id){case false:image.onclick=function(){glideTo(this.x_pos,this.i)};break;default:zIndex=zIndex+1;if(image.url!==null&&image.url!==""){image.onclick=function(){document.location=this.url}}break}image.style.zIndex=zIndex}x+=xstep}}function refresh(onload){imageflow_div=document.getElementById(conf_imageflow);img_div=document.getElementById(conf_images);scrollbar_div=document.getElementById(conf_scrollbar);slider_div=document.getElementById(conf_slider);caption_div=document.getElementById(conf_captions);images_width=img_div.offsetWidth;images_top=imageflow_div.offsetTop;images_left=imageflow_div.offsetLeft;max_conf_focus=conf_focus*xstep;size=images_width*0.5;scrollbar_width=images_width*0.6;conf_slider_width=conf_slider_width*0.5;max_height=images_width*0.51;imageflow_div.style.height=max_height+"px";img_div.style.height=images_width*0.338+"px";caption_div.style.width=images_width+"px";caption_div.style.marginTop=images_width*0.03+"px";scrollbar_div.style.marginTop=images_width*0.02+"px";scrollbar_div.style.marginLeft=images_width*0.2+"px";scrollbar_div.style.width=scrollbar_width+"px";slider_div.onmousedown=function(){dragstart(this)};slider_div.style.cursor=conf_slider_cursor;image_array=img_div.getElementsByTagName("img");max=image_array.length;var i=0;for(var index=0;index<max;index++){var image=image_array[index];array_images[i]=index;image.onclick=function(){glideTo(this.x_pos,this.i)};image.x_pos=(-i*xstep);image.i=i;if(onload==true){image.w=image.width;image.h=image.height}switch((image.w+1)>(image.h/(conf_reflection_p+1))){case true:image.pc=118;break;default:image.pc=100;break}image.url=image.getAttribute("longdesc");if(image.url!==null&&image.url!==""){image.ondblclick=function(){document.location=this.url}}image.style.cursor=conf_images_cursor;i++}max=array_images.length;moveTo(current);glideTo(current,caption_id)}function show(id){var element=document.getElementById(id);element.style.visibility="visible"}function hide(id){var element=document.getElementById(id);element.style.visibility="hidden";element.style.display="none"}window.onload=function(){if(document.getElementById(conf_imageflow)){hide(conf_loading);refresh(true);show(conf_images);initMouseWheel();initMouseDrag();glideTo(-300,2)}};window.onresize=function(){if(document.getElementById(conf_imageflow)){refresh()}};function handle(delta){var change=false;switch(delta>0){case true:if(caption_id>=1){target=target+xstep;new_caption_id=caption_id-1;change=true}break;default:if(caption_id<(max-1)){target=target-xstep;new_caption_id=caption_id+1;change=true}break}if(change==true){glideTo(target,new_caption_id)}}function wheel(event){var delta=0;if(!event){event=window.event}if(event.wheelDelta){delta=event.wheelDelta/120}else{if(event.detail){delta=-event.detail/3}}if(delta){handle(delta)}if(event.preventDefault){event.preventDefault()}event.returnValue=false}function initMouseWheel(){if(window.addEventListener){imageflow_div.addEventListener("DOMMouseScroll",wheel,false)}imageflow_div.onmousewheel=wheel}function dragstart(element){dragobject=element;dragx=posx-dragobject.offsetLeft+new_slider_pos}function dragstop(){dragobject=null;dragging=false}function drag(e){posx=document.all?window.event.clientX:e.pageX;if(dragobject!=null){dragging=true;new_posx=(posx-dragx)+conf_slider_width;if(new_posx<(-new_slider_pos)){new_posx=-new_slider_pos}if(new_posx>(scrollbar_width-new_slider_pos)){new_posx=scrollbar_width-new_slider_pos}var slider_pos=(new_posx+new_slider_pos);var step_width=slider_pos/((scrollbar_width)/(max-1));var image_number=Math.round(step_width);var new_target=(image_number)*-xstep;var new_caption_id=image_number;dragobject.style.left=new_posx+"px";glideTo(new_target,new_caption_id)}}function initMouseDrag(){document.onmousemove=drag;document.onmouseup=dragstop}function getKeyCode(event){event=event||window.event;return event.keyCode}document.onkeydown=function(event){var charCode=getKeyCode(event);switch(charCode){case 39:handle(-1);break;case 37:handle(1);break}};
