// Square Library JS - A library of Square Site specific functionality (17 Feb 2012)

// 00_SiteManager.js
function SiteManager(f){this.config=f;this.mode="dev";this.facebook=this.jplayer=this.pringo=this.effects=this.overlays=this.flowplayer=this.assetPath=this.libPath="";var a=this;this.Initialise=function(){this.log("SiteManager - Initialising site");this.setMode();this.setPaths();if(a.config.flowplayer.enabled)a.flowplayer=new FlowplayerManager(a.config.flowplayer),a.flowplayer.loadVideos();if(a.config.overlays)a.overlays=new OverlayManager,a.overlays.loadOverlays();if(a.config.effects.enabled)a.config.effects.items?
(a.effects=new EffectsManager(a.config.effects.items),a.effects.loadEffects(),a.effects.enableEffects()):a.effects=new EffectsManager;if(a.config.pringo.enabled)a.pringo=new PringoManager(a.config.pringo.items),a.pringo.loadLinks();if(a.config.facebook.enabled)a.facebook=new FacebookManager(a.config.facebook),a.facebook.Initialise();if(a.config.localExec.enabled)for(x in a.log("SiteManager - Executing local functions"),a.config.localExec.functions)a.config.localExec.functions[x]();if(a.config.jplayer.enabled)a.jplayer=
new JPlayerManager(a.config.jplayer),a.jplayer.loadAudioPlayers();a.log("SiteManager - Enable Form Handler");a.formHandler();a.ratingHandler();a.log("SiteManager - Initialised site")};this.setMode=function(){this.mode=$j("meta[name=pringo_mode]").attr("content");this.log("SiteManager - Set mode to "+this.mode)};this.setPaths=function(){this.log("SiteManager - Setting paths");this.libPath=this.config.paths[this.mode].libPath;this.log("SiteManager - libPath set to "+this.libPath);this.assetPath=this.config.paths[this.mode].assetPath;
this.log("SiteManager - assetPath set to "+this.assetPath)};this.log=function(a){this.config.logging&&typeof window.console!="undefined"&&typeof window.console.log!="undefined"&&this.mode!="live"&&window.console.log(a)};this.formHandler=function(){$j("input[placeholder], textarea[placeholder]").placeholder();$j("form").each(function(){var c=$j(this),b=c.attr("id");c.submit(function(d){if($j(this).children("input[name=form_use_ajax]").val()==1)a.log("SiteManager - Enabled Form Handler for "+c.attr("action")),
d.preventDefault(),a.config.forms[b].pre();else return a.log("SiteManager - No Form Handler for "+c.attr("action")),!0;var e={};$j("#"+b+" input").each(function(){e[$j(this).attr("name")]=$j(this).val();$j(this).attr("disabled","disabled")});e._pr_form_key=$j("input[name=_pr_form_key]").val();$j.post($j(this).attr("action"),e,function(d){c.children(":input").attr("disabled","");d.success==1?a.config.forms[b].success(d):a.config.forms[b].failure(d)},"json")});a.config.forms&&(a.config.forms[b].validation?
(a.log("SiteManager - Adding form validation for "+b),c.validate({rules:a.config.forms[b].validation,showErrors:a.config.forms[b].errorHandler})):a.log(a.config.forms[b].validation))})};this.padZeros=function(a,b){var a=a.toString(),d="";if(b>a.length)for(i=0;i<b-a.length;i++)d+="0";return d+a.toString()};this.ratingHandler=function(){$j(".rating").each(function(){var c=$j(this),b=$j(this).attr("rel").split(",");a.setStars($j(this),Math.floor(b[0]/b[1]));c.hasClass("select")&&c.children("a").each(function(d){$j(this).hover(function(){a.setStars(c,
d+1)},function(){a.setStars(c,Math.floor(b[0]/b[1]))});$j(this).click(function(){$j(this).addClass("selected");site.pringo.callPringoFunc("ratings/rate","context="+b[2]+"&CONTEXT_ID="+b[3]+"&rating="+(d+1),function(){c.children("a").unbind("mouseenter mouseleave")})})})})};this.setStars=function(a,b){a.children("a").removeClass("on");a.children("a").each(function(a){a<b&&$j(this).addClass("on")})}};

