﻿// jquery.mb.components Copyright (c) 2001-2010. Matteo Bicocchi (Pupunzi) email: info@pupunzi.com site: http://pupunzi.com Licences: MIT, GPL

// ImgNavigator ver 2.0
(function(a){jQuery.fn.imageNavigator=function(b){return this.each(function(){this.options={areaWidth:500,areaHeight:500,defaultnavWidth:150,draggerStyle:"2px dotted red",navOpacity:0.8,loaderUrl:"/images/loading.gif",additionalContenet:""};a.extend(this.options,b);b=this.options;var N=this;var y,g,M,i,w,G,p,h,s,P,L,O,U,v,E,J,t,r,Q,n=0,K=false,l,j;a(N).css({width:N.options.areaWidth});var f=a(N).find(".imagesContainer");a(N).empty();if(a.metadata){a.metadata.setType("class");a(f).each(function(){if(a(this).metadata().imageUrl){a(this).attr("imageUrl",a(this).metadata().imageUrl)}if(a(this).metadata().navPosition){a(this).attr("navPosition",a(this).metadata().navPosition)}if(a(this).metadata().navWidth){a(this).attr("navWidth",a(this).metadata().navWidth)}if(a(this).metadata().NavCoordinates){a(this).attr("NavCoordinates",a(this).metadata().NavCoordinates)}})}var x=a(f[0]).attr("imageUrl");var V=a(f[0]).attr("navPosition");var D=a(f[0]).attr("navWidth")?a(this).attr("navWidth"):N.options.defaultnavWidth;var e=a(f).find(".title");var A=a(f).find(".description");var d=a(f).find(".additionalContent");a(N).append("<div class='imageContainer'></div>");p=a(N).find(".imageContainer");a(p).css({overflow:"hidden",position:"relative",width:this.options.areaWidth+"px",height:this.options.areaHeight+"px"});var z="<table id='loader' style='display:none;' cellpadding='0' cellspacing='0' width='100%' height='100%'><tr><td valign='middle' align='center'><img src='"+N.options.loaderUrl+"' alt='loading'></td></tr></table>";a(p).append(z);if (a(e).size() > 1){a(N).prepend("<div class='imagesIndex'></div>");var T=a(N).find(".imagesIndex");a(T).css({position:"relative",width:this.options.areaWidth,padding:"0"});a(T).append(e);}var m=true;a(e).each(function(W){a(this).click(function(){if(!m){return}n=W;m=false;x=a(f[W]).attr("imageUrl");V=a(f[W]).attr("navPosition");D=a(f[W]).attr("navWidth")?a(f[W]).attr("navWidth"):N.options.defaultnavWidth;if(a(f[W]).attr("NavCoordinates")){l=a(f[W]).attr("NavCoordinates").split(",")[0];j=a(f[W]).attr("NavCoordinates").split(",")[1]}if(i){a(i).fadeOut(500,function(){S(x)})}else{S(x)}})});a(N).append("<div class='descriptionBox'></div>");var q=a(N).find(".descriptionBox");a(q).html(A[0]);function S(W){E=null;Q=null;if(M){a(M).remove()}a(e).each(function(Y){if(Y==n){a(this).addClass("selected")}else{a(this).removeClass("selected")}});E=D;var X=new Image();X.src=null;W=W+"?rdm="+Math.random();X.src=W;X.onload=function(){c(W)};X.onerror=u;a("#loader").fadeIn(500)}function u(){alert("image not loaded: "+this.src)}function c(W){h=a(p).width();s=a(p).height();a("#loader").fadeOut(500,function(){m=true});a(e).bind("click",function(){return true});a(p).click(function(){if(a.browser.msie){a(v).show()}else{a(v).show()}});a(p).mouseleave(function(){if(a.browser.msie){a(v).hide()}else{a(v).hide()}});a(p).append("<div class='applContainer'></div>");M=a(N).find(".applContainer");a(M).css({position:"relative",height:a(p).height()});a(M).append("<div class='draggableElement'></div>");g=a(M).find(".draggableElement");a(g).append("<image class='navImage'>");i=a(g).find(".navImage");a(g).append("<div class='additionalContent'></div>");y=a(g).find(".additionalContent");a(y).css({position:"absolute",top:"0"});a(g).css({position:"absolute"});a(q).html(A[n]);a(y).html(d[n]);a(i).attr("src",W);a(i).hide();G=a(i).outerHeight();w=a(i).outerWidth();a(i).fadeIn(1000,function(){var Y,X;if(!a(f[n]).attr("NavCoordinates")){Y=-(G/2-(a(v).height()*3));X=-(w/2-(a(v).width()*3))}else{Y=-(j-(a(p).height()/2));X=-(l-(a(p).width()/2));if(Y>0){Y=0}if(X>0){X=0}}a(g).animate({top:Y,left:X},500,"linear");F(X,Y)});a(g).draggable({containment:[a(p).offset().left-w+a(p).outerWidth(),a(p).offset().top-G+a(p).outerHeight(),a(p).offset().left,a(p).offset().top],start:function(){a(v).hide();a(g).css({cursor:"move"})},stop:function(Y,X){F(X.position.left,X.position.top);a(g).css({cursor:"default"});a(v).show()}});a(g).bind("dblclick",function(){C()});a(M).append("<div class='nav'></div>");v=a(N).find(".nav");a(v).css({position:"absolute",opacity:N.options.navOpacity});a(v).append("<div id='navLocator'></div>");P=a(N).find("#navLocator");a(P).css({zIndex:10000,position:"absolute",border:N.options.draggerStyle,backgroundColor:a.browser.msie?"white":"transparent",opacity:a.browser.msie?0.5:1});a(v).hide(1);a(P).bind("dblclick",function(){C()});a(P).draggable({containment:"parent",start:function(){a(P).css({cursor:"move"})},drag:function(Y,X){o(X.position.left,X.position.top)},stop:function(){a(P).css({cursor:"default"})}});a(v).append("<image class='navigationThumb'>");L=a(N).find(".navigationThumb");a(L).attr("src",W);a(L).bind("dblclick",function(){C()});t=G<w;r=s<h;Q=G/J;I()}function C(){if(!K){P.oldX=a(P).css("left");P.oldY=a(P).css("top");g.oldX=a(g).css("left");g.oldY=a(g).css("top");var X=((E*s)/J)<h;if(X){a(i).css("width",h)}else{a(i).css("height",s)}K=true;a(P).css("top",0);a(P).css("left",0);a(g).css("top",0);a(g).css("left",0);a(g).bind("mousemove",N.doNothing=function(){return false});a(y).hide()}else{a(i).width("");a(i).height("");K=false;a(g).css("top",g.oldY);a(g).css("left",g.oldX);a(P).css("top",P.oldY);a(P).css("left",P.oldX);a(g).unbind("mousemove",N.doNothing);a(y).show()}I();var W=a(P).offsetLeft;var Y=a(P).offsetTop;o(W,Y)}function o(W,Z){Q=G/J;var Y=-(arguments[0]+1)*Q;var X=-(arguments[1]+1)*Q;a(g).css("top",X);a(g).css("left",Y)}function F(W,Z){Q=G/J;var Y=-(arguments[0]+1)/Q;var X=-(arguments[1]+1)/Q;a(P).css({top:X,left:Y})}function H(){E=!E?h/4:E;J=(E*G)/w;a(L).height(parseFloat(J));O=a(L).width();U=a(L).height()}function R(){a(P).width((h*E)/w);a(P).height((s*J)/G)}function k(){switch(V){case"TL":a(v).css("left",0);a(v).css("top",0);break;case"TR":a(v).css("top",0);a(v).css("left",(h-O));break;case"BL":a(v).css("top",(s-U));break;case"BR":a(v).css("left",(h-O));a(v).css("top",(s-U));break;default:var W=(a(p).width())-O;a(v).css("left",W);break}}function I(){h=a(p).width();s=a(p).height();r=s<h;G=a(i).height();w=a(i).width();H();R();k()}function B(){if(!i){return}a(i).width("");a(i).height("");if(a.browser.msie){a(v).show()}else{a(v).fadeIn(500)}p.oldW=a(p).css("width");p.oldH=a(p).css("height");p.style.width=a(window).outerWidth();a(window).bind("resize",function(){B()});I()}S(x)})};jQuery.fn.extend({getMouseX:function(c){var b;if(a.browser.msie){b=event.clientX+document.body.scrollLeft}else{b=c.pageX}if(b<0){b=0}return b},getMouseY:function(c){var b;if(a.browser.msie){b=event.clientY+document.body.scrollTop}else{b=c.pageY}if(b<0){b=0}return b}})})(jQuery);

