/**
 * --------------------------------------------------------------------
 * jQuery-Plugin clwbgimage - Scaling Fullscreen Backgrounds and Slideshow using jQuery
 * Version: 1.0, 29.08.2009
 *
 * by Andreas Eberhard, andreas.eberhard@gmail.com
 *                      http://dev.andreaseberhard.de/projects/clwbgimage/
 *
 * Copyright (c) 2009 Andreas Eberhard
 * licensed under a Creative Commons Attribution 3.0
 *
 *  Inspired by 
 *	  Supersized - Fullscreen Slideshow jQuery Plugin
 *    http://buildinternet.com/project/supersized/
 *	  By Sam Dunn (www.buildinternet.com // www.onemightyroar.com)
 * --------------------------------------------------------------------
 * License:
 * http://creativecommons.org/licenses/by/3.0/
 * http://creativecommons.org/licenses/by/3.0/deed.de
 *
 * You are free:
 *       * to Share - to copy, distribute and transmit the work
 *       * to Remix - to adapt the work
 *
 * Under the following conditions:
 *       * Attribution. You must attribute the work in the manner specified
 *         by the author or licensor (but not in any way that suggests that
 *         they endorse you or your use of the work).
 * --------------------------------------------------------------------
 * Changelog:
 *    29.08.2009 initial Version 1.0
 * --------------------------------------------------------------------
 */