// 01_EffectsManager.js
function EffectsManager(f){this.effects={};this.config=f;var b=this;this.loadEffects=function(){site.log("EffectsManager - Loading Effects");for(var a in this.config){var c=null;site.log("EffectsManager - Adding "+this.config[a].type+" effect for "+a);switch(this.config[a].type){case "imagetraverse":c={path:this.config[a].path,count:0,exec:function(a){b.imageTraverse(a)},file:site.assetPath+this.config[a].file,time:this.config[a].time,speed:this.config[a].speed,total:this.config[a].total,method:"interval",
mouseover:!1,exechandle:null,enabled:!1,extra:function(a){$j(b.effects[a].path+" .switch li").each(function(c){$j(this).mouseover(function(){b.effects[a].mouseover=!0;b.effects[a].count=c});$j(this).mouseout(function(){b.effects[a].mouseover=!1})})}};break;case "scroll":c={path:this.config[a].path,nav:this.config[a].nav,vertical:this.config[a].vertical,exec:function(a){b.scroller(a)},time:0,circular:this.config[a].circular,speed:this.config[a].speed,interval:this.config[a].interval,seek:this.config[a].seek,
enabled:!1,auto:this.config[a].auto};break;case "hover":c={path:this.config[a].path,exec:function(a){b.hover(a)},target:this.config[a].target,targetId:this.config[a].targetId,over:this.config[a].over,leave:this.config[a].leave};break;case "tooltip":c={path:this.config[a].path,exec:function(a){b.tooltip(a)},content:this.config[a].content,fixed:this.config[a].fixed,position:this.config[a].position,showEffect:this.config[a].showEffect,hideEffect:this.config[a].hideEffect};break;case "call":c={path:this.config[a].path,
method:"wait",exec:function(a,c){b.call(a,c)},func:this.config[a].func};break;case "accordion":c={path:this.config[a].path,exec:function(a){b.accordion(a)}}}this.effects[a]=c;site.log("EffectsManager - Added "+this.config[a].type+" effect for "+a)}b.loadDefaultEffects();site.log("EffectsManager - Loaded Effects")};this.loadDefaultEffects=function(){site.log("EffectsManager - Adding Image Gallery");this.effects.default_gallery={path:".image_gallery .scroller",nav:"false",vertical:!1,exec:function(){b.scroller("default_gallery")},
enabled:!1,extra:function(a){$j(b.effects[a].path+" .items li").click(function(){if(!$j(this).hasClass("active")){var c=new Image;c.onload=function(){$j(".image_gallery .full_image").css("background-image","url("+c.src+")")};c.src=$j(this).children("span").html();$j(b.effects[a].path+" .items li").removeClass("active");$j(this).addClass("active")}})},seek:!0};site.log("EffectsManager - Added Image Gallery")};this.reloadEffects=function(){site.log("EffectsManager - Reload Effects");b.enableEffects()};
this.disableGallery=function(){site.log("EffectsManager - Disable Gallery");b.disableEffect("default_gallery")};this.disableEffect=function(a){site.log("EffectsManager - Disable Effect "+a);this.effects[a].enabled=!1};this.enableEffects=function(){site.log("EffectsManager - Enabling Effects");for(var a in b.effects)if($j(b.effects[a].path).length>0&&!b.effects[a].enabled){switch(b.effects[a].method){case "timeout":(function(a){b.effects[a].exechandle=setTimeout(function(){b.effects[a].exec(a)},b.effects[a].time)})(a);
break;case "interval":(function(a){b.effects[a].exechandle=setInterval(function(){b.effects[a].exec(a)},b.effects[a].time)})(a);break;case "wait":break;default:b.effects[a].exec(a)}typeof b.effects[a].extra=="function"&&b.effects[a].extra(a);b.effects[a].enabled=!0;site.log("EffectsManager - Enabled Effect "+a)}site.log("EffectsManager - Enabled Effects")};this.imageTraverse=function(a){site.log("EffectsManager - Next Image Traverse for "+a+" using "+b.effects[a].file+b.effects[a].count+".jpg");b.effects[a].mouseover||
b.effects[a].count++;if(b.effects[a].count>=b.effects[a].total)b.effects[a].count=0;b.transitionImage(a,b.effects[a].file+b.effects[a].count+".jpg")};this.transitionImage=function(a,c,e){var d=new Image,g=b.effects[a]?b.effects[a].speed:1E3;d.onload=function(){$j(b.effects[a].path+" .loader").css("background-image","url("+d.src+")");$j(b.effects[a].path+" .loader").fadeIn(g,function(){$j(b.effects[a].path).css("background-image","url("+d.src+")");$j(b.effects[a].path+" .loader").hide();e&&e.call()})};
d.src=c};this.scroller=function(a){var c=$j(b.effects[a].path).scrollable({vertical:b.effects[a].vertical,circular:b.effects[a].circular,speed:b.effects[a].speed,onSeek:function(c,d){$j(b.effects[a].path+" .items div").each(function(a){$j(this).removeClass("active");a==d&&$j(this).addClass("active")})}});b.effects[a].nav!="false"&&c.navigator({navi:b.effects[a].nav,naviItem:"li",activeClass:"current"});b.effects[a].auto&&c.autoscroll({autoplay:!0,interval:b.effects[a].interval});b.effects[a].seek&&
$j(b.effects[a].path).data("scrollable").seekTo($j(b.effects[a].path+" input[name=seek]").val()-1,0);site.log("EffectsManager - Started Scroller for "+a)};this.hover=function(a){$j(b.effects[a].path).each(function(){var c=$j(this);c.mouseenter(function(){c.addClass("hovering");var e=b.effects[a].target=="child"?c.children(b.effects[a].targetId):c;if(b.effects[a].over.pulse){b.effects[a].over.offOptions.complete=function(){c.hasClass("hovering")&&d()};var d=function(){e.animate(b.effects[a].over.onProperties,
b.effects[a].over.onOptions).animate(b.effects[a].over.offProperties,b.effects[a].over.offOptions)}}else d=function(){e.animate(b.effects[a].over.onProperties,b.effects[a].over.onOptions)};d()});c.mouseleave(function(){c.removeClass("hovering");var e=b.effects[a].target=="child"?c.children(b.effects[a].targetId):c;b.effects[a].leave&&e.animate(b.effects[a].leave.properties,b.effects[a].leave.options)})});site.log("EffectsManager - Started hover for "+a)};this.tooltip=function(a){$j(b.effects[a].path).each(function(){var c=
$j(this);c.simpletip({content:c.attr(b.effects[a].content),fixed:b.effects[a].fixed,position:b.effects[a].position,showEffect:b.effects[a].showEffect,hideEffect:b.effects[a].hideEffect})});site.log("EffectsManager - Started tooltips for "+a)};this.call=function(a,c){$j(b.effects[a].path).each(function(e){b.effects[a].func($j(this),e,c)});site.log("EffectsManager - Called effect "+a)};this.accordion=function(a){$j.fn.accordion.defaults.container=!1;$j(b.effects[a].path).accordion({standardExpansible:!0});
site.log("EffectsManager - Started accordion for "+a)}};