// YTPlayer (YouTube player)
(function ($) { $.YTPlayer = { name: "jquery.mb.YTPlayer", version: 1.2, author: "Matteo Bicocchi", width: 450, controls: { play: "<img src='/images/play.png'>", pause: "<img src='/images/pause.png'>", mute: "<img src='/images/mute.png'>", unmute: "<img src='/images/unmute.png'>" }, rasterImg: "/images/raster.png", setYTPlayer: function () {  var players = this; $.getScript("http://ajax.googleapis.com/ajax/libs/swfobject/2/swfobject.js", function () { players.each(function () { if (!$(this).is("a")) return; if (!$(this).attr("id")) $(this).attr("id", "YTP_" + new Date().getMilliseconds()); var ID = $(this).attr("id"); var dataObj = $("<span/>"); dataObj.attr("id", ID + "_data").hide(); var data = dataObj.get(0); data.opacity = 1; data.isBgndMovie = false; data.width = $.YTPlayer.width; data.quality = "default"; data.muteSound = false; data.hasControls = false; data.ratio = "16/9"; data.bufferImg = false; var BGisInit = typeof document.YTPBG != "undefined"; if ($.metadata) { $.metadata.setType("class"); if ($(this).metadata().quality) data.quality = $(this).metadata().quality; if ($(this).metadata().width) data.width = $(this).metadata().width; if ($(this).metadata().opacity) data.opacity = $(this).metadata().opacity; if ($(this).metadata().isBgndMovie && !BGisInit) { data.isBgndMovie = $(this).metadata().isBgndMovie; data.width = $(this).metadata().isBgndMovie.width ? $(this).metadata().isBgndMovie.width : "window"; } if ($(this).metadata().muteSound) { data.muteSound = $(this).metadata().muteSound; } if ($(this).metadata().hasControls) { data.hasControls = $(this).metadata().hasControls; } if ($(this).metadata().ratio) { data.ratio = $(this).metadata().ratio; } if ($(this).metadata().bufferImg) { data.bufferImg = $(this).metadata().bufferImg; } if ($(this).metadata().ID) { data.ID = $(this).metadata().ID; } } var el = data.ID ? $("#" + data.ID) : $("body"); if (data.width == "window") { data.height = "100%"; data.width = "100%"; if (data.ID) { data.height = el.outerHeight() + 40; data.width = el.outerWidth(); } } else data.height = data.ratio == "16/9" ? Math.ceil((9 * data.width) / 16) : Math.ceil((3 * data.width) / 4); var videoWrapper = ""; $(el).append(dataObj); if (data.isBgndMovie) { if ($.browser.msie && $.browser.version < 8 || data.ID) { var bodyWrapper = $("<div/>").css({ position: "relative", zIndex: 0 }); $(el).wrapInner(bodyWrapper); $(el).prepend($(this)); } else $(el).after($(this)); var pos = data.ID ? "absolute" : "fixed"; videoWrapper = $("<div/>").attr("id", "wrapper_" + ID).css({ overflow: "hidden", position: pos, left: 0, top: 0, width: "100%", height: "100%" }); $(this).wrap(videoWrapper); if (!data.width.toString().indexOf("%") == -1) { var videoDiv = $("<div/>").css({ position: pos, top: data.ratio == "4/3" && !data.ID ? -(data.height / 4) : 0, left: 0, display: "block", width: data.width, height: data.height }); $(this).wrap(videoDiv); }  } else { videoWrapper = $("<span/>").attr("id", "wrapper_" + ID).css({ width: data.width, height: data.height, position: "relative" }).addClass("mb_YTVPlayer"); $(this).wrap(videoWrapper); } var params = { allowScriptAccess: "always", wmode: "transparent", allowFullScreen: "true" }; var atts = { id: ID }; data.movieURL = ($(this).attr("href").match(/[\\?&]v=([^&#]*)/))[1]; swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&version=3&playerapiid=" + ID, ID, data.width, data.height, "8", null, null, params, atts); }); }); }, setMovie: function () { var player = $(this).get(0); var data = $("#" + player.id + "_data").get(0); var BGisInit = typeof document.YTPBG != "undefined"; var movieID = data.movieURL; $(player).css({ opacity: data.opacity }); var pos = data.ID ? "absolute" : "fixed"; if (data.isBgndMovie && !BGisInit) { var raster = $("<div/>").addClass("mbYTP_raster").css({ position: pos, top: 0, left: 0, width: "100%", height: "100%", background: "url(" + $.YTPlayer.rasterImg + ")" }).hide(); var bufferImg = data.bufferImg ? $("<div/>").addClass("mbYTP_bufferImg").css({ position: pos, top: 0, left: 0, width: "100%", height: "100%", background: "url(" + data.bufferImg + ")" }).hide() : false; var playerContainer = $(player).parents("div:first"); var ratio = data.ratio; if (!data.ID) document.YTPBG = true; $(playerContainer).after(raster); if (data.bufferImg) raster.after(bufferImg); } if (data.isBgndMovie) { player.loadVideoByUrl("http://www.youtube.com/v/" + movieID, 0); if (data.isBgndMovie.mute) player.mute(); } else { player.cueVideoByUrl("http://www.youtube.com/v/" + movieID, 0); $(player).buildYTPControls(); } player.setPlaybackQuality(data.quality); player.addEventListener("onStateChange", '(function(state) { return playerState(state, "' + player.id + '"); })'); }, playYTP: function () { var player = $(this).get(0); var playBtn = $(player).parent().find(".mb_YTVPPlaypause"); playBtn.html($.YTPlayer.controls.pause); player.playVideo(); }, stopYTP: function () { var player = $(this).get(0); var playBtn = $(player).parent().find(".mb_YTVPPlaypause"); playBtn.html($.YTPlayer.controls.play); player.pauseVideo(); }, pauseYTP: function () { var player = $(this).get(0); var playBtn = $(player).parent().find(".mb_YTVPPlaypause"); playBtn.html($.YTPlayer.controls.play); player.pauseVideo(); }, setYTPVolume: function (val) { var player = $(this).get(0); var VolumeBtn = $(player).parent().find(".mb_YTVPVolume"); player.setVolume(val); }, muteYTPVolume: function () { var player = $(this).get(0); var muteBtn = $(player).parent().find(".mb_YTVPMuteUnmute"); muteBtn.html($.YTPlayer.controls.unmute); player.mute(); }, unmuteYTPVolume: function () { var player = $(this).get(0); var muteBtn = $(player).parent().find(".mb_YTVPMuteUnmute"); muteBtn.html($.YTPlayer.controls.mute); player.unMute(); }, manageYTPProgress: function () { var player = $(this).get(0); var YTPlayer = $(player).parent(".mb_YTVPlayer"); var progressBar = YTPlayer.find(".mb_YTVPProgress"); var loadedBar = YTPlayer.find(".mb_YTVPLoaded"); var timeBar = YTPlayer.find(".mb_YTVTime"); var totW = progressBar.outerWidth(); var startBytes = player.getVideoStartBytes(); var totalBytes = player.getVideoBytesTotal(); var loadedByte = player.getVideoBytesLoaded(); var currentTime = Math.floor(player.getCurrentTime()); var totalTime = Math.floor(player.getDuration()); var timeW = (currentTime * totW) / totalTime; var startLeft = 0; if (startBytes) { startLeft = player.timeW; } var loadedW = (loadedByte * (totW - startLeft)) / totalBytes; loadedBar.css({ left: startLeft, width: loadedW }); timeBar.css({ left: 0, width: timeW }); return { totalTime: totalTime, currentTime: currentTime }; }, buildYTPControls: function () { var player = $(this).get(0); if (typeof player.isInit != "undefined") return; player.isInit = true; var YTPlayer = $(this).parent(".mb_YTVPlayer"); var controlBar = $("<span/>").addClass("mb_YTVPBar").css({ whiteSpace: "noWrap", position: "absolute" }).hide(); var playpause = $("<span>" + $.YTPlayer.controls.play + "</span>").addClass("mb_YTVPPlaypause").click(function () { if (player.getPlayerState() == 1) { $(player).pauseYTP(); } else { $(player).playYTP(); } }); var MuteUnmute = $("<span>" + $.YTPlayer.controls.mute + "</span>").addClass("mb_YTVPMuteUnmute").click(function () { if (player.isMuted()) { $(player).unmuteYTPVolume(); } else { $(player).muteYTPVolume(); } }); var idx = $("<span/>").addClass("mb_YTVPTime"); var progressBar = $("<div/>").addClass("mb_YTVPProgress").css("position", "absolute").click(function (e) { timeBar.css({ width: (e.clientX - timeBar.offset().left) }); player.timeW = e.clientX - timeBar.offset().left; YTPlayer.find(".mb_YTVPLoaded").css({ width: 0 }); var totalTime = Math.floor(player.getDuration()); player.goto = (timeBar.outerWidth() * totalTime) / progressBar.outerWidth(); player.seekTo(player.goto, true); YTPlayer.find(".mb_YTVPLoaded").css({ width: 0 }); }); var loadedBar = $("<div/>").addClass("mb_YTVPLoaded").css("position", "absolute"); var timeBar = $("<div/>").addClass("mb_YTVTime").css("position", "absolute"); progressBar.append(loadedBar).append(timeBar); controlBar.append(playpause).append(MuteUnmute).append(idx).append(progressBar); YTPlayer.append(controlBar); YTPlayer.hover(function () { controlBar.fadeIn(); clearInterval(player.getState); player.getState = setInterval(function () { var prog = $(player).manageYTPProgress(); $(".mb_YTVPTime").html($.YTPlayer.formatTime(prog.currentTime) + " / " + $.YTPlayer.formatTime(prog.totalTime)); if (player.getPlayerState() == 1 && $(".mb_YTVPPlaypause").html() != $.YTPlayer.controls.pause) YTPlayer.find(".mb_YTVPPlaypause").html($.YTPlayer.controls.pause); if (player.getPlayerState() == 2) YTPlayer.find(".mb_YTVPPlaypause").html($.YTPlayer.controls.play); }, 500); }, function () { controlBar.fadeOut(); clearInterval(player.getState); }); }, formatTime: function (s) { var min = Math.floor(s / 60); var sec = s - (60 * min); return (min < 9 ? "0" + min : min) + " : " + (sec < 9 ? "0" + sec : sec); } }; $.fn.mb_YTPlayer = $.YTPlayer.setYTPlayer; $.fn.mb_setMovie = $.YTPlayer.setMovie; $.fn.buildYTPControls = $.YTPlayer.buildYTPControls; $.fn.playYTP = $.YTPlayer.playYTP; $.fn.stopYTP = $.YTPlayer.stopYTP; $.fn.pauseYTP = $.YTPlayer.pauseYTP; $.fn.muteYTPVolume = $.YTPlayer.muteYTPVolume; $.fn.unmuteYTPVolume = $.YTPlayer.unmuteYTPVolume; $.fn.manageYTPProgress = $.YTPlayer.manageYTPProgress; })(jQuery);
function onYouTubePlayerReady(playerId) { var player=$("#"+playerId); player.mb_setMovie(); }
function playerState(state,el){var player=$("#"+el).get(0);var data=$("#"+player.id+"_data").get(0);if(state==0&&data.isBgndMovie){player.playVideo();}if((state==-1||state==3)&&data.isBgndMovie){$(player).css({opacity:0});$(".mbYTP_raster").css({opacity:.5,backgroundColor:"black"}).fadeIn();$(".mbYTP_bufferImg").css({opacity:.2}).fadeIn();if(!$.browser.msie){$("#wrapper_"+player.id).css({opacity:0});}}if(state==1&&data.isBgndMovie){$(player).css({opacity:data.opacity});$(".mbYTP_raster").css({opacity:1,backgroundColor:"transparent"});$(".mbYTP_bufferImg").fadeOut();if(!$.browser.msie)$("#wrapper_"+player.id).animate({opacity:1},1000);}if(state==1&&!data.isBgndMovie)player.totalBytes=player.getVideoBytesTotal();if(state==0&&!data.isBgndMovie){$(player).stopYTP();}}

//	SWFObject v2.2 <http://code.google.com/p/swfobject/> is released under the MIT License
var swfobject = function () { var D = "undefined", r = "object", S = "Shockwave Flash", W = "ShockwaveFlash.ShockwaveFlash", q = "application/x-shockwave-flash", R = "SWFObjectExprInst", x = "onreadystatechange", O = window, j = document, t = navigator, T = false, U = [h], o = [], N = [], I = [], l, Q, E, B, J = false, a = false, n, G, m = true, M = function () { var aa = typeof j.getElementById != D && typeof j.getElementsByTagName != D && typeof j.createElement != D, ah = t.userAgent.toLowerCase(), Y = t.platform.toLowerCase(), ae = Y ? /win/.test(Y) : /win/.test(ah), ac = Y ? /mac/.test(Y) : /mac/.test(ah), af = /webkit/.test(ah) ? parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, X = ! +"\v1", ag = [0, 0, 0], ab = null; if (typeof t.plugins != D && typeof t.plugins[S] == r) { ab = t.plugins[S].description; if (ab && !(typeof t.mimeTypes != D && t.mimeTypes[q] && !t.mimeTypes[q].enabledPlugin)) { T = true; X = false; ab = ab.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); ag[0] = parseInt(ab.replace(/^(.*)\..*$/, "$1"), 10); ag[1] = parseInt(ab.replace(/^.*\.(.*)\s.*$/, "$1"), 10); ag[2] = /[a-zA-Z]/.test(ab) ? parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0 } } else { if (typeof O.ActiveXObject != D) { try { var ad = new ActiveXObject(W); if (ad) { ab = ad.GetVariable("$version"); if (ab) { X = true; ab = ab.split(" ")[1].split(","); ag = [parseInt(ab[0], 10), parseInt(ab[1], 10), parseInt(ab[2], 10)] } } } catch (Z) { } } } return { w3: aa, pv: ag, wk: af, ie: X, win: ae, mac: ac} } (), k = function () { if (!M.w3) { return } if ((typeof j.readyState != D && j.readyState == "complete") || (typeof j.readyState == D && (j.getElementsByTagName("body")[0] || j.body))) { f() } if (!J) { if (typeof j.addEventListener != D) { j.addEventListener("DOMContentLoaded", f, false) } if (M.ie && M.win) { j.attachEvent(x, function () { if (j.readyState == "complete") { j.detachEvent(x, arguments.callee); f() } }); if (O == top) { (function () { if (J) { return } try { j.documentElement.doScroll("left") } catch (X) { setTimeout(arguments.callee, 0); return } f() })() } } if (M.wk) { (function () { if (J) { return } if (!/loaded|complete/.test(j.readyState)) { setTimeout(arguments.callee, 0); return } f() })() } s(f) } } (); function f() { if (J) { return } try { var Z = j.getElementsByTagName("body")[0].appendChild(C("span")); Z.parentNode.removeChild(Z) } catch (aa) { return } J = true; var X = U.length; for (var Y = 0; Y < X; Y++) { U[Y]() } } function K(X) { if (J) { X() } else { U[U.length] = X } } function s(Y) { if (typeof O.addEventListener != D) { O.addEventListener("load", Y, false) } else { if (typeof j.addEventListener != D) { j.addEventListener("load", Y, false) } else { if (typeof O.attachEvent != D) { i(O, "onload", Y) } else { if (typeof O.onload == "function") { var X = O.onload; O.onload = function () { X(); Y() } } else { O.onload = Y } } } } } function h() { if (T) { V() } else { H() } } function V() { var X = j.getElementsByTagName("body")[0]; var aa = C(r); aa.setAttribute("type", q); var Z = X.appendChild(aa); if (Z) { var Y = 0; (function () { if (typeof Z.GetVariable != D) { var ab = Z.GetVariable("$version"); if (ab) { ab = ab.split(" ")[1].split(","); M.pv = [parseInt(ab[0], 10), parseInt(ab[1], 10), parseInt(ab[2], 10)] } } else { if (Y < 10) { Y++; setTimeout(arguments.callee, 10); return } } X.removeChild(aa); Z = null; H() })() } else { H() } } function H() { var ag = o.length; if (ag > 0) { for (var af = 0; af < ag; af++) { var Y = o[af].id; var ab = o[af].callbackFn; var aa = { success: false, id: Y }; if (M.pv[0] > 0) { var ae = c(Y); if (ae) { if (F(o[af].swfVersion) && !(M.wk && M.wk < 312)) { w(Y, true); if (ab) { aa.success = true; aa.ref = z(Y); ab(aa) } } else { if (o[af].expressInstall && A()) { var ai = {}; ai.data = o[af].expressInstall; ai.width = ae.getAttribute("width") || "0"; ai.height = ae.getAttribute("height") || "0"; if (ae.getAttribute("class")) { ai.styleclass = ae.getAttribute("class") } if (ae.getAttribute("align")) { ai.align = ae.getAttribute("align") } var ah = {}; var X = ae.getElementsByTagName("param"); var ac = X.length; for (var ad = 0; ad < ac; ad++) { if (X[ad].getAttribute("name").toLowerCase() != "movie") { ah[X[ad].getAttribute("name")] = X[ad].getAttribute("value") } } P(ai, ah, Y, ab) } else { p(ae); if (ab) { ab(aa) } } } } } else { w(Y, true); if (ab) { var Z = z(Y); if (Z && typeof Z.SetVariable != D) { aa.success = true; aa.ref = Z } ab(aa) } } } } } function z(aa) { var X = null; var Y = c(aa); if (Y && Y.nodeName == "OBJECT") { if (typeof Y.SetVariable != D) { X = Y } else { var Z = Y.getElementsByTagName(r)[0]; if (Z) { X = Z } } } return X } function A() { return !a && F("6.0.65") && (M.win || M.mac) && !(M.wk && M.wk < 312) } function P(aa, ab, X, Z) { a = true; E = Z || null; B = { success: false, id: X }; var ae = c(X); if (ae) { if (ae.nodeName == "OBJECT") { l = g(ae); Q = null } else { l = ae; Q = X } aa.id = R; if (typeof aa.width == D || (!/%$/.test(aa.width) && parseInt(aa.width, 10) < 310)) { aa.width = "310" } if (typeof aa.height == D || (!/%$/.test(aa.height) && parseInt(aa.height, 10) < 137)) { aa.height = "137" } j.title = j.title.slice(0, 47) + " - Flash Player Installation"; var ad = M.ie && M.win ? "ActiveX" : "PlugIn", ac = "MMredirectURL=" + O.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + ad + "&MMdoctitle=" + j.title; if (typeof ab.flashvars != D) { ab.flashvars += "&" + ac } else { ab.flashvars = ac } if (M.ie && M.win && ae.readyState != 4) { var Y = C("div"); X += "SWFObjectNew"; Y.setAttribute("id", X); ae.parentNode.insertBefore(Y, ae); ae.style.display = "none"; (function () { if (ae.readyState == 4) { ae.parentNode.removeChild(ae) } else { setTimeout(arguments.callee, 10) } })() } u(aa, ab, X) } } function p(Y) { if (M.ie && M.win && Y.readyState != 4) { var X = C("div"); Y.parentNode.insertBefore(X, Y); X.parentNode.replaceChild(g(Y), X); Y.style.display = "none"; (function () { if (Y.readyState == 4) { Y.parentNode.removeChild(Y) } else { setTimeout(arguments.callee, 10) } })() } else { Y.parentNode.replaceChild(g(Y), Y) } } function g(ab) { var aa = C("div"); if (M.win && M.ie) { aa.innerHTML = ab.innerHTML } else { var Y = ab.getElementsByTagName(r)[0]; if (Y) { var ad = Y.childNodes; if (ad) { var X = ad.length; for (var Z = 0; Z < X; Z++) { if (!(ad[Z].nodeType == 1 && ad[Z].nodeName == "PARAM") && !(ad[Z].nodeType == 8)) { aa.appendChild(ad[Z].cloneNode(true)) } } } } } return aa } function u(ai, ag, Y) { var X, aa = c(Y); if (M.wk && M.wk < 312) { return X } if (aa) { if (typeof ai.id == D) { ai.id = Y } if (M.ie && M.win) { var ah = ""; for (var ae in ai) { if (ai[ae] != Object.prototype[ae]) { if (ae.toLowerCase() == "data") { ag.movie = ai[ae] } else { if (ae.toLowerCase() == "styleclass") { ah += ' class="' + ai[ae] + '"' } else { if (ae.toLowerCase() != "classid") { ah += " " + ae + '="' + ai[ae] + '"' } } } } } var af = ""; for (var ad in ag) { if (ag[ad] != Object.prototype[ad]) { af += '<param name="' + ad + '" value="' + ag[ad] + '" />' } } aa.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + ah + ">" + af + "</object>"; N[N.length] = ai.id; X = c(ai.id) } else { var Z = C(r); Z.setAttribute("type", q); for (var ac in ai) { if (ai[ac] != Object.prototype[ac]) { if (ac.toLowerCase() == "styleclass") { Z.setAttribute("class", ai[ac]) } else { if (ac.toLowerCase() != "classid") { Z.setAttribute(ac, ai[ac]) } } } } for (var ab in ag) { if (ag[ab] != Object.prototype[ab] && ab.toLowerCase() != "movie") { e(Z, ab, ag[ab]) } } aa.parentNode.replaceChild(Z, aa); X = Z } } return X } function e(Z, X, Y) { var aa = C("param"); aa.setAttribute("name", X); aa.setAttribute("value", Y); Z.appendChild(aa) } function y(Y) { var X = c(Y); if (X && X.nodeName == "OBJECT") { if (M.ie && M.win) { X.style.display = "none"; (function () { if (X.readyState == 4) { b(Y) } else { setTimeout(arguments.callee, 10) } })() } else { X.parentNode.removeChild(X) } } } function b(Z) { var Y = c(Z); if (Y) { for (var X in Y) { if (typeof Y[X] == "function") { Y[X] = null } } Y.parentNode.removeChild(Y) } } function c(Z) { var X = null; try { X = j.getElementById(Z) } catch (Y) { } return X } function C(X) { return j.createElement(X) } function i(Z, X, Y) { Z.attachEvent(X, Y); I[I.length] = [Z, X, Y] } function F(Z) { var Y = M.pv, X = Z.split("."); X[0] = parseInt(X[0], 10); X[1] = parseInt(X[1], 10) || 0; X[2] = parseInt(X[2], 10) || 0; return (Y[0] > X[0] || (Y[0] == X[0] && Y[1] > X[1]) || (Y[0] == X[0] && Y[1] == X[1] && Y[2] >= X[2])) ? true : false } function v(ac, Y, ad, ab) { if (M.ie && M.mac) { return } var aa = j.getElementsByTagName("head")[0]; if (!aa) { return } var X = (ad && typeof ad == "string") ? ad : "screen"; if (ab) { n = null; G = null } if (!n || G != X) { var Z = C("style"); Z.setAttribute("type", "text/css"); Z.setAttribute("media", X); n = aa.appendChild(Z); if (M.ie && M.win && typeof j.styleSheets != D && j.styleSheets.length > 0) { n = j.styleSheets[j.styleSheets.length - 1] } G = X } if (M.ie && M.win) { if (n && typeof n.addRule == r) { n.addRule(ac, Y) } } else { if (n && typeof j.createTextNode != D) { n.appendChild(j.createTextNode(ac + " {" + Y + "}")) } } } function w(Z, X) { if (!m) { return } var Y = X ? "visible" : "hidden"; if (J && c(Z)) { c(Z).style.visibility = Y } else { v("#" + Z, "visibility:" + Y) } } function L(Y) { var Z = /[\\\"<>\.;]/; var X = Z.exec(Y) != null; return X && typeof encodeURIComponent != D ? encodeURIComponent(Y) : Y } var d = function () { if (M.ie && M.win) { window.attachEvent("onunload", function () { var ac = I.length; for (var ab = 0; ab < ac; ab++) { I[ab][0].detachEvent(I[ab][1], I[ab][2]) } var Z = N.length; for (var aa = 0; aa < Z; aa++) { y(N[aa]) } for (var Y in M) { M[Y] = null } M = null; for (var X in swfobject) { swfobject[X] = null } swfobject = null }) } } (); return { registerObject: function (ab, X, aa, Z) { if (M.w3 && ab && X) { var Y = {}; Y.id = ab; Y.swfVersion = X; Y.expressInstall = aa; Y.callbackFn = Z; o[o.length] = Y; w(ab, false) } else { if (Z) { Z({ success: false, id: ab }) } } }, getObjectById: function (X) { if (M.w3) { return z(X) } }, embedSWF: function (ab, ah, ae, ag, Y, aa, Z, ad, af, ac) { var X = { success: false, id: ah }; if (M.w3 && !(M.wk && M.wk < 312) && ab && ah && ae && ag && Y) { w(ah, false); K(function () { ae += ""; ag += ""; var aj = {}; if (af && typeof af === r) { for (var al in af) { aj[al] = af[al] } } aj.data = ab; aj.width = ae; aj.height = ag; var am = {}; if (ad && typeof ad === r) { for (var ak in ad) { am[ak] = ad[ak] } } if (Z && typeof Z === r) { for (var ai in Z) { if (typeof am.flashvars != D) { am.flashvars += "&" + ai + "=" + Z[ai] } else { am.flashvars = ai + "=" + Z[ai] } } } if (F(Y)) { var an = u(aj, am, ah); if (aj.id == ah) { w(ah, true) } X.success = true; X.ref = an } else { if (aa && A()) { aj.data = aa; P(aj, am, ah, ac); return } else { w(ah, true) } } if (ac) { ac(X) } }) } else { if (ac) { ac(X) } } }, switchOffAutoHideShow: function () { m = false }, ua: M, getFlashPlayerVersion: function () { return { major: M.pv[0], minor: M.pv[1], release: M.pv[2]} }, hasFlashPlayerVersion: F, createSWF: function (Z, Y, X) { if (M.w3) { return u(Z, Y, X) } else { return undefined } }, showExpressInstall: function (Z, aa, X, Y) { if (M.w3 && A()) { P(Z, aa, X, Y) } }, removeSWF: function (X) { if (M.w3) { y(X) } }, createCSS: function (aa, Z, Y, X) { if (M.w3) { v(aa, Z, Y, X) } }, addDomLoadEvent: K, addLoadEvent: s, getQueryParamValue: function (aa) { var Z = j.location.search || j.location.hash; if (Z) { if (/\?/.test(Z)) { Z = Z.split("?")[1] } if (aa == null) { return L(Z) } var Y = Z.split("&"); for (var X = 0; X < Y.length; X++) { if (Y[X].substring(0, Y[X].indexOf("=")) == aa) { return L(Y[X].substring((Y[X].indexOf("=") + 1))) } } } return "" }, expressInstallCallback: function () { if (a) { var X = c(R); if (X && l) { X.parentNode.replaceChild(l, X); if (Q) { w(Q, true); if (M.ie && M.win) { l.style.display = "block" } } if (E) { E(B) } } a = false } } } } ();

// jquery.mb.scrollable Version: 1.5.7  with modification for graphical interactive jQuery UI contols by Sean C. Rowland
(function ($)
{
    $.mbScrollable = {
        plugin: "mb.scrollable",
        author: "MB",
        version: "1.5.7",
        defaults: {
            dir: "vertical",
            width: 700,
            elementsInPage: 1,
            elementMargin: 4,
            shadow: false,
            height: "auto",
            controls: "#scroll-controls",
            menu: "#scroll-menu",
            slideTimer: 600,
            autoscroll: true,
            scrollTimer: 6000,
            uiTheme: true,
            nextCallback: function () { },
            prevCallback: function () { }
        },
        buildMbScrollable: function (options)
        {
            return this.each(function ()
            {
                this.options = {};
                $.extend(this.options, $.mbScrollable.defaults);
                $.extend(this.options, options);
                var mbScrollable = this;
                mbScrollable.isVertical = mbScrollable.options.dir != "horizontal";
                var controls = $(mbScrollable.options.controls);
                mbScrollable.idx = 1;
                mbScrollable.scrollTo = 0;
                mbScrollable.elements = $(mbScrollable).children();
                mbScrollable.elements.addClass("scroll-element");
                controls.hide();
                $(mbScrollable).children().each(function () { $(this).wrap("<div class='SECont'></div>"); });
                if (mbScrollable.options.shadow) {
                    $(mbScrollable.elements).css("-moz-box-shadow", mbScrollable.options.shadow);
                    $(mbScrollable.elements).css("-webkit-box-shadow", mbScrollable.options.shadow);
                }
                mbScrollable.elements = $(mbScrollable).children();
                var eip = mbScrollable.options.elementsInPage < this.elements.size() ? mbScrollable.options.elementsInPage : mbScrollable.elements.size();
                if (mbScrollable.isVertical) {
                    mbScrollable.singleElDim = (mbScrollable.options.height / eip) - mbScrollable.options.elementMargin;
                    $(mbScrollable.elements).css({ marginBottom: mbScrollable.options.elementMargin, height: mbScrollable.singleElDim, width: mbScrollable.options.width });
                } else {
                    mbScrollable.singleElDim = (mbScrollable.options.width / eip) - mbScrollable.options.elementMargin;
                    $(mbScrollable.elements).css({ marginRight: mbScrollable.options.elementMargin, width: mbScrollable.singleElDim, display: "inline-block", float: "left" }); //float:"left"
                }
                this.elementsDim = (mbScrollable.singleElDim * mbScrollable.elements.size()) + (mbScrollable.options.elementMargin * mbScrollable.elements.size());
                mbScrollable.totalPages = Math.ceil(mbScrollable.elements.size() / mbScrollable.options.elementsInPage);
                var adj = $.browser.safari && mbScrollable.options.elementsInPage > 2 ? mbScrollable.options.elementMargin / (mbScrollable.options.elementsInPage) : 0;
                if (mbScrollable.isVertical)
                    $(mbScrollable).css({ overflow: "hidden", height: mbScrollable.options.height - adj, width: mbScrollable.options.width, paddingRight: 5, position: "relative" });
                else
                    $(mbScrollable).css({ overflow: "hidden", width: mbScrollable.options.width - adj, height: mbScrollable.options.height, paddingBottom: 5, position: "relative" });
                var mbscrollableStrip = $("<div class='scrollableStrip'/>").css({ width: mbScrollable.elementsDim, position: "relative" });
                $(mbScrollable.elements).wrapAll(mbscrollableStrip);
                mbScrollable.mbscrollableStrip = $(mbScrollable).find(".scrollableStrip");
                $(mbScrollable.elements).hover(function ()
                {
                    //                  console.debug(mbScrollable.autoScrollActive);
                    if (mbScrollable.autoScrollActive)
                        $(mbScrollable).mbStopAutoscroll();
                }, function ()
                {
                    if (mbScrollable.autoScrollActive)
                        $(mbScrollable).mbAutoscroll();
                });
                if (mbScrollable.options.autoscroll && mbScrollable.elements.size() > mbScrollable.options.elementsInPage) {
                    mbScrollable.autoScrollActive = true;
                    $(mbScrollable).mbAutoscroll();
                }
                $(mbScrollable).mbPageIndex();
                $(mbScrollable).mbActivateControls();
                setTimeout(function ()
                {
                    $(".scroll-element").fadeIn();
                }, 1000);
                $(mbScrollable).mbManageControls();                
            });
        },
        mbNextPage: function (auto)
        {
            var mbScrollable = $(this).get(0);
            if (!auto) mbScrollable.autoScrollActive = false;
            if (mbScrollable.idx == mbScrollable.totalPages) {
                $(mbScrollable).mbManageControls();
                return;
            }
            if (mbScrollable.options.nextCallback) mbScrollable.options.nextCallback();
            var adj = $.browser.safari && mbScrollable.options.elementsInPage > 2 ? mbScrollable.options.elementMargin / mbScrollable.options.elementsInPage : 0;
            mbScrollable.scrollTo -= ((mbScrollable.singleElDim + mbScrollable.options.elementMargin) * mbScrollable.options.elementsInPage) - adj;
            if (mbScrollable.isVertical) {
                if ((mbScrollable.scrollTo < -mbScrollable.elementsDim + mbScrollable.options.height))
                    mbScrollable.scrollTo = -mbScrollable.elementsDim + mbScrollable.options.height;
                $(mbScrollable.mbscrollableStrip).animate({ marginTop: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
            } else {
                if ((mbScrollable.scrollTo < -mbScrollable.elementsDim + mbScrollable.options.width))
                    mbScrollable.scrollTo = -mbScrollable.elementsDim + mbScrollable.options.width;
                $(mbScrollable.mbscrollableStrip).animate({ marginLeft: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
            }
            mbScrollable.idx += 1;
            $(this).mbManageControls();
            $(this).mbManageMenu();
        },
        mbPrevPage: function (auto)
        {
            var mbScrollable = $(this).get(0);
            if (!auto) mbScrollable.autoScrollActive = false;
            if (mbScrollable.idx == 1) {
                $(mbScrollable).mbManageControls();
                return;
            }
            if (mbScrollable.options.prevCallback) mbScrollable.options.prevCallback();
            var adj = $.browser.safari && mbScrollable.options.elementsInPage > 2 ? mbScrollable.options.elementMargin / mbScrollable.options.elementsInPage : 0;
            mbScrollable.scrollTo += ((mbScrollable.singleElDim + mbScrollable.options.elementMargin) * mbScrollable.options.elementsInPage) + adj;
            if (mbScrollable.isVertical) {
                if (mbScrollable.scrollTo >= 0) mbScrollable.scrollTo = 0;
                $(mbScrollable.mbscrollableStrip).animate({ marginTop: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
            } else {
                if (mbScrollable.scrollTo >= 0) mbScrollable.scrollTo = 0;
                $(mbScrollable.mbscrollableStrip).animate({ marginLeft: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
            }
            mbScrollable.idx -= 1;
            $(this).mbManageControls();
            $(this).mbManageMenu();
        },
        mbFirstPage: function ()
        {
            var mbScrollable = $(this).get(0);
            mbScrollable.autoScrollActive = false;
            mbScrollable.scrollTo = 0;
            if (mbScrollable.isVertical) {
                $(mbScrollable.mbscrollableStrip).animate({ marginTop: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
            } else {
                $(mbScrollable.mbscrollableStrip).animate({ marginLeft: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
            }
            mbScrollable.idx = 1;
            $(this).mbManageControls();
            $(mbScrollable).mbStopAutoscroll();
        },
        mbLastPage: function ()
        {
            var mbScrollable = $(this).get(0);
            mbScrollable.autoScrollActive = false;
            if (mbScrollable.isVertical) {
                mbScrollable.scrollTo = -mbScrollable.elementsDim + mbScrollable.options.height;
                $(mbScrollable.mbscrollableStrip).animate({ marginTop: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
            } else {
                mbScrollable.scrollTo = -mbScrollable.elementsDim + mbScrollable.options.width;
                $(mbScrollable.mbscrollableStrip).animate({ marginLeft: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
            }
            mbScrollable.idx = mbScrollable.totalPages;
            $(mbScrollable).mbManageControls();
            $(mbScrollable).mbStopAutoscroll();
        },
        mbPageIndex: function ()
        {
            var mbScrollable = $(this).get(0);
            var controls = $(mbScrollable.options.controls);
            var pages = controls.find(".pageIndex");
            if (pages) {
                function getPage(i)
                {
                    mbScrollable.scrollTo = -((mbScrollable.singleElDim + mbScrollable.options.elementMargin) * (mbScrollable.options.elementsInPage * (i - 1)));
                    if (mbScrollable.isVertical) {
                        if (mbScrollable.scrollTo < -mbScrollable.elementsDim + mbScrollable.options.height)
                            mbScrollable.scrollTo = -mbScrollable.elementsDim + mbScrollable.options.height;
                        $(mbScrollable.mbscrollableStrip).animate({ marginTop: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
                    } else {
                        if (mbScrollable.scrollTo < -mbScrollable.elementsDim + mbScrollable.options.width)
                            mbScrollable.scrollTo = -mbScrollable.elementsDim + mbScrollable.options.width;
                        $(mbScrollable.mbscrollableStrip).animate({ marginLeft: mbScrollable.scrollTo }, mbScrollable.options.slideTimer);
                    }
                    mbScrollable.idx = Math.floor(i);
                    $(mbScrollable).mbManageControls();
                }
                var n = 0;
                for (var i = 1; i <= mbScrollable.totalPages; i++) {
                    n++;
                    var p = $("<span class='page'> " + n + " <\/span>").bind("click", function ()
                    {
                        getPage($(this).html());
                        $(mbScrollable).mbStopAutoscroll();
                        mbScrollable.autoScrollActive = false;
                    });
                    pages.append(p);
                };
            }
        },
        mbAutoscroll: function ()
        {
            var dir = "next";
            var mbScrollable = $(this).get(0);
            mbScrollable.autoScrollActive = true;
            if (mbScrollable.autoscroll) return;
            var timer = mbScrollable.options.scrollTimer + mbScrollable.options.slideTimer;
            mbScrollable.autoscroll = true;
            mbScrollable.auto = setInterval(function ()
            {
                dir = mbScrollable.idx == 1 ? "next" : mbScrollable.idx == mbScrollable.totalPages ? "prev" : dir;
                if (dir == "next")
                    $(mbScrollable).mbNextPage(true);
                else
                    $(mbScrollable).mbPrevPage(true);
            }, timer);
            $(mbScrollable).mbManageControls();
        },
        mbStopAutoscroll: function ()
        {
            var mbScrollable = $(this).get(0);
            mbScrollable.autoscroll = false;
            clearInterval(mbScrollable.auto);
            $(mbScrollable).mbManageControls();
        },
        mbActivateControls: function ()
        {
            var mbScrollable = $(this).get(0);
            var controls = $(mbScrollable.options.controls);
            var menu = $(mbScrollable.options.menu);
            // TEXT CONTROLS SECTION //
            controls.find(".first").bind("click", function () { $(mbScrollable).mbFirstPage(); });
            controls.find(".prev").bind("click", function () { $(mbScrollable).mbStopAutoscroll(); $(mbScrollable).mbPrevPage(); });
            controls.find(".next").bind("click", function () { $(mbScrollable).mbStopAutoscroll(); $(mbScrollable).mbNextPage(); });
            controls.find(".last").bind("click", function () { $(mbScrollable).mbLastPage(); });
            controls.find(".start").bind("click", function () { $(mbScrollable).mbAutoscroll(); });
            controls.find(".stop").bind("click", function () { $(mbScrollable).mbStopAutoscroll(); mbScrollable.autoScrollActive = false; });
            // GRAPHIC CONTROLS SECTION //
            if (mbScrollable.options.uiTheme) {
                controls.find(".first").append("<span class='ui-icon ui-icon-seek-start ui-state-default'></span>");
                controls.find(".prev").append("<span class='ui-icon ui-icon-seek-prev ui-state-default'></span>");
                controls.find(".next").append("<span class='ui-icon ui-icon-seek-next ui-state-default'></span>");
                controls.find(".last").append("<span class='ui-icon ui-icon-seek-end ui-state-default'></span>");
                controls.find(".start").append("<span class='ui-icon ui-icon-play ui-state-default'></span>");
                controls.find(".stop").append("<span class='ui-icon ui-icon-pause ui-state-default'></span>");
                controls.find(".ui-icon-seek-start").bind("mouseover", function () { $(this).removeClass("ui-state-default").addClass("ui-state-hover"); }).bind("mouseout", function () { $(this).removeClass("ui-state-hover").addClass("ui-state-default"); });
                controls.find(".ui-icon-seek-prev").bind("mouseover", function () { $(this).removeClass("ui-state-default").addClass("ui-state-hover"); }).bind("mouseout", function () { $(this).removeClass("ui-state-hover").addClass("ui-state-default"); });
                controls.find(".ui-icon-seek-next").bind("mouseover", function () { $(this).removeClass("ui-state-default").addClass("ui-state-hover"); }).bind("mouseout", function () { $(this).removeClass("ui-state-hover").addClass("ui-state-default"); });
                controls.find(".ui-icon-seek-end").bind("mouseover", function () { $(this).removeClass("ui-state-default").addClass("ui-state-hover"); }).bind("mouseout", function () { $(this).removeClass("ui-state-hover").addClass("ui-state-default"); });
                controls.find(".ui-icon-play").bind("mouseover", function () { $(this).removeClass("ui-state-default").addClass("ui-state-hover"); }).bind("mouseout", function () { $(this).removeClass("ui-state-hover").addClass("ui-state-default"); });
                controls.find(".ui-icon-pause").bind("mouseover", function () { $(this).removeClass("ui-state-default").addClass("ui-state-hover"); }).bind("mouseout", function () { $(this).removeClass("ui-state-hover").addClass("ui-state-default"); });
            }
            // MENU SECTION //
            menu.find(".menu-item").each( function(index) {                
                $(this).click(function () { $(mbScrollable).goToPage((index + 1), false); });
            });            
        },
        mbManageControls: function ()
        {
            var mbScrollable = $(this).get(0);
            var controls = $(mbScrollable.options.controls);
            var menu = $(mbScrollable.options.menu);
            if (mbScrollable.elements.size() <= mbScrollable.options.elementsInPage) {
                controls.hide();
            } else {
                controls.fadeIn();
            }
            if (mbScrollable.idx == mbScrollable.totalPages) {
                controls.find(".last").addClass("disabled");
                controls.find(".next").addClass("disabled");
                controls.find(".ui-icon-seek-end").removeClass("ui-state-default").addClass("ui-state-active");
                controls.find(".ui-icon-seek-next").removeClass("ui-state-default").addClass("ui-state-active");
            } else {
                controls.find(".last").removeClass("disabled");
                controls.find(".next").removeClass("disabled");
                controls.find(".ui-icon-seek-end").removeClass("ui-state-active").addClass("ui-state-default");
                controls.find(".ui-icon-seek-next").removeClass("ui-state-active").addClass("ui-state-default");
            }
            if (mbScrollable.idx == 1) {
                controls.find(".first").addClass("disabled");
                controls.find(".prev").addClass("disabled");
                controls.find(".ui-icon-seek-start").removeClass("ui-state-default").addClass("ui-state-active");
                controls.find(".ui-icon-seek-prev").removeClass("ui-state-default").addClass("ui-state-active");
            } else {
                controls.find(".first").removeClass("disabled");
                controls.find(".prev").removeClass("disabled");
                controls.find(".ui-icon-seek-start").removeClass("ui-state-active").addClass("ui-state-default");
                controls.find(".ui-icon-seek-prev").removeClass("ui-state-active").addClass("ui-state-default");
            }
            if (mbScrollable.autoscroll) {
                controls.find(".start").addClass("sel");
                controls.find(".stop").removeClass("sel");
                controls.find(".ui-icon-play").removeClass("ui-state-default").addClass("ui-state-active");
                controls.find(".ui-icon-pause").removeClass("ui-state-active").addClass("ui-state-default");
            } else {
                controls.find(".start").removeClass("sel");
                controls.find(".stop").addClass("sel");
                controls.find(".ui-icon-play").removeClass("ui-state-active").addClass("ui-state-default");
                controls.find(".ui-icon-pause").removeClass("ui-state-default").addClass("ui-state-active");
            }
            controls.find(".idx").html(mbScrollable.idx + " / " + mbScrollable.totalPages);            
            menu.find(".menu-item").removeClass("over").removeClass("sel");
            menu.find(".menu-item").mouseover( function () { $(this).addClass("over"); }); 
            menu.find(".menu-item").mouseout( function () { $(this).removeClass("over"); });             
            menu.find(".menu-item").each( function(index) {        
                //alert($(this).parent().attr("ID") + " - " + $(this).html() + " - " + (index + 1));                        
                if (mbScrollable.idx == (index + 1)) $(this).removeClass("over").addClass("sel").unbind("mouseover mouseout");                
            });                     
        },
        goToPage: function (i, hasAnim)
        {
            var mbScrollable = $(this).get(0);
            var anim = hasAnim ? 0 : mbScrollable.options.slideTimer;
            if (i > mbScrollable.totalPages) i = mbScrollable.totalPages;
            mbScrollable.scrollTo = -((mbScrollable.singleElDim + mbScrollable.options.elementMargin) * (mbScrollable.options.elementsInPage * (i - 1)));
            if (mbScrollable.isVertical) {
                if (mbScrollable.scrollTo < -mbScrollable.elementsDim + mbScrollable.options.height)
                    mbScrollable.scrollTo = -mbScrollable.elementsDim + mbScrollable.options.height;
                $(mbScrollable.mbscrollableStrip).animate({ marginTop: mbScrollable.scrollTo }, anim);
            } else {
                if (mbScrollable.scrollTo < -mbScrollable.elementsDim + mbScrollable.options.width)
                    mbScrollable.scrollTo = -mbScrollable.elementsDim + mbScrollable.options.width;
                $(mbScrollable.mbscrollableStrip).animate({ marginLeft: mbScrollable.scrollTo }, anim);
            }
            mbScrollable.idx = Math.floor(i);
            $(mbScrollable).mbManageControls();
            $(mbScrollable).mbStopAutoscroll();
            mbScrollable.autoScrollActive = false;
        }
    };
    $.fn.mbScrollable = $.mbScrollable.buildMbScrollable;
    $.fn.mbNextPage = $.mbScrollable.mbNextPage;
    $.fn.mbPrevPage = $.mbScrollable.mbPrevPage;
    $.fn.mbFirstPage = $.mbScrollable.mbFirstPage;
    $.fn.mbLastPage = $.mbScrollable.mbLastPage;
    $.fn.mbPageIndex = $.mbScrollable.mbPageIndex;
    $.fn.mbgotoPage = $.mbScrollable.gotoPage;
    $.fn.mbAutoscroll = $.mbScrollable.mbAutoscroll;
    $.fn.mbStopAutoscroll = $.mbScrollable.mbStopAutoscroll;
    $.fn.mbActivateControls = $.mbScrollable.mbActivateControls;
    $.fn.mbManageControls = $.mbScrollable.mbManageControls;
    $.fn.goToPage = $.mbScrollable.goToPage;
        
})(jQuery);
