(function($){jQuery.fn.smoothDivScroll=function(options){var defaults={scrollingHotSpotLeft:"div.scrollingHotSpotLeft",scrollingHotSpotRight:"div.scrollingHotSpotRight",scrollWrapper:"div.scrollWrapper",scrollableArea:"div.scrollableArea",hiddenOnStart:false,ajaxContentURL:"",countOnlyClass:"",scrollingSpeed:25,mouseDownSpeedBooster:3,autoScroll:"",autoScrollDirection:"right",autoScrollSpeed:1,pauseAutoScroll:"",visibleHotSpots:"",hotSpotsVisibleTime:5,startAtElementId:""};options=$.extend(defaults,options);return this.each(function(){var $mom=$(this);if(options.ajaxContentURL.length!==0){$mom.scrollableAreaWidth=0;$mom.find(options.scrollableArea).load((options.ajaxContentURL),function(){$mom.find(options.scrollableArea).children((options.countOnlyClass)).each(function(){$mom.scrollableAreaWidth=$mom.scrollableAreaWidth+$(this).outerWidth(true)});$mom.find(options.scrollableArea).css("width",($mom.scrollableAreaWidth+"px"));if(options.hiddenOnStart){$mom.hide()}windowIsResized();setHotSpotHeightForIE()})}var scrollXpos;var booster;var motherElementOffset=$mom.offset().left;var hotSpotWidth=0;booster=1;var hasExtended=false;var doesscrollleft=false;var temp='';var half=0;$(window).one("load",function(){if(options.ajaxContentURL.length===0){$mom.scrollableAreaWidth=0;$mom.tempStartingPosition=0;$mom.find(options.scrollableArea).children((options.countOnlyClass)).each(function(){if((options.startAtElementId.length!==0)&&(($(this).attr("id"))==options.startAtElementId)){$mom.tempStartingPosition=$mom.scrollableAreaWidth}$mom.scrollableAreaWidth=$mom.scrollableAreaWidth+$(this).outerWidth(true)});$mom.find(options.scrollableArea).css("width",$mom.scrollableAreaWidth+"px");if(options.hiddenOnStart){$mom.hide()}}$mom.find(options.scrollWrapper).scrollLeft($mom.tempStartingPosition);if(options.autoScroll!==""){$mom.autoScrollInterval=setInterval(autoScroll,6)}if(options.autoScroll=="always"){}switch(options.visibleHotSpots){case"always":makeHotSpotBackgroundsVisible();break;case"onstart":makeHotSpotBackgroundsVisible();$mom.hideHotSpotBackgroundsInterval=setInterval(hideHotSpotBackgrounds,(options.hotSpotsVisibleTime*1000));break;default:break}});$mom.find(options.scrollingHotSpotRight,options.scrollingHotSpotLeft).one('mouseover',function(){if(options.autoScroll=="onstart"){clearInterval($mom.autoScrollInterval)}});$(window).bind("resize",function(){windowIsResized()});function windowIsResized(){if(!(options.hiddenOnStart)){$mom.scrollableAreaWidth=0;$mom.find(options.scrollableArea).children((options.countOnlyClass)).each(function(){$mom.scrollableAreaWidth=$mom.scrollableAreaWidth+$(this).outerWidth(true)});$mom.find(options.scrollableArea).css("width",$mom.scrollableAreaWidth+'px')}$mom.find(options.scrollWrapper).scrollLeft("0");var bodyWidth=$("body").innerWidth();if(options.autoScroll!=="always"){if($mom.scrollableAreaWidth<bodyWidth){hideLeftHotSpot();hideRightHotSpot()}else{showHideHotSpots()}}}function hideLeftHotSpot(){}function hideRightHotSpot(){$mom.find(options.scrollingHotSpotRight).hide()}function showLeftHotSpot(){$mom.find(options.scrollingHotSpotLeft).show();if(hotSpotWidth<=0){hotSpotWidth=$mom.find(options.scrollingHotSpotLeft).width()}}function showRightHotSpot(){$mom.find(options.scrollingHotSpotRight).show();if(hotSpotWidth<=0){hotSpotWidth=$mom.find(options.scrollingHotSpotRight).width()}}function setHotSpotHeightForIE(){jQuery.each(jQuery.browser,function(i,val){if(i=="msie"&&jQuery.browser.version.substr(0,1)=="6"){$mom.find(options.scrollingHotSpotLeft).css("height",($mom.find(options.scrollableArea).innerHeight()));$mom.find(options.scrollingHotSpotRight).css("height",($mom.find(options.scrollableArea).innerHeight()))}})}$mom.find(options.scrollingHotSpotRight).bind('mousemove',function(e){var x=e.pageX-(this.offsetLeft+motherElementOffset);scrollXpos=Math.round((x/hotSpotWidth)*options.scrollingSpeed);if(scrollXpos===Infinity){scrollXpos=0}});$mom.find(options.scrollingHotSpotRight).bind('mouseover',function(){if(options.autoScroll=="onstart"){clearInterval($mom.autoScrollInterval)}$mom.rightScrollInterval=setInterval(doScrollRight,6)});$mom.find(options.scrollingHotSpotRight).bind('mouseout',function(){clearInterval($mom.rightScrollInterval);scrollXpos=0});$mom.find(options.scrollingHotSpotRight).bind('mousedown',function(){booster=options.mouseDownSpeedBooster});$("*").bind('mouseup',function(){booster=1});var doScrollRight=function(){$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()+(1*booster));showHideHotSpots()};if(options.pauseAutoScroll=="mousedown"&&options.autoScroll=="always"){$mom.find(options.scrollWrapper).bind('mousedown',function(){clearInterval($mom.autoScrollInterval)});$mom.find(options.scrollWrapper).bind('mouseup',function(){$mom.autoScrollInterval=setInterval(autoScroll,6)})}else if(options.pauseAutoScroll=="mouseover"&&options.autoScroll=="always"){$mom.find(options.scrollWrapper).bind('mouseover',function(){clearInterval($mom.autoScrollInterval)});$mom.find(options.scrollWrapper).bind('mouseout',function(){$mom.autoScrollInterval=setInterval(autoScroll,6)})}$mom.previousScrollLeft=0;$mom.pingPongDirection="right";$mom.swapAt;$mom.getNextElementWidth=true;var autoScroll=function(){if(options.autoScroll=="onstart"){showHideHotSpots()}switch(options.autoScrollDirection){case"right":$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()+options.autoScrollSpeed);break;case"left":$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()-options.autoScrollSpeed);break;case"backandforth":$mom.previousScrollLeft=$mom.find(options.scrollWrapper).scrollLeft();if($mom.pingPongDirection=="right"){$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()+options.autoScrollSpeed)}else{$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()-options.autoScrollSpeed)}if($mom.previousScrollLeft===$mom.find(options.scrollWrapper).scrollLeft()){if($mom.pingPongDirection=="right"){$mom.pingPongDirection="left"}else{$mom.pingPongDirection="right"}}break;case"endlessloop":if($mom.getNextElementWidth){if(options.startAtElementId!==""){$mom.swapAt=$("#"+options.startAtElementId).outerWidth()}else{$mom.swapAt=$mom.find(options.scrollableArea).children(":first-child").outerWidth()}$mom.getNextElementWidth=false}if(($mom.swapAt<=$mom.find(options.scrollWrapper).scrollLeft())&&!doesscrollleft){$mom.find(options.scrollableArea).append($mom.find(options.scrollableArea).children(":first-child").clone());$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()-$mom.find(options.scrollableArea).children(":first-child").outerWidth());$mom.find(options.scrollableArea).children(":first-child").remove();$mom.getNextElementWidth=true}else if((0>=$mom.find(options.scrollWrapper).scrollLeft())&&doesscrollleft){temp=$mom.find(options.scrollableArea).clone();$mom.find(options.scrollableArea).children().remove();$mom.find(options.scrollableArea).append(temp.children(":last-child"));$mom.find(options.scrollableArea).append(temp.children());$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()+$mom.find(options.scrollableArea).children(":first-child").outerWidth());$mom.getNextElementWidth=true}if(!doesscrollleft&&half>=4){$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()+options.autoScrollSpeed);half=0}half++;break;default:break}};$mom.find(options.scrollingHotSpotLeft).bind('mousemove',function(e){var x=$mom.find(options.scrollingHotSpotLeft).innerWidth()-(e.pageX-motherElementOffset);scrollXpos=Math.round((x/hotSpotWidth)*options.scrollingSpeed);if(scrollXpos===Infinity){scrollXpos=0}});$mom.find(options.scrollingHotSpotLeft).bind('mouseover',function(){if(options.autoScroll=="onstart"){clearInterval($mom.autoScrollInterval)}$mom.leftScrollInterval=setInterval(doScrollLeft,6)});$mom.find(options.scrollingHotSpotLeft).bind('mouseout',function(){clearInterval($mom.leftScrollInterval);scrollXpos=0;doesscrollleft=false});$mom.find(options.scrollingHotSpotLeft).bind('mousedown',function(){booster=options.mouseDownSpeedBooster});var doScrollLeft=function(){$mom.find(options.scrollWrapper).scrollLeft($mom.find(options.scrollWrapper).scrollLeft()-(1*booster));doesscrollleft=true;showHideHotSpots()};function showHideHotSpots(){if($mom.find(options.scrollWrapper).scrollLeft()===0){hideLeftHotSpot();showRightHotSpot()}else if(($mom.scrollableAreaWidth)<=($mom.find(options.scrollWrapper).innerWidth()+$mom.find(options.scrollWrapper).scrollLeft())){hideRightHotSpot();showLeftHotSpot()}else{showRightHotSpot();showLeftHotSpot()}}function makeHotSpotBackgroundsVisible(){$mom.find(options.scrollingHotSpotLeft).addClass("scrollingHotSpotLeftVisible");$mom.find(options.scrollingHotSpotRight).addClass("scrollingHotSpotRightVisible")}function hideHotSpotBackgrounds(){clearInterval($mom.hideHotSpotBackgroundsInterval);$mom.find(options.scrollingHotSpotLeft).fadeTo("slow",0.0,function(){$mom.find(options.scrollingHotSpotLeft).removeClass("scrollingHotSpotLeftVisible")});$mom.find(options.scrollingHotSpotRight).fadeTo("slow",0.0,function(){$mom.find(options.scrollingHotSpotRight).removeClass("scrollingHotSpotRightVisible")})}})}})(jQuery);