// 02_FacebookManager.js
function FacebookManager(b){this.config=b;var a=this;this.Initialise=function(){site.log("FacebookManager - Initialising Facebook");window.fbAsyncInit=function(){FB.init({appId:a.config.app_id,status:!0,cookie:!0,xfbml:!0});site.log("FacebookManager - Initialised Facebook");a.config.onLike&&(site.log("FacebookManager - Configured Like Event"),FB.Event.subscribe("edge.create",function(){a.config.onLike()}))};(function(){var a=document.createElement("script");a.src=document.location.protocol+"//connect.facebook.net/en_US/all.js";
a.async=!0;document.getElementById("fb-root").appendChild(a)})()};this.Login=function(){site.log("FacebookManager - Login")};this.Logout=function(){site.log("FacebookManager - Logout")}};

// 03_FlowplayerManager.js
function FlowplayerManager(e){this.videoplayers=[];this.videos=[];this.config=e;var d=this;this.loadVideos=function(){site.log("FlowplayerManager - Loading flowplayer video instances");this.config.video.plugins.youtube={url:site.libPath+"/flash/flowplayer/flowplayer.youtube.swf",enableGdata:!0};"play"in this.config.video&&"url"in this.config.video.play&&(this.config.video.play.url=site.assetPath+this.config.video.play.url);this.videoplayers=$j(".videoplayer").flowplayer({src:site.libPath+"/flash/flowplayer/flowplayer.commercial.swf",
wmode:"opaque"},{key:this.config.key,play:this.config.video.play,logo:this.config.video.logo,clip:this.config.video.clip,plugins:this.config.video.plugins,canvas:this.config.video.canvas});for(var a=0;a<this.videoplayers.length;a++)d.videos[this.videoplayers[a].id]=a,d.setVideo(this.videoplayers[a].id,$j("#"+this.videoplayers[a].id).attr("rel"));$f("*").each(function(a){this.controls($j("div.videocontrols").get(a),{duration:0});this.playlist("div.playlist",{loop:!0})});site.log("FlowplayerManager - Loaded flowplayer video instances")};
this.loadVideo=function(a,b,c){c==null&&(c=!1);site.log("FlowplayerManager - Load video "+a+" ("+b+")");b&&this.setVideo(a,b);this.videoplayers.flowplayer(this.videos[a]).load();c&&this.videoplayers.flowplayer(this.videos[a]).play()};this.unloadVideo=function(a){site.log("FlowplayerManager - Unload video from"+a);this.videoplayers.flowplayer(this.videos[a]).stop();this.videoplayers.flowplayer(this.videos[a]).unload()};this.setVideo=function(a,b,c){this.videoplayers.flowplayer(this.videos[a]).stop();
c==null&&(c=!1);site.log("FlowplayerManager - Set new video "+a+"("+b+")");this.checkProvider(a);this.videoplayers.flowplayer(this.videos[a]).getClip(0).update({url:b});c&&this.videoplayers.flowplayer(this.videos[a]).play()};this.getRel=function(a){var b=this.videoplayers;for(x in b[this.videos[a]].attributes)if(b[this.videos[a]].attributes[x].name=="rel")return b[this.videos[a]].attributes[x].nodeValue};this.checkProvider=function(a){var b=this.videoplayers[this.videos[a]].className.split(" ");for(x in b)switch(b[x]){case "video-type-youtube":site.log("FlowplayerManager - Set video provider to Youtube"),
this.videoplayers.flowplayer(this.videos[a]).getClip(0).update({provider:"youtube",urlResolvers:"youtube"})}};this.SetYoutubeQuality=function(a){$j("#"+a).hasClass("yt_normal")&&(site.log("FlowplayerManager - Set video to normal res"),this.videoplayers.flowplayer(this.videos[a]).isLoaded()&&this.videoplayers.flowplayer(this.videos[a]).getPlugin("youtube").setPlaybackQuality("medium"));$j("#"+a).hasClass("yt_large")&&(site.log("FlowplayerManager - Set video to large res"),this.videoplayers.flowplayer(this.videos[a]).isLoaded()&&
this.videoplayers.flowplayer(this.videos[a]).getPlugin("youtube").setPlaybackQuality("large"));$j("#"+a).hasClass("yt_hd720")&&(site.log("FlowplayerManager - Set video to hd720 res"),this.videoplayers.flowplayer(this.videos[a]).isLoaded()&&this.videoplayers.flowplayer(this.videos[a]).getPlugin("youtube").setPlaybackQuality("hd720"))};this.playerStatus=function(){for(x in this.videos)site.log("FlowplayerManager - "+x+" - "+this.videos[x]),site.log(this.videoplayers.flowplayer(this.videos[x]).getClip(0))};
this.playerFunction=function(a,b){switch(b){case "fullscreen":this.videoplayers.flowplayer(this.videos[a]).toggleFullscreen()}}};

