gallery=(function(){var MIN_HEIGHT=100;var MIN_WIDTH=100;var PRELOAD_OFFSET=2;var pics=null;var pos=null;var url=null;var pic=null;var canvas=null;var loaded=[];var initPic=function(src,width,height){if(!pic){pic=$('#curr_pic');}
pic.attr('src',src);pic.data('width',width||pic.width());pic.data('height',height||pic.height());};var initCanvas=function(){if(!canvas){canvas=$('#main_pic_cnt');}
canvas.data('width',$(window).width()-(canvas.offset().left*2));canvas.data('height',($.browser.opera?window.innerHeight:$(window).height())-(pics.length>16?270:220));};var scale=function(){initCanvas();var ratio=Math.min(canvas.data('width')/pic.data('width'),canvas.data('height')/pic.data('height'));var width=parseInt(ratio*pic.data('width'));var height=parseInt(ratio*pic.data('height'));if(width>MIN_WIDTH&&height>MIN_HEIGHT){if(width>pic.data('width')){width=pic.data('width');}
if(height>pic.data('height')){height=pic.data('height');}
pic.css({width:width+'px',height:height+'px'});}};var loadNext=function(){load((pos==(pics.length-1))?0:(pos+1));};var loadPrevious=function(){load((pos==0)?(pics.length-1):(pos-1));};var load=function(id){var newImg=new Image();newImg.onload=function(){$('a#next').hide();pic.fadeOut('slow',function(){show(newImg,id);});if(!arrContains(loaded,pics[id])){loaded.push(pics[id]);}};newImg.src=url+pics[id];};var show=function(newImg,id){pic.css({width:'',height:''});initPic(newImg.src,newImg.width,newImg.height);scale();pic.fadeIn('slow');pos=id;$('img.thumb.highlight').removeClass('highlight');$('img.thumb-'+(id+1)).addClass('highlight');$('a#next').show();preload();};var bindEvents=function(){$(window).bind('resize',function(){scale();});$('#next').click(function(){loadNext();return false;});$('#previous').click(function(){loadPrevious();return false;});$('a.thumb').each(function(i){$(this).click(function(){load(i);return false;});});$('img.thumb').each(function(i){$(this).mouseover(function(){$(this).addClass('over');});$(this).mouseout(function(){$(this).removeClass('over');});});};var toggleAll=function(){$('#main_pic').toggle();$('#thumbnails').toggle();$('#content').toggle();};var preload=function(){var toLoad=[];for(var i=(pos+1);i<pics.length;i++){if(!arrContains(loaded,pics[i])){toLoad.push(pics[i]);if(toLoad.length==PRELOAD_OFFSET){break;}}}
if(pos>=(PRELOAD_OFFSET*2)){for(var i=(pos-1);i>=(PRELOAD_OFFSET+1);i--){if(!arrContains(loaded,pics[i])){toLoad.push(pics[i]);if(toLoad.length==(PRELOAD_OFFSET*2)){break;}}}}
if(toLoad.length>0){$(document.createElement('img')).bind('load',function(){if(toLoad[0]){loaded.push(toLoad[0]);this.src=url+toLoad.shift();}}).trigger('load');}};var arrContains=function(arr,needle){for(var i=0;i<arr.length;i++){if(arr[i]==needle){return true;}}
return false;};var pub={init:function(allPics,currPos,imagesUrl){pics=allPics;pos=currPos;url=imagesUrl;toggleAll();var img=new Image();img.onload=function(){initPic(img.src,img.width,img.height);scale();toggleAll();bindEvents();loaded.push(pics[pos]);preload();};img.src=url+pics[pos];}};return pub;})();
