jQuery.extend({substitute:function(b,a,c){jQuery.each(a,function(d,e){if(e==null){e=c||""}b=b.replace(new RegExp("\\{"+d+"\\}","g"),e)});return b},camelize:function(a){return a?jQuery.map(a.split(/[ -]/),function(b){return b.charAt(0).toUpperCase()+b.substr(1)}).join(""):""}});(function(d){d.prettyPhoto={version:"3.1.2"};d.fn.prettyPhoto=function(f){f=jQuery.extend({animation_speed:"fast",slideshow:5000,autoplay_slideshow:false,opacity:0.8,show_title:true,allow_resize:true,default_width:500,default_height:344,counter_separator_label:"/",theme:"pp_default",horizontal_padding:20,hideflash:false,wmode:"opaque",autoplay:true,modal:false,deeplinking:true,overlay_gallery:true,keyboard_shortcuts:true,changepicturecallback:function(){},callback:function(){},ie6_fallback:true,markup:'<div class="pp_pic_holder"><div class="ppt">&nbsp;</div><div class="pp_top"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div><div class="pp_content_container"><div class="pp_left"><div class="pp_right"><div class="pp_content"><div class="pp_loaderIcon"></div><div class="pp_fade"><a href="#" class="pp_expand" title="Expand the image">Expand</a><div class="pp_hoverContainer"><a class="pp_next" href="#">next</a><a class="pp_previous" href="#">previous</a></div><div id="pp_full_res"></div><div class="pp_details"><div class="pp_nav"><a href="#" class="pp_arrow_previous">Previous</a><p class="currentTextHolder">0/0</p><a href="#" class="pp_arrow_next">Next</a></div><p class="pp_description"></p>{pp_social}<a class="pp_close" href="#">Close</a></div></div></div></div></div></div><div class="pp_bottom"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div></div><div class="pp_overlay"></div>',gallery_markup:'<div class="pp_gallery"><a href="#" class="pp_arrow_previous">Previous</a><div><ul>{gallery}</ul></div><a href="#" class="pp_arrow_next">Next</a></div>',image_markup:'<img id="fullResImage" src="{path}" />',flash_markup:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',quicktime_markup:'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',iframe_markup:'<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',inline_markup:'<div class="pp_inline">{content}</div>',custom_markup:"",social_tools:'<div class="pp_social"><div class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"><\/script></div><div class="facebook"><iframe src="http://www.facebook.com/plugins/like.php?locale=en_US&href='+location.href+'&amp;layout=button_count&amp;show_faces=true&amp;width=500&amp;action=like&amp;font&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div></div>'},f);var n=this,m=false,t,r,s,u,x,y,h=d(window).height(),B=d(window).width(),j;doresize=true,scroll_pos=z();d(window).unbind("resize.prettyphoto").bind("resize.prettyphoto",function(){q();w()});if(f.keyboard_shortcuts){d(document).unbind("keydown.prettyphoto").bind("keydown.prettyphoto",function(C){if(typeof $pp_pic_holder!="undefined"){if($pp_pic_holder.is(":visible")){switch(C.keyCode){case 37:d.prettyPhoto.changePage("previous");C.preventDefault();break;case 39:d.prettyPhoto.changePage("next");C.preventDefault();break;case 27:if(!settings.modal){d.prettyPhoto.close()}C.preventDefault();break}}}})}d.prettyPhoto.initialize=function(){settings=f;if(settings.theme=="pp_default"){settings.horizontal_padding=16}if(settings.ie6_fallback&&d.browser.msie&&parseInt(d.browser.version)==6){settings.theme="light_square"}theRel=d(this).attr("rel");galleryRegExp=/\[(?:.*)\]/;isSet=(galleryRegExp.exec(theRel))?true:false;pp_images=(isSet)?jQuery.map(n,function(D,C){if(d(D).attr("rel").indexOf(theRel)!=-1){return d(D).attr("href")}}):d.makeArray(d(this).attr("href"));pp_titles=(isSet)?jQuery.map(n,function(D,C){if(d(D).attr("rel").indexOf(theRel)!=-1){return(d(D).find("img").attr("alt"))?d(D).find("img").attr("alt"):""}}):d.makeArray(d(this).find("img").attr("alt"));pp_descriptions=(isSet)?jQuery.map(n,function(D,C){if(d(D).attr("rel").indexOf(theRel)!=-1){return(d(D).attr("title"))?d(D).attr("title"):""}}):d.makeArray(d(this).attr("title"));set_position=jQuery.inArray(d(this).attr("href"),pp_images);rel_index=(isSet)?set_position:d("a[rel^='"+theRel+"']").index(d(this));g(this);if(settings.allow_resize){d(window).bind("scroll.prettyphoto",function(){q()})}d.prettyPhoto.open();return false};d.prettyPhoto.open=function(C){if(typeof settings=="undefined"){settings=f;if(d.browser.msie&&d.browser.version==6){settings.theme="light_square"}pp_images=d.makeArray(arguments[0]);pp_titles=(arguments[1])?d.makeArray(arguments[1]):d.makeArray("");pp_descriptions=(arguments[2])?d.makeArray(arguments[2]):d.makeArray("");isSet=(pp_images.length>1)?true:false;set_position=0;g(C.target)}if(d.browser.msie&&d.browser.version==6){d("select").css("visibility","hidden")}if(settings.hideflash){d("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","hidden")}l(d(pp_images).size());d(".pp_loaderIcon").show();if($ppt.is(":hidden")){$ppt.css("opacity",0).show()}$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);$pp_pic_holder.find(".currentTextHolder").text((set_position+1)+settings.counter_separator_label+d(pp_images).size());if(pp_descriptions[set_position]!=""){$pp_pic_holder.find(".pp_description").show().html(unescape(pp_descriptions[set_position]))}else{$pp_pic_holder.find(".pp_description").hide()}movie_width=(parseFloat(a("width",pp_images[set_position])))?a("width",pp_images[set_position]):settings.default_width.toString();movie_height=(parseFloat(a("height",pp_images[set_position])))?a("height",pp_images[set_position]):settings.default_height.toString();m=false;if(movie_height.indexOf("%")!=-1){movie_height=parseFloat((d(window).height()*parseFloat(movie_height)/100)-150);m=true}if(movie_width.indexOf("%")!=-1){movie_width=parseFloat((d(window).width()*parseFloat(movie_width)/100)-150);m=true}$pp_pic_holder.fadeIn(function(){(settings.show_title&&pp_titles[set_position]!=""&&typeof pp_titles[set_position]!="undefined")?$ppt.html(unescape(pp_titles[set_position])):$ppt.html("&nbsp;");imgPreloader="";skipInjection=false;switch(A(pp_images[set_position])){case"image":imgPreloader=new Image();nextImage=new Image();if(isSet&&set_position<d(pp_images).size()-1){nextImage.src=pp_images[set_position+1]}prevImage=new Image();if(isSet&&pp_images[set_position-1]){prevImage.src=pp_images[set_position-1]}$pp_pic_holder.find("#pp_full_res")[0].innerHTML=settings.image_markup.replace(/{path}/g,pp_images[set_position]);imgPreloader.onload=function(){t=p(imgPreloader.width,imgPreloader.height);k()};imgPreloader.onerror=function(){alert("Image cannot be loaded. Make sure the path is correct and image exist.");d.prettyPhoto.close()};imgPreloader.src=pp_images[set_position];break;case"youtube":t=p(movie_width,movie_height);movie="http://www.youtube.com/embed/"+a("v",pp_images[set_position]);(a("rel",pp_images[set_position]))?movie+="?rel="+a("rel",pp_images[set_position]):movie+="?rel=1";if(settings.autoplay){movie+="&autoplay=1"}toInject=settings.iframe_markup.replace(/{width}/g,t.width).replace(/{height}/g,t.height).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);break;case"vimeo":t=p(movie_width,movie_height);movie_id=pp_images[set_position];var E=/http:\/\/(www\.)?vimeo.com\/(\d+)/;var D=movie_id.match(E);movie="http://player.vimeo.com/video/"+D[2]+"?title=0&amp;byline=0&amp;portrait=0";if(settings.autoplay){movie+="&autoplay=1;"}vimeo_width=t.width+"/embed/?moog_width="+t.width;toInject=settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,t.height).replace(/{path}/g,movie);break;case"quicktime":t=p(movie_width,movie_height);t.height+=15;t.contentHeight+=15;t.containerHeight+=15;toInject=settings.quicktime_markup.replace(/{width}/g,t.width).replace(/{height}/g,t.height).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);break;case"flash":t=p(movie_width,movie_height);flash_vars=pp_images[set_position];flash_vars=flash_vars.substring(pp_images[set_position].indexOf("flashvars")+10,pp_images[set_position].length);filename=pp_images[set_position];filename=filename.substring(0,filename.indexOf("?"));toInject=settings.flash_markup.replace(/{width}/g,t.width).replace(/{height}/g,t.height).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+"?"+flash_vars);break;case"iframe":t=p(movie_width,movie_height);frame_url=pp_images[set_position];frame_url=frame_url.substr(0,frame_url.indexOf("iframe")-1);toInject=settings.iframe_markup.replace(/{width}/g,t.width).replace(/{height}/g,t.height).replace(/{path}/g,frame_url);break;case"ajax":doresize=false;t=p(movie_width,movie_height);doresize=true;skipInjection=true;d.get(pp_images[set_position],function(F){toInject=settings.inline_markup.replace(/{content}/g,F);$pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject;k()});break;case"custom":t=p(movie_width,movie_height);toInject=settings.custom_markup;break;case"inline":myClone=d(pp_images[set_position]).clone().append('<br clear="all" />').css({width:settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo(d("body")).show();doresize=false;t=p(d(myClone).width(),d(myClone).height());doresize=true;d(myClone).remove();toInject=settings.inline_markup.replace(/{content}/g,d(pp_images[set_position]).html());break}if(!imgPreloader&&!skipInjection){$pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject;k()}});return false};d.prettyPhoto.changePage=function(C){currentGalleryPage=0;if(C=="previous"){set_position--;if(set_position<0){set_position=d(pp_images).size()-1}}else{if(C=="next"){set_position++;if(set_position>d(pp_images).size()-1){set_position=0}}else{set_position=C}}rel_index=set_position;if(!doresize){doresize=true}d(".pp_contract").removeClass("pp_contract").addClass("pp_expand");o(function(){d.prettyPhoto.open()})};d.prettyPhoto.changeGalleryPage=function(C){if(C=="next"){currentGalleryPage++;if(currentGalleryPage>totalPage){currentGalleryPage=0}}else{if(C=="previous"){currentGalleryPage--;if(currentGalleryPage<0){currentGalleryPage=totalPage}}else{currentGalleryPage=C}}slide_speed=(C=="next"||C=="previous")?settings.animation_speed:0;slide_to=currentGalleryPage*(itemsPerPage*itemWidth);$pp_gallery.find("ul").animate({left:-slide_to},slide_speed)};d.prettyPhoto.startSlideshow=function(){if(typeof j=="undefined"){$pp_pic_holder.find(".pp_play").unbind("click").removeClass("pp_play").addClass("pp_pause").click(function(){d.prettyPhoto.stopSlideshow();return false});j=setInterval(d.prettyPhoto.startSlideshow,settings.slideshow)}else{d.prettyPhoto.changePage("next")}};d.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find(".pp_pause").unbind("click").removeClass("pp_pause").addClass("pp_play").click(function(){d.prettyPhoto.startSlideshow();return false});clearInterval(j);j=undefined};d.prettyPhoto.close=function(){if($pp_overlay.is(":animated")){return}d.prettyPhoto.stopSlideshow();$pp_pic_holder.stop().find("object,embed").css("visibility","hidden");d("div.pp_pic_holder,div.ppt,.pp_fade").fadeOut(settings.animation_speed,function(){d(this).remove()});$pp_overlay.fadeOut(settings.animation_speed,function(){if(d.browser.msie&&d.browser.version==6){d("select").css("visibility","visible")}if(settings.hideflash){d("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","visible")}d(this).remove();d(window).unbind("scroll.prettyphoto");settings.callback();doresize=true;r=false;delete settings})};function k(){d(".pp_loaderIcon").hide();projectedTop=scroll_pos.scrollTop+((h/2)-(t.containerHeight/2));if(projectedTop<0){projectedTop=0}$ppt.fadeTo(settings.animation_speed,1);$pp_pic_holder.find(".pp_content").animate({height:t.contentHeight,width:t.contentWidth},settings.animation_speed);$pp_pic_holder.animate({top:projectedTop,left:(B/2)-(t.containerWidth/2),width:t.containerWidth},settings.animation_speed,function(){$pp_pic_holder.find(".pp_hoverContainer,#fullResImage").height(t.height).width(t.width);$pp_pic_holder.find(".pp_fade").fadeIn(settings.animation_speed);if(isSet&&A(pp_images[set_position])=="image"){$pp_pic_holder.find(".pp_hoverContainer").show()}else{$pp_pic_holder.find(".pp_hoverContainer").hide()}if(t.resized){d("a.pp_expand,a.pp_contract").show()}else{d("a.pp_expand").hide()}if(settings.autoplay_slideshow&&!j&&!r){d.prettyPhoto.startSlideshow()}if(settings.deeplinking){b()}settings.changepicturecallback();r=true});e()}function o(C){$pp_pic_holder.find("#pp_full_res object,#pp_full_res embed").css("visibility","hidden");$pp_pic_holder.find(".pp_fade").fadeOut(settings.animation_speed,function(){d(".pp_loaderIcon").show();C()})}function l(C){(C>1)?d(".pp_nav").show():d(".pp_nav").hide()}function p(D,C){resized=false;v(D,C);imageWidth=D,imageHeight=C;if(((y>B)||(x>h))&&doresize&&settings.allow_resize&&!m){resized=true,fitting=false;while(!fitting){if((y>B)){imageWidth=(B-200);imageHeight=(C/D)*imageWidth}else{if((x>h)){imageHeight=(h-200);imageWidth=(D/C)*imageHeight}else{fitting=true}}x=imageHeight,y=imageWidth}v(imageWidth,imageHeight);if((y>B)||(x>h)){p(y,x)}}return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(x),containerWidth:Math.floor(y)+(settings.horizontal_padding*2),contentHeight:Math.floor(s),contentWidth:Math.floor(u),resized:resized}}function v(D,C){D=parseFloat(D);C=parseFloat(C);$pp_details=$pp_pic_holder.find(".pp_details");$pp_details.width(D);detailsHeight=parseFloat($pp_details.css("marginTop"))+parseFloat($pp_details.css("marginBottom"));$pp_details=$pp_details.clone().addClass(settings.theme).width(D).appendTo(d("body")).css({position:"absolute",top:-10000});detailsHeight+=$pp_details.height();detailsHeight=(detailsHeight<=34)?36:detailsHeight;if(d.browser.msie&&d.browser.version==7){detailsHeight+=8}$pp_details.remove();$pp_title=$pp_pic_holder.find(".ppt");$pp_title.width(D);titleHeight=parseFloat($pp_title.css("marginTop"))+parseFloat($pp_title.css("marginBottom"));$pp_title=$pp_title.clone().appendTo(d("body")).css({position:"absolute",top:-10000});titleHeight+=$pp_title.height();$pp_title.remove();s=C+detailsHeight;u=D;x=s+titleHeight+$pp_pic_holder.find(".pp_top").height()+$pp_pic_holder.find(".pp_bottom").height();y=D}function A(C){if(C.match(/youtube\.com\/watch/i)){return"youtube"}else{if(C.match(/vimeo\.com/i)){return"vimeo"}else{if(C.match(/\b.mov\b/i)){return"quicktime"}else{if(C.match(/\b.swf\b/i)){return"flash"}else{if(C.match(/\biframe=true\b/i)){return"iframe"}else{if(C.match(/\bajax=true\b/i)){return"ajax"}else{if(C.match(/\bcustom=true\b/i)){return"custom"}else{if(C.substr(0,1)=="#"){return"inline"}else{return"image"}}}}}}}}}function q(){if(doresize&&typeof $pp_pic_holder!="undefined"){scroll_pos=z();contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width();projectedTop=(h/2)+scroll_pos.scrollTop-(contentHeight/2);if(projectedTop<0){projectedTop=0}if(contentHeight>h){return}$pp_pic_holder.css({top:projectedTop,left:(B/2)+scroll_pos.scrollLeft-(contentwidth/2)})}}function z(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}}else{if(document.documentElement&&document.documentElement.scrollTop){return{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}}else{if(document.body){return{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}}}}}function w(){h=d(window).height(),B=d(window).width();if(typeof $pp_overlay!="undefined"){$pp_overlay.height(d(document).height()).width(B)}}function e(){if(isSet&&settings.overlay_gallery&&A(pp_images[set_position])=="image"&&(settings.ie6_fallback&&!(d.browser.msie&&parseInt(d.browser.version)==6))){itemWidth=52+5;navWidth=(settings.theme=="facebook"||settings.theme=="pp_default")?50:30;itemsPerPage=Math.floor((t.containerWidth-100-navWidth)/itemWidth);itemsPerPage=(itemsPerPage<pp_images.length)?itemsPerPage:pp_images.length;totalPage=Math.ceil(pp_images.length/itemsPerPage)-1;if(totalPage==0){navWidth=0;$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").hide()}else{$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").show()}galleryWidth=itemsPerPage*itemWidth;fullGalleryWidth=pp_images.length*itemWidth;$pp_gallery.css("margin-left",-((galleryWidth/2)+(navWidth/2))).find("div:first").width(galleryWidth+5).find("ul").width(fullGalleryWidth).find("li.selected").removeClass("selected");goToPage=(Math.floor(set_position/itemsPerPage)<totalPage)?Math.floor(set_position/itemsPerPage):totalPage;d.prettyPhoto.changeGalleryPage(goToPage);$pp_gallery_li.filter(":eq("+set_position+")").addClass("selected")}else{$pp_pic_holder.find(".pp_content").unbind("mouseenter mouseleave")}}function g(C){settings.markup=settings.markup.replace("{pp_social}",(settings.social_tools)?settings.social_tools:"");d("body").append(settings.markup);$pp_pic_holder=d(".pp_pic_holder"),$ppt=d(".ppt"),$pp_overlay=d("div.pp_overlay");if(isSet&&settings.overlay_gallery){currentGalleryPage=0;toInject="";for(var D=0;D<pp_images.length;D++){if(!pp_images[D].match(/\b(jpg|jpeg|png|gif)\b/gi)){classname="default";img_src=""}else{classname="";img_src=pp_images[D]}toInject+="<li class='"+classname+"'><a href='#'><img src='"+img_src+"' width='50' alt='' /></a></li>"}toInject=settings.gallery_markup.replace(/{gallery}/g,toInject);$pp_pic_holder.find("#pp_full_res").after(toInject);$pp_gallery=d(".pp_pic_holder .pp_gallery"),$pp_gallery_li=$pp_gallery.find("li");$pp_gallery.find(".pp_arrow_next").click(function(){d.prettyPhoto.changeGalleryPage("next");d.prettyPhoto.stopSlideshow();return false});$pp_gallery.find(".pp_arrow_previous").click(function(){d.prettyPhoto.changeGalleryPage("previous");d.prettyPhoto.stopSlideshow();return false});$pp_pic_holder.find(".pp_content").hover(function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeIn()},function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeOut()});itemWidth=52+5;$pp_gallery_li.each(function(E){d(this).find("a").click(function(){d.prettyPhoto.changePage(E);d.prettyPhoto.stopSlideshow();return false})})}if(settings.slideshow){$pp_pic_holder.find(".pp_nav").prepend('<a href="#" class="pp_play">Play</a>');$pp_pic_holder.find(".pp_nav .pp_play").click(function(){d.prettyPhoto.startSlideshow();return false})}$pp_pic_holder.attr("class","pp_pic_holder "+settings.theme);$pp_overlay.css({opacity:0,height:d(document).height(),width:d(window).width()}).bind("click",function(){if(!settings.modal){d.prettyPhoto.close()}});d("a.pp_close").bind("click",function(){d.prettyPhoto.close();return false});d("a.pp_expand").bind("click",function(E){if(d(this).hasClass("pp_expand")){d(this).removeClass("pp_expand").addClass("pp_contract");doresize=false}else{d(this).removeClass("pp_contract").addClass("pp_expand");doresize=true}o(function(){d.prettyPhoto.open()});return false});$pp_pic_holder.find(".pp_previous, .pp_nav .pp_arrow_previous").bind("click",function(){d.prettyPhoto.changePage("previous");d.prettyPhoto.stopSlideshow();return false});$pp_pic_holder.find(".pp_next, .pp_nav .pp_arrow_next").bind("click",function(){d.prettyPhoto.changePage("next");d.prettyPhoto.stopSlideshow();return false});q()}if(!pp_alreadyInitialized&&c()){pp_alreadyInitialized=true;hashIndex=c();hashRel=hashIndex;hashIndex=hashIndex.substring(hashIndex.indexOf("/")+1,hashIndex.length-1);hashRel=hashRel.substring(0,hashRel.indexOf("/"));setTimeout(function(){d("a[rel^='"+hashRel+"']:eq("+hashIndex+")").trigger("click")},50)}return this.unbind("click.prettyphoto").bind("click.prettyphoto",d.prettyPhoto.initialize)};function c(){url=location.href;hashtag=(url.indexOf("#!")!=-1)?decodeURI(url.substring(url.indexOf("#!")+2,url.length)):false;return hashtag}function b(){if(typeof theRel=="undefined"){return}location.hash="!"+theRel+"/"+rel_index+"/"}function a(g,f){g=g.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+g+"=([^&#]*)";var j=new RegExp(e);var h=j.exec(f);return(h==null)?"":h[1]}})(jQuery);var pp_alreadyInitialized=false;(function(a){a.fn.attachConfirm=function(b){b=b||"Er du sikker på at du vil slette dette elementet?";return this.click(function(c){if(!confirm(b)){c.preventDefault()}})}})(jQuery);(function(a){a.fn.attachCityLookup=function(b){var e=this;b=a.extend({},a.fn.attachCityLookup.defaults,b);function d(){var f=e.val();if(f.length==4){a.getJSON(b.bringApi+f+"&callback=?",c)}else{a(b.target).val("")}}function c(h){if(b.target){var f=a(b.target),g=h.valid?h.result:"";f[f.is(":input")?"val":"text"](g)}if(typeof b.callback==="function"){b.callback.call(e[0])}}return this.keyup(d)};a.fn.attachCityLookup.defaults={bringApi:"http://fraktguide.bring.no/fraktguide/postalCode.json?pnr=",target:"",callback:null}})(jQuery);var TURO=(function(){var b=null,a=null;return{initAccountTabs:function(){$("#account ul li a").click(function(f){var d=$(this),c=this.hash.slice(1);if(c==""){return}f.preventDefault();d.closest("ul").find("li").removeClass("selected");d.parent().addClass("selected");d.closest("div").find("section").hide().filter("."+c).show()})},init:function(){$.each(document.body.className.split(" "),function(){if(this.length==0){return true}var c=$.camelize(this);if(typeof TURO[c]!=="undefined"&&typeof TURO[c].init=="function"){TURO[c].init()}});this.initAccountTabs();$("a[rel^='blogginnlegg']").prettyPhoto({theme:"facebook",overlay_gallery:false,social_tools:false,callback:function(){if(window.location.hash.toString().match(/^#!blogginnlegg-\d+.+$/)){window.location.hash=""}}});$("input[name=postnr]").attachCityLookup({target:$("input[name=psted]")});$("body.bruker.ny form").submit(function(c){$(this).find('button[name="save"]').attr("disabled","disabled")})}}})();$(document).ready(function(){TURO.init()});TURO.Forside={gMap:null,klubber:{},kart:null,defaultZoom:11,minZoom:7,mapInitialized:false,visibleMarkers:{},visibleMapBanner:true,highlightedMarkers:[],boundsChanges:0,inSearch:false,init:function(){this.gMap=this.initGoogleMaps("map",{zoomControlOptions:{style:google.maps.ZoomControlStyle.LARGE,position:google.maps.ControlPosition.LEFT_CENTER},minZoom:this.minZoom});this.initGmapEvents();this.initMapBanner();this.initFindPos();this.initSearchBox();if($("#map").is(":visible")){this.getKartData()}$("#deltakelser .klippekortStatus:has(a)").css("cursor","pointer").click(function(a){if(a.target.nodeName.toLowerCase()!="a"){window.location=$(this).find("a:first").attr("href")}})},initGmapEvents:function(){var a=this;google.maps.event.addListener(this.gMap,"bounds_changed",function(){if(a.boundsChanges<2){a.boundsChanges++}if(a.mapInitialized){a.updateMarkers()}});google.maps.event.addListener(this.gMap,"idle",function(){if(a.mapInitialized){if(a.boundsChanges==2){a.displayKlubber()}}});google.maps.event.addListener(this.gMap,"drag",function(){if(a.mapInitialized){a.inSearch=false}})},initSearchBox:function(){var a=this;$("#search form").submit(function(b){b.preventDefault();a.findLocation()});$("#search form input.text").focus(function(){a.showMap()})},initFindPos:function(){var a=this,d=$("p.findPos");function c(f){var e=new google.maps.LatLng(parseFloat(f.coords.latitude),parseFloat(f.coords.longitude));a.gMap.setCenter(e)}function b(e){a.displayMapBanner($("<h2>").text("Vi kan dessverre ikke lokalisere din posisjon."))}if(typeof navigator.geolocation=="undefined"){d.hide()}else{d.find("a").click(function(f){f.preventDefault();a.showMap();$("#map").bind("mapInitialized",function(){navigator.geolocation.getCurrentPosition(c,b)})})}},showMap:function(){var a=this,b=$("#map");if(b.is(":hidden")){b.slideDown(200,function(){google.maps.event.trigger(a.gMap,"resize")});a.getKartData()}},mapLoaded:function(){this.mapInitialized=true;this.hideSpinner();$("#map").trigger("mapInitialized")},displaySpinner:function(){var a='<div id="loading-map"><div class="spinner">&nbsp;</div></div>',b=$("#loading-map");if($("#map").is(":not(:hidden)")&&b.length==0){$("div.main").prepend($(a))}else{b.fadeIn(200)}},hideSpinner:function(){$("#loading-map").fadeOut(150)},getKartData:function(){var a=this;this.displaySpinner();$.get("/?hentkart",function(b){for(i in b){var c=b[i];pos=new google.maps.LatLng(parseFloat(c.kartlat),parseFloat(c.kartlng));c.marker=a.getMarker(pos);a.addClickListener(c)}a.kart=b;if(a.kart!=null){a.moveToLastKnownPosition();a.mapLoaded();a.updateMarkers()}else{a.displayMapBanner($("<h2>").text("Ingen orienteringskart å hente."))}},"json").error(function(c,b,d){a.displayMapBanner($("<h2>").text("Kunne ikke hente orienteringskart."))})},addClickListener:function(b){var a=this,c=$("#map");google.maps.event.addListener(b.marker,"click",function(){if(c.data("selectedMarker")&&c.data("selectedMarker").marker==b.marker){return false}a.resetHighlightedMarkers();a.gMap.setCenter(b.marker.position);a.setSelectedMarker(b);a.highlightMarkers()})},setSelectedMarker:function(a){$("#map").data("selectedMarker",a);if(typeof localStorage!="undefined"&&a!=null){localStorage.setItem("selectedMarker",a.marker.position.toUrlValue(5))}},getSelectedMarker:function(){return $("#map").data("selectedMarker")||null},moveToLastKnownPosition:function(){var a,c=$("#map");if(typeof localStorage!="undefined"&&(a=localStorage.getItem("selectedMarker"))!==null){var b=a.split(",");latLng=new google.maps.LatLng(parseFloat(b[0]),parseFloat(b[1]));this.gMap.panTo(latLng)}else{if(c.data("zipcode")){this.centerMapOnZipcode(c.data("zipcode"))}}},centerMapOnZipcode:function(b){var a=this,c=new google.maps.Geocoder();b=("0"+b).slice(-4);c.geocode({address:"Norge "+b,region:"no",language:"nb"},function(e,d){if(d==google.maps.GeocoderStatus.OK){a.gMap.panTo(e[0].geometry.location)}})},initMapBanner:function(){var a=this;$("#map-banner a.hide").click(function(b){b.preventDefault();a.visibleMapBanner=false;a.hideMapBanner()})},displayMapBanner:function(d){var b=this,a=$("#map-banner"),c=a.find("div.content");if(!this.visibleMapBanner){return}if($("#map").is(":visible")){c.text("").children().remove();a.slideDown(250);if(typeof d!="undefined"){c.prepend(d)}}},hideMapBanner:function(){$("#map-banner:visible").slideUp(150)},resetHighlightedMarkers:function(){for(i in this.highlightedMarkers){this.highlightedMarkers[i].setIcon()}this.highlightedMarkers=[]},highlightMarkers:function(){var f=0,c=this.getSelectedMarker(),j=c.klubb.klubb_id,a=new google.maps.LatLngBounds();for(i in this.kart){var d=this.kart[i];if(d.klubb.klubb_id==j){a.extend(d.marker.position);d.marker.setIcon(this.getMarkerImage("marker_yellow.png"));this.highlightedMarkers.push(d.marker);f++}}if(f>1){this.gMap.panTo(a.getCenter());var b=a.getNorthEast(),h=a.getSouthWest(),g=null;while((g=this.gMap.getBounds())&&(!g.contains(b)||!g.contains(h))){var e=this.gMap.getZoom();if(e==this.minZoom){break}this.gMap.setZoom(--e)}}this.displayMapBanner($("<h2>"+f+' kart hos <a href="/'+c.klubb.klubb_id+'">'+c.klubb.klubbnavn+"</a></h1>"))},updateMarkers:function(){var b,c=0,a=this.gMap.getBounds();if(!a){return}this.visibleMarkers={};for(i in this.kart){b=this.kart[i].marker;if(a.contains(b.getPosition())){if(!b.getMap()){b.setMap(this.gMap)}this.addVisibleMarker(this.getDistance(this.gMap.getCenter(),b.position),this.kart[i]);c++}else{b.setMap(null)}}if(this.getSelectedMarker()===null){if(c>0){this.displayMapBanner($("<h2>").text("Viser "+c+" orienteringskart"))}else{this.displayMapBanner($("<h2>").text("Fant ingen orienteringskart"))}}this.findUniqueKlubber()},addVisibleMarker:function(b,a){this.visibleMarkers[b]=a},findUniqueKlubber:function(){if(this.getSelectedMarker()!==null){var d=this.getSelectedMarker();this.klubber={};this.klubber[d.klubb.klubb_id]=d.klubb;this.klubber[d.klubb.klubb_id]["defaultMarker"]=d.marker}else{this.klubber={}}function e(g){var f=[];for(i in g){f.push(parseFloat(i))}return f}function c(g,f){return g-f}sortedKeys=e(this.visibleMarkers).sort(c);var b=0,a=null;for(i in sortedKeys){a=this.visibleMarkers[sortedKeys[i]].klubb;if(typeof this.klubber[a.klubb_id]=="undefined"){this.klubber[a.klubb_id]=a;this.klubber[a.klubb_id]["defaultMarker"]=this.visibleMarkers[sortedKeys[i]].marker;b++;if(b==9){break}}}},displayKlubber:function(){var e=0,g=$("#search article"),d=$('<ul class="result"></ul>'),f,c,a=this.getSelectedMarker();g.children().remove();for(i in this.klubber){var h;c=this.klubber[i];f=$("<h2>"+c.klubbnavn+'</h2><div class="content"><a href="/'+this.klubber[i].klubb_id+'">Til arrangøren</a></div>');f.data("marker",c.defaultMarker).filter("h2").click(function(){google.maps.event.trigger($(this).data("marker"),"click")});if(a!=null&&a.klubb.klubb_id==c.klubb_id){g.append($('<div class="selected">').append(f))}else{h=$("<li>").addClass("klubb-"+c.klubb_id).append(f);d.append(h)}e++}if(e>0){g.append("<h1>De nærmeste arrangørene</h1>").append(d);if(e==1){var b=g.find("h2:first");google.maps.event.trigger(b.data("marker"),"click");if(this.inSearch){this.inSearch=false}}if(e==1&&this.getSelectedMarker()!=null){g.append("<p>Fant ingen arrangører i området</p>")}}else{g.append("<h1>De nærmeste arrangørene</h1><p>Fant ingen arrangører i området</p>")}},findLocation:function(){var b=this,d=$("#search input"),a=d.val()==""?"oslo":d.val(),c=new google.maps.Geocoder();c.geocode({address:"Norge "+a,region:"no",language:"nb"},function(f,e){var g=false;if(e==google.maps.GeocoderStatus.OK){$.each(f[0].address_components,function(){if(this.short_name=="NO"){b.setSelectedMarker(null);b.resetHighlightedMarkers();b.gMap.setZoom(b.defaultZoom);b.gMap.panTo(f[0].geometry.location);g=true;b.inSearch=true}})}if(!g){b.displayMapBanner($("<h2>").text("Fant ingen områder på adressen «"+a+"»"))}})},getDistance:function(c,b){var a=6371;return Math.acos(Math.sin(c.lat())*Math.sin(b.lat())+Math.cos(c.lat())*Math.cos(b.lat())*Math.cos(b.lng()-c.lng()))*a},getMarker:function(a){return new google.maps.Marker({position:a})},getMarkerImage:function(a){return new google.maps.MarkerImage(TURO.staticRoot+"/img/ikoner/"+a,new google.maps.Size(20,34),new google.maps.Point(0,0),new google.maps.Point(10,34))},initGoogleMaps:function(f,b){var e=null,d={zoom:this.defaultZoom,zoomControl:true,scaleControl:true,mapTypeControl:false,center:new google.maps.LatLng(59.9542367,10.7621383)};if(typeof document.getElementById(f)=="undefined"){return}b=$.extend(d,b);function c(g,h){this.layer=h;this.name=g;this.alt=g;this.tileSize=new google.maps.Size(256,256);this.maxZoom=17;this.getTile=function(m,k,j){var l=j.createElement("div");l.style.width=this.tileSize.width+"px";l.style.height=this.tileSize.height+"px";l.style.backgroundImage="url(http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers="+this.layer+"&zoom="+k+"&x="+m.x+"&y="+m.y+")";return l}}e=new google.maps.Map(document.getElementById(f),b);e.mapTypes.set("topo2",new c("Topografisk","topo2"));e.setMapTypeId("topo2");var a=$("<span>").css({color:"#000","font-size":"11px",margin:"0 3px 2px 0"}).text("© Statens Kartverk, Geovekst & kommuner");e.controls[google.maps.ControlPosition.BOTTOM_RIGHT].push(a.get(0));return e}};TURO.Klippekort={gMap:null,markers:[],init:function(){this.initMap();if(this.gMap){this.initStickyMap()}},initMap:function(){if($("#map").length>0){this.gMap=TURO.Forside.initGoogleMaps("map",{scaleControl:false,zoom:11});if($("ul.maps li.klippekort").length>0){this.placeMarkers();this.gMap.setCenter(this.markers[0].getPosition())}}},placeMarkers:function(){var a=this,b=new google.maps.LatLngBounds();$("ul.maps li.klippekort").each(function(){var f=$(this),e=parseFloat(f.data("lat")),d=parseFloat(f.data("lng")),g=new google.maps.LatLng(e,d),c=TURO.Forside.getMarker(g);b.extend(g);c.setMap(a.gMap);a.markers.push(c);f.click(function(){a.gMap.setCenter(g);a.gMap.setZoom(12)})});if(a.markers.length>1){this.gMap.fitBounds(b)}},initStickyMap:function(){var c=$("#map"),a=c.offset().top,b=false;$(window).scroll(function(){var d=$(document).scrollTop();if(!b&&d>a){c.css({position:"fixed",top:"10px"});b=true}else{if(d<a){b=false;c.css("position","relative")}}})}};TURO.Poster={gMap:null,markers:[],bounds:null,init:function(){var b=$("ol.poster"),a=$(".klipp-poster");if(b.length>0){this.initPosterClick(b,a);this.initViews();this.initTableActions();this.initMap()}if(typeof localStorage!="undefined"){viewType=localStorage.getItem("viewType");if(viewType=="list"){$("a.list-view").click()}}},initMap:function(){if($("#map-poster").length>0){this.gMap=TURO.Forside.initGoogleMaps("map-poster",{scaleControl:false,zoom:11});if($("ol.poster li").length>0){this.placeMarkers()}}},placeMarkers:function(){var a=this;this.bounds=new google.maps.LatLngBounds();$("ol.poster li").each(function(){var e=$(this),g=e.data("id");if(e.data("lat")){var d=parseFloat(e.data("lat")),c=parseFloat(e.data("lng")),f=new google.maps.LatLng(d,c),b=TURO.Forside.getMarker(f);a.bounds.extend(f);b.setMap(a.gMap);a.markers.push(b);google.maps.event.addListener(b,"mouseover",function(){if(!$(".klipp-poster").is(":hidden")){return}$(".hoved-info").hide();$(".post-info.postid-"+g).show()});google.maps.event.addListener(b,"mouseout",function(){if(!$(".klipp-poster").is(":hidden")){return}$(".hoved-info").show();$(".post-info.postid-"+g).hide()})}});if(this.markers.length>1){this.gMap.fitBounds(a.bounds)}else{this.gMap.setCenter(this.markers[0].getPosition())}},initPosterClick:function(d,a){var c=this,g=null,h=a.length>0;function e(){var j=a.find(".klipp-rad.mal");g=j.clone(true).removeClass("mal");j.remove();g.find("a.fjern").click(function(l){l.preventDefault();var m=$(this).closest(".klipp-rad").data("id"),k=$(".poster li.postid-"+m);$(this).closest(".klipp-rad").remove();k.removeClass("til_klipp").addClass("mangler_klipp");if(a.find("li.klipp-rad").length==0){$(".klipp-poster").hide();$(".hoved-info").show();$(".klipp-poster p.feil").remove();$(".post-info").hide()}if(a.find("li.klipp-rad").length==1){var m=a.find("li.klipp-rad").data("id");$(".post-info.postid-"+m).show()}b(-1*k.data("poeng"))})}if(g===null){e()}function b(l){var j=a.find("span.poeng"),k=parseInt(j.text());j.text(k+l)}function f(n){var m=$(this),j=$(".post-info.postid-"+n),l=a.find(".klipp-rad"),k=$("ol.poster li");if(!h){k.removeClass("til_klipp");k.filter(".postid-"+n).addClass("til_klipp");if($(".post-info.postid-"+n).is(":visible")){$(".hoved-info").show();$(".post-info").hide();k.removeClass("til_klipp");return}}$(".hoved-info").hide();$(".post-info").hide();if(l.length<=1){j.show()}}d.find("li").click(function(n){var p=$(this),k=p.data("id"),m=p.data("poeng"),j=p.data("kode"),l=p.hasClass("uten_kode");n.preventDefault();f(k);if(h&&!p.hasClass("klippet")){if(!p.hasClass("til_klipp")){if(a.is(":hidden")){a.show()}if(a.find(".klipp-rad").length==1){$(".post-info").hide()}if(a.find(".post input[value="+k+"]").length>0){return}var q=g.clone(true),o=q.find(".post span").text();q.addClass("postid-"+k).attr("data-id",k).find(".post span").text($.substitute(o,{poeng:m,kode:j})).end().find(".post input").val(k);if(l){q.find(".kode").children().hide().end().prepend($("<em>").text("Uten kode"))}a.find("ul.klipp").append(q);b(m);p.addClass("til_klipp").removeClass("mangler_klipp")}else{a.find(".postid-"+k).remove();var r=a.find(".klipp-rad");if(r.length==0){a.hide();$(".klipp-poster p.feil").remove();$(".post-info.postid-"+k).hide();$(".hoved-info").show()}if(r.length==1){$(".post-info.postid-"+r.data("id")).show()}b(m*-1);p.removeClass("til_klipp").addClass("mangler_klipp")}}})},initViews:function(){var b=this,c=$("div.main.list-view"),a=$("div.main.grid-view"),e=$("div#content aside"),h=$("#map-poster"),g=$("a.grid-view"),d=$("a.list-view");$("a.grid-view").click(function(j){j.preventDefault();c.hide();a.show();e.show();h.show();g.addClass("selected");d.removeClass("selected");f("grid");if(b.gMap!=null){google.maps.event.trigger(b.gMap,"resize");if(b.markers.length>1){b.gMap.fitBounds(b.bounds)}else{b.gMap.setCenter(b.markers[0].getPosition())}}});$("a.list-view").click(function(j){j.preventDefault();a.hide();c.show();e.hide();h.hide();d.addClass("selected");g.removeClass("selected");f("list")});function f(j){if(typeof localStorage!="undefined"){localStorage.setItem("viewType",j)}}},initTableActions:function(){var a=$("table.poster tr form");a.submit(function(d){var c=$(this);d.preventDefault();c.addClass("loading").find("button.submit").attr("disabled","disabled");$.post(c.attr("action"),c.serialize()).success(f).error(b);function f(j){var k=c.find("input.post").val(),h=c.closest("tr"),g=(h.find("td.ingen_besok").length>0);if(g){h.find("td.ingen_besok").removeClass("ingen_besok").addClass("besok").text(" besøk").prepend($("<span>").text(1))}else{var e=parseInt(h.find("td.besok span").text());h.find("td.besok span").text(e+1);$(".post-info.postid-"+k+" li.besok dd").text(e+1)}$("li.postid-"+k).removeClass("mangler_klipp").removeClass("til_klipp").addClass("klippet");c.closest("tr").addClass("klippet").end().closest("td.action").text("Klippet")}function b(e){c.find("input.kode").css({color:"red"}).val("Feil")}})}};TURO.Utsalgssteder={gMap:null,markers:[],init:function(){this.initMap()},initMap:function(){if($("#map").length>0){this.gMap=TURO.Forside.initGoogleMaps("map",{scaleControl:false,zoom:10});if(this.gMap){this.placeMarkers()}}},placeMarkers:function(){var b=this,c=new google.maps.LatLngBounds(),a=TURO.Forside.getMarkerImage("marker_yellow.png");$("ul.steder li.utsalgssted").each(function(){var g=$(this),f=parseFloat(g.data("lat")),e=parseFloat(g.data("lng")),j=new google.maps.LatLng(f,e),d=TURO.Forside.getMarker(j);c.extend(j);d.setMap(b.gMap);b.markers.push(d);function h(){$.each(b.markers,function(l,k){k.setIcon(k==d?a:null)});$("li.utsalgssted").removeClass("selected").find("div").hide();$("li.utsalgssted."+g.data("id")).addClass("selected").find("div").show()}google.maps.event.addListener(d,"click",h);g.click(function(){h();b.gMap.setCenter(j);b.gMap.setZoom(13)})});this.gMap.fitBounds(c)}};TURO.Turblogg={init:function(){this.initInnlegg();$("#sesong-valg").change(function(){var a=$(this).val();window.location=window.location.toString().replace(/\/turblogg\/\d{4}/,"/turblogg/"+a)});$("fieldset.poster").click(function(b){var a=$(b.target);if(b.target.nodeName.toLowerCase()=="span"){a.closest("label").toggleClass("selected",a.has(":checked"))}})},initInnlegg:function(){var b=$("form ul.bilder li"),a=b.filter("li:first-child");b.filter("li.empty").remove();b.find("input.file").change(function(){var c=$(this).closest("li").clone(true);c.find("input.file, input.text").val("");b.parent().append(c)})}};TURO.Klubb={init:function(){$("#meld-ut button").attachConfirm("Er du sikker på at du vil melde deg ut av denne klubben? Du vil miste alle deltakelser og klipp tilhørende.")}};