(function($){jQuery.fn.clwbgimage=function(loadingoptions){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options,loadingoptions);$.clwbg_inAnimation=false;$.clwbg_slideshowActive=false;$.clwbg_imgIndex=1;$.clwbg_imgActual=1;$.clwbg_imgLast=-1;$.clwbg_imgSlide=0;$.clwbg_interval=0;$.clwbg_preload=0;$.clwbg_direction=0;$.clwbg_max_randomtrans=7;$.clwbg_lasttrans=-1;$.clwbg_isIE6=false;$.clwbg_firstLoaded=false;$.clwbg_saveId=$(this).attr('id');if($('#'+options.id).length===0){$('body').prepend('<div id="'+options.id+'" style="display:none;"></div>');}else{$('body').prepend($('#'+options.id));}$('#'+options.id).css('display','none').css('overflow','hidden').css('z-index',options.z_index);if(options.inlineMode===0){$('#'+options.id).css('position','fixed').css('width','100%').css('height','100%').css('top',0).css('left',0);}if(options.reload){$('#'+options.id+' img').remove();}$('#'+options.id+' img').hide().css('position','absolute');$('#'+options.id).children('img').each(function(){$(this).attr('rel',$.clwbg_imgIndex++);if(!options.showtitle){$(this).attr('title','');}});$(this).children('a').each(function(){$(this).attr('rel',$.clwbg_imgIndex++).click(function(){$(this).clwbgShowImage();return false;}).addClass('preload');});$.clwbg_imgIndex--;$(window).bind('load',function(){$(this).clwbgLoad();});$(window).bind('resize',function(){$(this).clwbgResize();});$.clwbg_isIE6=/msie|MSIE 6/.test(navigator.userAgent);if($.clwbg_isIE6&&(options.inlineMode===0)){$('#'+options.id).css('position','absolute').width($(window).width()).height($(window).height());$(window).bind('scroll',function(){$(this).clwbgScrollIE6();});}if(options.reload){$(this).clwbgLoad();}return this;};jQuery.fn.clwbgScrollIE6=function(){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);$('#'+options.id).css('top',document.documentElement.scrollTop+'px');};jQuery.fn.clwbgLoad=function(){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);if(($('#'+options.id).children('img').length>0)||($('#'+$.clwbg_saveId).children('a').length>0)){$('#'+options.id).show();}if((typeof options.showimage!='undefined')&&(options.showimage>=0)){$.clwbg_imgActual=options.showimage;}if(options.randomimage===1){$.clwbg_imgActual=(1+parseInt(Math.random()*($.clwbg_imgIndex-1+1),10));}$(this).clwbgShowImage($.clwbg_imgActual);};jQuery.fn.clwbgimagePreload=function(){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);clearInterval($.clwbg_preload);if(!$.clwbg_firstLoaded&&($('#'+$.clwbg_saveId).children('a').length>0)){$.clwbg_preload=setInterval("$(this).clwbgimagePreload()",111);return;}$('#'+$.clwbg_saveId).children('a.preload:first').each(function(){var imgrel=$(this).attr('rel');var imgtitle=$(this).attr('title');var img=new Image();$(img).load(function(){$(this).css('position','absolute').hide();if($('#'+options.id).children('img'+"[rel='"+imgrel+"']").length===0){$(this).attr('rel',imgrel);if(options.showtitle===1){$(this).attr('title',imgtitle);}$('#'+options.id).prepend(this);}img.onload=function(){};}).error(function(){img.onerror=function(){};}).attr('src',$(this).attr('href'));$.clwbg_preload=setInterval("$(this).clwbgimagePreload()",111);}).removeClass('preload');};jQuery.fn.startSlideShow=function(){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);$.clwbg_imgSlide=$.clwbg_imgActual;if($.clwbg_interval!==0){clearInterval($.clwbg_interval);}$.clwbg_interval=setInterval("$(this).nextSlide()",options.slide_interval);$.clwbg_slideshowActive=true;return false;};jQuery.fn.stopSlideShow=function(){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);clearInterval($.clwbg_interval);$.clwbg_slideshowActive=false;return false;};jQuery.fn.nextSlide=function(){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);if($.clwbg_inAnimation)return false;if($.clwbg_slideshowActive){clearInterval($.clwbg_preload);}$.clwbg_direction=0;$.clwbg_imgSlide++;if($.clwbg_imgSlide>$.clwbg_imgIndex){$.clwbg_imgSlide=1;}if(options.randomimage===1){$.clwbg_imgSlide=(1+parseInt(Math.random()*($.clwbg_imgIndex-1+1),10));while($.clwbg_imgSlide===$.clwbg_imgLast){$.clwbg_imgSlide=(1+parseInt(Math.random()*($.clwbg_imgIndex-1+1),10));}}$.clwbg_imgActual=$.clwbg_imgSlide;return $(this).clwbgShowImage($.clwbg_imgActual);};jQuery.fn.prevSlide=function(){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);if($.clwbg_inAnimation)return false;$.clwbg_direction=1;$.clwbg_imgSlide--;if($.clwbg_imgSlide<1){$.clwbg_imgSlide=$.clwbg_imgIndex;}if(options.randomimage===1){$.clwbg_imgSlide=(1+parseInt(Math.random()*($.clwbg_imgIndex-1+1),10));while($.clwbg_imgSlide===$.clwbg_imgLast){$.clwbg_imgSlide=(1+parseInt(Math.random()*($.clwbg_imgIndex-1+1),10));}}$.clwbg_imgActual=$.clwbg_imgSlide;return $(this).clwbgShowImage($.clwbg_imgActual);};jQuery.fn.clwbgResize=function(){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);var thisimg=$('#'+options.id+' img.activeslide');var dimensions=$(this).clwbgCalcSize($(thisimg).width(),$(thisimg).height());var newwidth=dimensions[0];var newheight=dimensions[1];var newleft=dimensions[2];var newtop=dimensions[3];$(thisimg).css('width',newwidth+'px');$(thisimg).css('height',newheight+'px');if($.clwbg_isIE6&&(options.inlineMode===0)){$('#'+options.id).width(newwidth).height(newheight);$(thisimg).width(newwidth);$(thisimg).height(newheight);}$(thisimg).css('left',newleft+'px');if(options.vertical_center===1){$(thisimg).css('top',newtop+'px');}else{$(thisimg).css('top','0px');}};jQuery.fn.clwbgCalcSize=function(imgw,imgh){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);var browserwidth=$(window).width();var browserheight=$(window).height();if(options.inlineMode===1){browserwidth=$('#'+options.id).width();browserheight=$('#'+options.id).height();}var ratio=imgh/imgw;var newheight=0;var newwidth=0;if((browserheight/browserwidth)>ratio){newheight=browserheight;newwidth=Math.round(browserheight/ratio);}else{newheight=Math.round(browserwidth*ratio);newwidth=browserwidth;}var newleft=Math.round((browserwidth-newwidth)/2);var newtop=Math.round((browserheight-newheight)/2);var rcarr=[newwidth,newheight,newleft,newtop];return rcarr;};jQuery.fn.clwbgShowImage=function(img){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);$.clwbg_imgActual=$(this).attr('rel');if(typeof img!=='undefined'){$.clwbg_imgActual=img;}if($('#'+options.id+' img.activeslide').attr('rel')===$.clwbg_imgActual){return false;}if($.clwbg_inAnimation){return false;}else{$.clwbg_inAnimation=true;}var imgsrc='';var imgtitle='';if($('#'+options.id).children('img'+"[rel='"+$.clwbg_imgActual+"']").length===0){imgsrc=$('#'+$.clwbg_saveId+' a'+"[rel='"+$.clwbg_imgActual+"']").attr('href');imgtitle=$('#'+$.clwbg_saveId+' a'+"[rel='"+$.clwbg_imgActual+"']").attr('title');}else{imgsrc=$('#'+options.id).children('img'+"[rel='"+$.clwbg_imgActual+"']").attr('src');}if((typeof options.onHide==='function')&&(options.onHide!==null)&&($.clwbg_imgLast>=0)){options.onHide($.clwbg_imgLast);}$('#'+options.id+' img.activeslide').clwbgLoadImage(imgsrc,imgtitle);$('#'+$.clwbg_saveId+' a').removeClass('activeslide');$('#'+$.clwbg_saveId).children('a'+"[rel='"+$.clwbg_imgActual+"']").addClass('activeslide');$.clwbg_imgSlide=$.clwbg_imgActual;$.clwbg_imgLast=$.clwbg_imgActual;return false;};jQuery.fn.clwbgLoadImage=function(imgsrc,imgtitle){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);if($('#'+options.id).children('img'+"[rel='"+$.clwbg_imgActual+"']").length===0){var img=new Image();$(img).load(function(){$(this).css('position','absolute').hide();if($('#'+options.id).children('img'+"[rel='"+$.clwbg_imgActual+"']").length===0){$(this).attr('rel',$.clwbg_imgActual);if(options.showtitle===1){$(this).attr('title',imgtitle);}$('#'+options.id).prepend(this);}var thisimg=$('#'+options.id).children('img'+"[rel='"+$.clwbg_imgActual+"']");var dimensions=$(this).clwbgCalcSize(img.width,img.height);$(this).clwbgTransition(thisimg,dimensions);if(!$.clwbg_firstLoaded){if(options.slideshow===1){$(this).startSlideShow();}if((options.preload===1)&&($('#'+$.clwbg_saveId).children('a').length>0)){$.clwbg_preload=setInterval("$(this).clwbgimagePreload()",250);}}$.clwbg_firstLoaded=true;img.onload=function(){};}).error(function(){$.clwbg_inAnimation=false;img.onerror=function(){};}).attr('src',imgsrc);}else{var thisimg=$('#'+options.id).children('img'+"[rel='"+$.clwbg_imgActual+"']");var dimensions=$(this).clwbgCalcSize($(thisimg).width(),$(thisimg).height());$(this).clwbgTransition(thisimg,dimensions);if(!$.clwbg_firstLoaded){if(options.slideshow===1){$(this).startSlideShow();}if((options.preload===1)&&($('#'+$.clwbg_saveId).children('a').length>0)){$.clwbg_preload=setInterval("$(this).clwbgimagePreload()",250);}$.clwbg_firstLoaded=true;}}};jQuery.fn.clwbgTransition=function(thisimg,dimensions){var options=$.extend($.fn.clwbgimage.defaults,$.fn.clwbgimage.options);var newwidth=dimensions[0];var newheight=dimensions[1];var newleft=dimensions[2];var newtop=dimensions[3];$(thisimg).css('width',newwidth+'px').css('height',newheight+'px').css('left',newleft+'px');if((typeof options.onClick==='function')&&(options.onClick!==null)){$(thisimg).unbind('click').click(function(){options.onClick($.clwbg_imgActual);});}if((typeof options.onMouseenter==='function')&&(options.onMouseenter!==null)){$(thisimg).unbind('mouseenter').mouseenter(function(){options.onMouseenter($.clwbg_imgActual);});}if((typeof options.onMouseleave==='function')&&(options.onMouseleave!==null)){$(thisimg).unbind('mouseleave').mouseleave(function(){options.onMouseleave($.clwbg_imgActual);});}if((typeof options.onMousemove==='function')&&(options.onMousemove!==null)){$(thisimg).unbind('mousemove').mousemove(function(e){options.onMousemove($.clwbg_imgActual,e);});}if(options.randomtransition===1){var randomtrans=(0+parseInt(Math.random()*($.clwbg_max_randomtrans-0+1),10));while(randomtrans===$.clwbg_lasttrans){randomtrans=(0+parseInt(Math.random()*($.clwbg_max_randomtrans-0+1),10));}options.transition=randomtrans;}if(options.vertical_center===1){$(thisimg).css('top',newtop+'px');}else{$(thisimg).css('top','0px');}var akt_transitionout=options.transitionout;if((options.transition===6)||(options.transition===7)){akt_transitionout=0;}if(akt_transitionout===1){$('#'+options.id+' img.activeslide').removeClass('activeslide').addClass('lastslide').css('z-index',0);}else{$('#'+options.id+' img.activeslide').removeClass('activeslide').addClass('lastslideno').css('z-index',0);}$(thisimg).css('z-index',1);options.transition=parseInt(options.transition,10);$.clwbg_lasttrans=options.transition;var theEffect='';var theDir='';if(options.transition===0){$(thisimg).show(1,function(){if((typeof options.onShow==='function')&&(options.onShow!==null))options.onShow($.clwbg_imgActual);$.clwbg_inAnimation=false;if($.clwbg_slideshowActive){$('#'+options.id).startSlideShow();}}).addClass('activeslide');}else if(options.transition===1){$(thisimg).fadeIn(options.speed,function(){if((typeof options.onShow==='function')&&(options.onShow!==null))options.onShow($.clwbg_imgActual);$('#'+options.id+' img.lastslideno').hide(1,null).removeClass('lastslideno');$.clwbg_inAnimation=false;if($.clwbg_slideshowActive){$('#'+options.id).startSlideShow();}}).addClass('activeslide');}else{if(options.transition===2){theEffect='slide';theDir='up';}if(options.transition===3){theEffect='slide';theDir='right';}if(options.transition===4){theEffect='slide';theDir='down';}if(options.transition===5){theEffect='slide';theDir='left';}if(options.transition===6){theEffect='blind';theDir='horizontal';}if(options.transition===7){theEffect='blind';theDir='vertical';}if(options.transition===90){theEffect='slide';theDir='left';if($.clwbg_direction===1){theDir='right';}}if(options.transition===91){theEffect='slide';theDir='down';if($.clwbg_direction===1){theDir='up';}}$(thisimg).show(theEffect,{direction:theDir},options.speed,function(){if((typeof options.onShow==='function')&&(options.onShow!==null))options.onShow($.clwbg_imgActual);$('#'+options.id+' img.lastslideno').hide(1,null).removeClass('lastslideno');$.clwbg_inAnimation=false;if($.clwbg_slideshowActive){$('#'+options.id).startSlideShow();}}).addClass('activeslide');}if(akt_transitionout===1){var outspeed=options.speed;if(options.speed=='slow'){outspeed=600+200;}else if(options.speed=='normal'){outspeed=400+200;}else if(options.speed=='fast'){outspeed=400+200;}else{outspeed=options.speed+200;}if(options.transition===0){$('#'+options.id+' img.lastslide').hide(1,null).removeClass('lastslide');}else if(options.transition==1){$('#'+options.id+' img.lastslide').fadeOut(outspeed).removeClass('lastslide');}else{if(options.transition===2){theEffect='slide';theDir='down';}if(options.transition===3){theEffect='slide';theDir='left';}if(options.transition===4){theEffect='slide';theDir='up';}if(options.transition===5){theEffect='slide';theDir='right';}if(options.transition===6){theEffect='';theDir='';}if(options.transition===7){theEffect='';theDir='';}if(options.transition===90){theEffect='slide';theDir='right';if($.clwbg_direction===1){theDir='left';}}if(options.transition===91){theEffect='slide';theDir='up';if($.clwbg_direction===1){theDir='down';}}$('#'+options.id+' img.lastslide').hide(theEffect,{direction:theDir},outspeed).removeClass('lastslide');}}else{$('#'+options.id+' img.lastslide').hide(1,null).removeClass('lastslide');}};jQuery.fn.clwbgimage.defaults={id:'clwbgimage',z_index:0,inlineMode:0,showimage:1,vertical_center:1,transition:1,transitionout:1,randomtransition:0,showtitle:0,slideshow:0,slide_interval:5000,randomimage:0,speed:'slow',preload:1,onShow:null,onClick:null,onHide:null,onMouseenter:null,onMouseleave:null,onMousemove:null};})(jQuery);