// 04_OverlayManager.js
function OverlayManager(){var c=this;this.loadOverlays=function(){site.log("OverlayManager - Loading overlays");$j(".overlaytrigger[rel]").each(function(){$j(this).hasClass("video_overlay")?(id=$j($j(this).attr("rel")+" .videoplayer").attr("id"),c.loadVideoOverlay($j(this),id),site.log("OverlayManager - Loaded video overlay")):$j(this).hasClass("auto_overlay")?(c.loadPageOverlay($j(this),!0),site.log("OverlayManager - Loaded auto overlay")):(c.loadPageOverlay($j(this),!1),site.log("OverlayManager - Loaded page overlay"))});
site.log("OverlayManager - Loaded overlays")};this.loadVideoOverlay=function(a,b){a.overlay({mask:{opacity:0},fixed:!1,left:"center",onBeforeLoad:function(){a.hasClass("hd")?($j(".overlay-video").removeClass("ov_sd"),$j(".overlay-video").addClass("ov_hd")):($j(".overlay-video").addClass("ov_sd"),$j(".overlay-video").removeClass("ov_hd"))},onLoad:function(){site.log("OverlayManager - Loading video overlay "+b);site.flowplayer.setVideo(b,a.attr("target"),!0)},onClose:function(){site.log("OverlayManager - Closing video overlay "+
b);site.flowplayer.unloadVideo(b)}})};this.loadPageOverlay=function(a,b){a.overlay({mask:{color:"#000000",opacity:0.95},fixed:!1,left:"center",onBeforeLoad:function(){this.getOverlay().find(".content").load(a.attr("target"),function(){site.effects&&site.effects.reloadEffects()})},onLoad:function(){site.log("OverlayManager - Loading page overlay ")},onClose:function(){site.log("OverlayManager - Closing page overlay ");site.effects&&site.effects.disableGallery();this.getOverlay().find(".content").html("")},
load:b})}};

