/*
Awkward Showcase - jQuery plugin
http://www.jquery.com
http://www.awkward.se/sandbox/awkward-showcase-a-jquery-plugin
http://demo.awkward.se/showcase
Version: 0.2.4 (Beta)
Copyright (C) 2010 Awkward (http://www.awkward.se)
Licensed under Attribution-ShareAlike 3.0 Unported
http://creativecommons.org/licenses/by-sa/3.0/
Markup example for jQuery("#showcase").awShowcase();
*/
(function(jQuery){jQuery.fn.awShowcase=function(options){var defaults={width:700,height:470,auto:false,interval:3000,continuous:false,loading:true,tooltip_width:200,tooltip_icon_width:32,tooltip_icon_height:32,tooltip_offsetx:18,tooltip_offsety:0,arrows:true,buttons:true,btn_numbers:false,keybord_keys:false,mousetrace:false,pauseonover:true,transition:'vslide',transition_speed:500,show_caption:'onload',thumbnails:false,thumbnails_position:'outside-last',thumbnails_direction:'vertical',thumbnails_slidex:0};options=jQuery.extend(defaults,options);var current_id=0;var previous_id=0;var break_loop=false;var pause_loop=false;var myInterval=null;var showcase=jQuery(this);var contentArray=[];var thumbnailArray=[];var content_count=0;showcase.children('div').each(function(){var object=jQuery(this);if(options.thumbnails){var thumb=object.find('.showcase-thumbnail');thumbnailArray.push(thumb);thumb.remove();}contentArray.push(object.html());object.remove();content_count++;});var content_wrapper=jQuery(document.createElement('div')).css('width',options.width).css('height',options.height).css('overflow','hidden').css('position','relative').addClass('showcase-content-wrapper').prependTo(showcase);function getContent(id){return jQuery(document.createElement('div')).attr('id','showcase-content-'+id).css('width',options.width+'px').css('height',options.height+'px').css('overflow','hidden').css('position','absolute').addClass('showcase-content').html(contentArray[id]);}function autoChange(){var nextID=parseInt(current_id)+1;if(nextID==content_count&&options.continuous){nextID=0;}else if(nextID==content_count&&!options.continuous){break_loop=true;clearInterval(myInterval);}if(!break_loop){changeContent(nextID,'next');}}function changeContent(id,direction){if(current_id!=id){var obj;var obj2;if(id>current_id&&direction!='previous'||direction=='next'){obj=jQuery(showcase).find('#showcase-content-'+parseInt(current_id));if(options.transition=='vslide'){displayAnchors(obj,true);displayCaption(obj,true);jQuery(obj).animate({left:-(options.width+100)},options.transition_speed+300,function(){obj.remove();});}else if(options.transition=='hslide'){displayAnchors(obj,true);displayCaption(obj,true);jQuery(obj).animate({top:-(options.height+100)},options.transition_speed+300,function(){obj.remove();});}else
{displayAnchors(obj,true);displayCaption(obj,true);jQuery(obj).fadeOut(options.transition_speed,function(){obj.remove();});}obj2=getContent(id);if(options.transition=='vslide'){obj2.css('left',options.width+'px');jQuery(obj2).animate({left:'0px'},options.transition_speed,function(){displayAnchors(obj2);displayCaption(obj2);});}else if(options.transition=='hslide'){obj2.css('top',options.height+'px');jQuery(obj2).animate({top:'0px'},options.transition_speed,function(){displayAnchors(obj2);displayCaption(obj2);});}else
{obj2.css('left','0px');obj2.css('display','none');jQuery(obj2).fadeIn(options.transition_speed,function(){displayAnchors(obj2);displayCaption(obj2);obj.remove();});}content_wrapper.append(obj2);}else if(idprevious_id&&direction!='previous'||direction=='next'){slideThumbnailWrapper('forward',true);}else if(current_id=firstVisible&¤t_id<=lastVisible){doTheSlide=false;}var distance;if((current_id-lastVisible)>options.thumbnails_slidex){distance=current_id-lastVisible;while(distance>options.thumbnails_slidex){distance-=options.thumbnails_slidex;multiplySlidePosition++;}}else if((firstVisible-current_id)>options.thumbnails_slidex){distance=firstVisible-current_id;while(distance>options.thumbnails_slidex){distance-=options.thumbnails_slidex;multiplySlidePosition++;}}else{multiplySlidePosition=1;}}if(direction=='forward'&&doTheSlide){if(options.thumbnails_direction=='vertical'&&options.height<(thumbnailStretch+thumbnailSlidePosition)){thumbnailSlidePosition-=thumbnailHeightOrWidth*(options.thumbnails_slidex*multiplySlidePosition);}else if(options.thumbnails_direction=='horizontal'&&options.width<(thumbnailStretch+thumbnailSlidePosition)){thumbnailSlidePosition-=thumbnailHeightOrWidth*(options.thumbnails_slidex*multiplySlidePosition);}else if(current_id===0){if(!backwardforward){thumbnailSlidePosition=0;}}if(options.thumbnails_direction=='horizontal'){thumb_wrapper.animate({left:thumbnailSlidePosition},300);}else{thumb_wrapper.animate({top:thumbnailSlidePosition},300);}}else if(doTheSlide){if(thumbnailSlidePosition<0){thumbnailSlidePosition+=thumbnailHeightOrWidth*(options.thumbnails_slidex*multiplySlidePosition);}else if(current_id==content_count-1){if(!backwardforward){thumbnailSlidePosition-=thumbnailHeightOrWidth*(options.thumbnails_slidex*multiplySlidePosition);}}else{thumbnailSlidePosition=0;}if(options.thumbnails_direction=='horizontal'){thumb_wrapper.animate({left:thumbnailSlidePosition},300);}else{thumb_wrapper.animate({top:thumbnailSlidePosition},300);}}}function displayCaption(container,fadeOut){var caption=container.find('.showcase-caption');if(!fadeOut){if(options.show_caption=='onload'){caption.fadeIn(300);}else if(options.show_caption=='onhover'){jQuery(container).mouseenter(function(){caption.fadeIn(300);});jQuery(container).mouseleave(function(){caption.stop(true,true).fadeOut(100);});}}else{caption.stop(true,true).fadeOut(300);}}function displayAnchors(container,fadeOut){container.children('a.showcase-tooltip').each(function(){if(!fadeOut){var coords=jQuery(this).attr('coords');coords=coords.split(',');jQuery(this).addClass('showcase-plus-anchor');jQuery(this).css('position','absolute');jQuery(this).css('display','none');jQuery(this).css('width',options.tooltip_icon_width);jQuery(this).css('height',options.tooltip_icon_height);jQuery(this).css('left',parseInt(coords[0])-(parseInt(options.tooltip_icon_width)/2));jQuery(this).css('top',parseInt(coords[1])-(parseInt(options.tooltip_icon_height)/2));var content=jQuery(this).html();jQuery(this).mouseenter(function(){animateTooltip(container,coords[0],coords[1],content);});jQuery(this).mouseleave(function(){animateTooltip(container,coords[0],coords[1],content);});jQuery(this).html('');jQuery(this).fadeIn(300);}else
{jQuery(this).stop(true,true).fadeOut(300);}});}var tooltip=null;function animateTooltip(container,x,y,content){if(tooltip===null){tooltip=jQuery(document.createElement('div')).addClass('showcase-tool-tip').css('display','none').css('position','absolute').css('max-width',options.tooltip_width).html(content);container.append(tooltip);var tooltip_paddingx=parseInt(tooltip.css('padding-right'))*2+parseInt(tooltip.css('border-right-width'))*2;var tooltip_paddingy=parseInt(tooltip.css('padding-bottom'))*2+parseInt(tooltip.css('border-bottom-width'))*2;lastx=parseInt(x)+tooltip.width()+tooltip_paddingx;lasty=parseInt(y)+tooltip.height()+tooltip_paddingy;if(lastx');thumb_restriction=jQuery('');thumb_wrapper=jQuery('');for(var i=thumbnailArray.length-1;i>=0;--i){var thumbnail=jQuery(thumbnailArray[i]).css({'overflow':'hidden'});thumbnail.attr('id','showcase-thumbnail-'+i);thumbnail.addClass((i===0)?'active':'');thumbnail.click(function(a,b){return function(){if(myInterval){pause_loop=true;clearInterval(myInterval);}changeContent(a,b);};}(i,''));thumb_wrapper.prepend(thumbnail);}if(options.thumbnails_position=='outside-first'||options.thumbnails_position=='outside-last'){if(options.thumbnails_direction!='horizontal'){content_wrapper.css('float','left');thumb_container.css('float','left');thumb_container.css('height',options.height);}else
{jQuery(thumb_wrapper).find('.showcase-thumbnail').css('float','left');}if(options.thumbnails_position=='outside-last'){showcase.append(thumb_container);if(options.thumbnails_direction!='horizontal'){showcase.append(jQuery('').addClass('clear'));}}else
{showcase.prepend(thumb_container);if(options.thumbnails_direction!='horizontal'){showcase.append(jQuery('').addClass('clear'));}}}else
{thumb_container.css({'position':'absolute','z-index':20});if(options.thumbnails_direction=='horizontal'){thumb_container.css({'left':0,'right':0});jQuery(thumb_wrapper).find('.showcase-thumbnail').css('float','left');jQuery(thumb_wrapper).append(jQuery('').addClass('clear'));if(options.thumbnails_position=='inside-first'){thumb_container.css('top',0);}else{thumb_container.css('bottom',0);}}else
{thumb_container.css({'top':0,'bottom':0});if(options.thumbnails_position=='inside-first'){thumb_container.css('left',0);}else{thumb_container.css('right',0);}}content_wrapper.prepend(thumb_container);}thumb_container.addClass('showcase-thumbnail-container');thumb_container.css('overflow','hidden');thumb_restriction.addClass('showcase-thumbnail-restriction');thumb_restriction.css({'overflow':'hidden','position':'relative'});if(options.thumbnails_direction=='horizontal'){thumb_restriction.css({'float':'left'});}thumb_wrapper.addClass('showcase-thumbnail-wrapper');if(options.thumbnails_direction=='horizontal'){thumb_wrapper.addClass('showcase-thumbnail-wrapper-horizontal');}else{thumb_wrapper.addClass('showcase-thumbnail-wrapper-vertical');}thumb_wrapper.css('position','relative');thumb_restriction.append(thumb_wrapper);thumb_container.append(thumb_restriction);var buttonBackward=jQuery('');if(options.thumbnails_direction!='horizontal'){buttonBackward.html('Up');}else
{buttonBackward.css({'float':'left'});buttonBackward.html('Left');}buttonBackward.click(function(){slideThumbnailWrapper('backward',false,true);});thumb_container.prepend(buttonBackward);var buttonForward=jQuery('');if(options.thumbnails_direction!='horizontal'){buttonForward.html('Down');}else
{buttonForward.css({'float':'left'});buttonForward.html('Right');}buttonForward.click(function(){slideThumbnailWrapper('forward',false,true);});thumb_container.append(buttonForward);var thumbnailVisibleStretch=0;if(options.thumbnails_direction!='horizontal'){thumbnailVisibleStretch=getElementHeight(thumb_wrapper,false);thumbnailVisibleStretch+=(getElementHeight(buttonBackward))+(getElementHeight(buttonForward));while(thumbnailVisibleStretchthumbnailArray.length){if(options.thumbnails_direction!='horizontal'){thumb_restriction.css('margin-top',getElementHeight(buttonBackward));}else
{thumb_restriction.css('margin-left',getElementWidth(buttonBackward));}buttonBackward.hide();buttonForward.hide();}if(options.thumbnails_direction!='horizontal'){var buttonsHeight=(getElementHeight(buttonBackward))+(getElementHeight(buttonForward));thumb_restriction.css('height',options.height-buttonsHeight);}else
{var buttonsWidth=(getElementWidth(buttonBackward))+(getElementWidth(buttonForward));thumb_restriction.css('width',options.width-buttonsWidth);}if(options.thumbnails_direction=='horizontal'){jQuery('.showcase-thumbnail').each(function(){thumbnailStretch+=getElementWidth(jQuery(this));});thumb_wrapper.css('width',thumbnailStretch);}else{jQuery('.showcase-thumbnail').each(function(){thumbnailStretch+=getElementHeight(jQuery(this));});}}if(options.thumbnails&&options.thumbnails_position.indexOf("outside")!=-1&&options.thumbnails_direction!='horizontal'){showcase.css('width',options.width+getElementWidth(thumb_wrapper,true,false));}else{showcase.css('width',options.width);}var first_content=getContent(0);content_wrapper.append(first_content);displayAnchors(first_content);displayCaption(first_content);if(options.show_caption=='show'){jQuery(first_content).find('.showcase-caption').show();}if(content_count>1&&options.auto){myInterval=window.setInterval(autoChange,options.interval);}if(options.auto&&options.pauseonover){showcase.mouseenter(function(){break_loop=true;clearInterval(myInterval);});showcase.mouseleave(function(){if(!pause_loop){break_loop=false;myInterval=window.setInterval(autoChange,options.interval);}});}if(options.arrows&&content_count>1){jQuery(document.createElement('div')).addClass('showcase-arrow-previous').prependTo(showcase).click(function(){if(myInterval){pause_loop=true;clearInterval(myInterval);}changeContent(content_count-1,'previous');});jQuery(document.createElement('div')).addClass('showcase-arrow-next').prependTo(showcase).click(function(){if(myInterval){pause_loop=true;clearInterval(myInterval);}changeContent(1,'next');});}if(options.buttons&&content_count>1){jQuery(document.createElement('div')).css('clear','both').addClass('showcase-button-wrapper').appendTo(showcase);var i=0;while(i