// 05_PringoManager.js
function PringoManager(f){this.items=f;var b=this;this.call=function(a,b,e,d){$j.ajax({type:"GET",url:a,data:b,dataType:d,success:e,error:function(a,b,c){site.log(b+"("+c+")")}})};this.callPringoFunc=function(a,c,e,d){b.call("/?func="+a,c,e,d)};this.loadPringoObject=function(a,b,e,d){d||(d=function(){});this.callPringoFunc("object&object="+a,b,function(a){$j(e).html(a);d()},"html")};this.loadLinks=function(){site.log("PringoManager - Loading links");for(x in this.items)(function(a){$j(".pringo-item-"+
a).unbind("click");$j(".pringo-item-"+a).click(function(){$j(this).hasClass("selected")||(b.loadItem({id:$j(this).attr("rel"),item:a}),b.items[a].select&&($j(".pringo-item-"+a).removeClass("selected"),$j(this).addClass("selected")))})})(x)};this.loadItem=function(a){site.log("PringoManager - Loading item "+a.item);b.items[a.item].pre(function(){var c={};b.items[a.item].key&&(c[b.items[a.item].key]=a.id);b.items[a.item].func?b.callPringoFunc(b.items[a.item].func,c,b.items[a.item].post,b.items[a.item].type):
b.call(b.items[a.item].page,c,b.items[a.item].post,b.items[a.item].type)})};this.loadPostCalender=function(a){site.log("PringoManager - Loading post calender");this.callPringoFunc("square_articles/calendar_update",a,function(b){$j(a.target).html(b)})};this.setLocale=function(a){site.log("PringoManager - Set locale to "+a);this.callPringoFunc("languages/setjumpless&locale="+a,params,function(){return!1});return!1};this.loadVideo=function(a,b){site.log("PringoManager - Change video "+a);site.videos.unloadVideo("videoplayer");
$j.ajax({type:"GET",url:"/?func=object&object=get_video",data:b,dataType:"text/html",success:function(b){var d=b.split("|"),c=new Image;c.onload=function(){$j("#"+a).css("background-image","url("+c.src+")");site.videos.setVideo(a,d[1]);site.overlays.loadOverlays()};c.src=d[0]}})}};

// 06_JPlayerManager.js
function JPlayerManager(b){this.config=b;this.jplayers={};this.loadAudioPlayers=function(){$j(".jp-jplayer").each(function(){var a=$j(this).attr("id"),b=a.replace("jquery_jplayer","jp_container");$j("#"+a).jPlayer({ready:function(){$j(this).jPlayer("setMedia",{mp3:$j("#"+a).attr("rel")})},swfPath:site.libPath+"/flash/jplayer",supplied:"mp3",wmode:"window",cssSelectorAncestor:"#"+b});$j("#"+a).bind($j.jPlayer.event.play,function(){$j(this).jPlayer("pauseOthers")})})}};


