/* scripts.js (74%) */
var North=function(config){var videos=[],player,settings,map,markerClustering,sources,self=this,isIOS=/iPad|iPhone|iPod/.test(window.navigator.userAgent),isTouchDevice=false;settings=config;var init=function(){$('html').removeClass('no-js').addClass('js');if(('ontouchstart'in window)||window.DocumentTouch&&document instanceof DocumentTouch){isTouchDevice=true;$('html').addClass('isTouchDevice');}
overlayPlayButtons();setupHeaderSlideshow();setupTweets();setupAccordions();setupTechsheet();setupGallery();setupLightbox();setupNewsCarousel();setupProductNav();setupSearch();};var getLocationDetails=function(overrideCityZipRequired,focusFirst){$('#location-results').append('<span class="loading"></span>').find('.loading').fadeIn('fast');var params=$('#LocationIndexForm').serializeArray(),source=this.sources.locations;if(overrideCityZipRequired){params.push({name:'data[Location][showAllForCountry]',value:true});}
$.get(source,params,function(results){$('#location-results').html(results);$('#count').text($('li',results).length);if(focusFirst){if(results.length==0){return;}
$('body').trigger('north:map:panTo',[$('#location-results .geo:first'),7]);}},'html');};var getAllLocations=function(){$.get(this.sources.markers,function(markers){setMarkers(markers.dealer,markers.surfcenter,markers.distributor);locateAndFind();},'json');};var setMarkers=function(dealers,surfcenters,distributors){map.gmap3({action:'addMarkers',markers:distributors,marker:{options:{draggable:false,zIndex:10,icon:new google.maps.MarkerImage('/img/map-marker-distributor.png',new google.maps.Size(39,39,'px','px'))},events:{click:function(marker,event,data){var helper=map.gmap3({action:'get'}),infowindow=map.gmap3({action:'get',name:'infowindow'}),text;text=getTextFromMarkerData(data);if(infowindow){infowindow.open(helper,marker);infowindow.setContent(text);}else{map.gmap3({action:'addinfowindow',anchor:marker,options:{content:text}});}}}}},{action:'addMarkers',markers:surfcenters,marker:{options:{draggable:false,zIndex:50,icon:new google.maps.MarkerImage('/img/map-marker-surfcenter.png',new google.maps.Size(33,37,'px','px'))},events:{click:function(marker,event,data){var helper=map.gmap3({action:'get'}),infowindow=map.gmap3({action:'get',name:'infowindow'}),text;text=getTextFromMarkerData(data);if(infowindow){infowindow.open(helper,marker);infowindow.setContent(text);}else{map.gmap3({action:'addinfowindow',anchor:marker,options:{content:text}});}}}}},{action:'addMarkers',markers:dealers,marker:{options:{draggable:false,zIndex:100,icon:new google.maps.MarkerImage('/img/map-marker-dealer.png',new google.maps.Size(33,37,'px','px'))},events:{click:function(marker,event,data){var helper=map.gmap3({action:'get'}),infowindow=map.gmap3({action:'get',name:'infowindow'}),text;text=getTextFromMarkerData(data);if(infowindow){infowindow.open(helper,marker);infowindow.setContent(text);}else{map.gmap3({action:'addinfowindow',anchor:marker,options:{content:text}});}}}}});};var getTextFromMarkerData=function(data){return'<div class="vcard"><strong>'+getClean(data.name)+'</strong>'+'<div class="adr">'+getClean(data.street)+'<br />'+getClean(data.zip)+' '+getClean(data.city)+'<br />'+
getClean(data.country)+'</div>'+'<div>Phone: '+getClean(data.phone)+'<br />Fax: '+getClean(data.fax)+'<br />'+'Email: '+getLink(data.email,'mailto:')+'<br />Website: '+getLink(data.website,'http://')+'</div>'+'<div class="geo">Geo: '+getClean(data.lat)+', '+getClean(data.lng)+'</div></div>';};var getLink=function(link,protocol){if(!link){return'-';}
var href=link,html,httpAttributes=' target="_blank"';if(link.substring(0,protocol.length)!=protocol){href=protocol+link;}
html='<a href="'+href+'"'+((protocol=='http://')?httpAttributes:'')+'>'+link+'</a>';return html;};var getClean=function(value,defaultValue){if(!defaultValue){defaultValue='-';}
return value||defaultValue;};var locateAndFind=function(){map.gmap3({action:'geoLatLng',callback:function(latLng){if(latLng){$(this).gmap3({action:'setZoom',args:[4]},{action:'setCenter',args:[latLng],callback:function(){map.gmap3({action:'getAddress',latLng:latLng,callback:function(result){if(result&&result[0]){var search=['locality','postal_code','country'],found={};$.each(result[0].address_components,function(k,v){if($.inArray(v.types[0],search)!=-1){found[v.types[0]]=v.long_name;}});if(!$.isEmptyObject(found)){$('#LocationCountry').val(found.country);getLocationDetails(true);}}}});}});}else{}}});};var mapPanTo=function(element,zoom){var marker=new google.maps.LatLng(parseFloat($('.latitude',element).text()),parseFloat($('.longitude',element).text()));map.gmap3({action:'panTo',args:[marker]});map.gmap3({action:'setZoom',args:[zoom||12]});};var setupLocations=function(sources){$(".ui-autocomplete-input").live("autocompleteopen",function(){var autocomplete=$(this).data("autocomplete"),menu=autocomplete.menu;if(!autocomplete.options.selectFirst){return;}
menu.activate($.Event({type:"mouseenter"}),menu.element.children().first());});$.ui.autocomplete.prototype.options.autoSelect=true;$(".ui-autocomplete-input").live("blur",function(event){var autocomplete=$(this).data("autocomplete");if(!autocomplete.options.autoSelect||autocomplete.selectedItem){return;}
var matcher=new RegExp("^"+$.ui.autocomplete.escapeRegex($(this).val())+"$","i");autocomplete.widget().children(".ui-menu-item").each(function(){var item=$(this).data("item.autocomplete");if(matcher.test(item.label||item.value||item)){autocomplete.selectedItem=item;return false;}});if(autocomplete.selectedItem){autocomplete._trigger("select",event,{item:autocomplete.selectedItem});}else{$(this).val('');}});map=$('#map').gmap3({action:'init',scrollwheel:false});this.sources=sources;getAllLocations();$('body').bind('north:map:panTo',function(e,element,zoom){mapPanTo(element,zoom);});$('#location-results').delegate('.geo, .show-on-map','click',function(e){e.preventDefault();var target=$(this).parent().find('.geo');$('body').trigger('north:map:panTo',[target]);});$('#LocationIndexForm').submit(function(e){e.preventDefault();var overrideCountryRequired=false;if($('#LocationCity').val()===''&&$('#LocationZip').val()===''){overrideCountryRequired=true;}
getLocationDetails(overrideCountryRequired,true);});$('#LocationCountry').autocomplete({selectFirst:true,source:sources.country,select:function(event,ui){$(this).val(ui.item.value);$('#LocationCity').val('').focus();$('#LocationZip').val('');getLocationDetails(true,true);return true;}});$('#LocationCity').autocomplete({selectFirst:true,source:function(request,response){$.get(sources.city,{term:request.term,country:$('#LocationCountry').val()},function(results){response(results);},'json');},minLength:2,select:function(event,ui){$(this).val(ui.item.value);$('#LocationZip').val('');getLocationDetails(false,true);return true;},search:function(event,ui){if($('#LocationCountry').val()===''){$(this).val('Please select a Country first');$('#LocationCountry').focus();return false;}}});$('#LocationZip').autocomplete({selectFirst:true,source:function(request,response){$.get(sources.zip,{term:request.term,country:$('#LocationCountry').val()},function(results){response(results);},'json');},minLength:2,select:function(event,ui){$(this).val(ui.item.label);$('#LocationCity').val('');getLocationDetails(false,true);return true;},search:function(event,ui){if($('#LocationCountry').val()===''){$(this).val('Please select a Country first');$('#LocationCountry').focus();return false;}}});};var setupGoogleTranslate=function(){new google.translate.TranslateElement({pageLanguage:settings.language,gaTrack:true,gaId:settings.gaId,autoDisplay:false,layout:google.translate.TranslateElement.InlineLayout.SIMPLE},'googleTranslateContainer');};var setupTechsheet=function(){$('#techsheet').after($('<a/>',{html:'<span></span>Display Techsheet','class':'show-techsheet',href:'#',click:function(e){e.preventDefault();$.colorbox({width:'90%',height:'80%',fixed:(!(/iPad/.test(navigator.userAgent))?true:false),maxHeight:900,maxWidth:900,title:function(){return'Techsheet for '+$('#main h1').text();},inline:true,href:'#techsheet',onComplete:function(){if(isTouchDevice){var techScroller=new iScroll('cboxLoadedContent');document.addEventListener('touchmove',function(e){e.preventDefault();},false);}}});}}));};var setupSearch=function(){var field=$('#search-query');field.autocomplete({minLength:2,source:function(request,response){$.ajax({url:settings.search,dataType:"json",data:{term:request.term},success:function(data){if(data.length===0){field.parents('fieldset').removeClass('searching');}
response(data);}});},search:function(event,ui){field.parents('fieldset').addClass('searching');},open:function(event,ui){$(this).autocomplete('widget').css('z-index',100);field.parents('fieldset').removeClass('searching');},close:function(event,ui){field.parents('fieldset').removeClass('searching');},focus:function(event,ui){field.val(ui.item.label);return false;},select:function(event,ui){if(ui.item.link){window.location.href=ui.item.link;}
return false;}})
field.data('autocomplete')._renderMenu=function(ul,items){var self=this;$.each(items,function(index,item){self._renderItem(ul,item);});}
field.data('autocomplete')._renderItem=function(ul,item){return $('<li></li>').data('item.autocomplete',item).append('<a>['+item.model+'] &nbsp; '+item.label+'</a>').appendTo(ul);};};var setupProductNav=function(){var container=$('.products.carousel'),itemsContainer=$('#product-line'),seriesContainer=$('li.container',itemsContainer),width=970,containerOffset=width/2,widthSum=0,widths=[],hasSeries=false;itemsContainer.children().map(function(){var current=$(this).width();widthSum+=current;widths.push(current);});function reposition(event,ui){var pos=(ui.value*-1);if(event.cancelable){itemsContainer.animate({marginLeft:pos},'slow','swing');}else{itemsContainer.css({marginLeft:pos});}
if(hasSeries){var seriesIndex=Math.floor(seriesContainer.length*(ui.value/maxValue));seriesContainer.removeClass('hovered').eq(seriesIndex).addClass('hovered');}
if(ui.value/maxValue>0.90){$('header .home').fadeOut('slow');}else{$('header .home:hidden').fadeIn('slow');}}
container.append($('<div id="nav-pager"></div>'));if(seriesContainer.length>0){var series=seriesContainer.find('> strong');hasSeries=true;series.each(function(i){$(this).wrap($('<a href="#"></a>')).parent().width(Math.floor(width/seriesContainer.length)).appendTo('#nav-pager');});}
if(widthSum>container.width()){itemsContainer.addClass('hasSlider');var maxValue=widthSum-width;var pane=$('#nav-pager').slider({animate:true,max:maxValue,slide:reposition,change:reposition}).parent().append('<span class="go-left"></span><span class="go-right"></span>').end();itemsContainer.mousewheel(function(e,delta){e.preventDefault();var value=pane.slider('option','value');if(delta>0){value-=10;}
else if(delta<0){value+=10;}
value=Math.max(0,Math.min(maxValue,value));pane.slider('option','value',value);});$('.go-left, .go-right').click(function(e){e.preventDefault();var value=pane.slider('option','value'),delta=maxValue/widths.length;if($(this).is('.go-right')){value+=delta;}else{value-=delta;}
value=Math.max(0,Math.min(maxValue,value));pane.slider('option','value',value);});var currentParent=itemsContainer.find('.current');if(currentParent.length){pane.slider('option','value',currentParent.offset().left/widthSum*maxValue-50);}}else{var items=itemsContainer.children();items.width(Math.floor(width/items.length));}};var overlayPlayButtons=function(){$('.video-teaser a, li.video a, a.youtube').not('.arrow').append('<span class="play"></span');};var setupHeaderSlideshow=function(){$('<ul id="head-pager">').appendTo('.catch-ya');$('#slideshow').cycle({speed:4000,timeout:8000,pager:'#head-pager',fit:true,pagerAnchorBuilder:function(idx,slide){return'<li><a href="#">●</a></li>';},before:function(current,next,isForward){$('.catch-ya .slogans').cycle((isForward)?'next':'prev');}});$('.catch-ya .slogans').cycle({cleartype:false,speed:4000,timeout:0});$(window).resize(function(){$('#slideshow span').width($('#slideshow').width());});};var setupGallery=function(){var container=$('section.gallery'),items=container.find('ul.gallery li:gt(0) img').not('.gallery .youtube img'),hero=container.find('.hero-wrapper'),heroes=[],mSize,loaded=0,selfGallery=this;if(container.length===0){return;}else if(container.find('ul.gallery li:gt(0)').length===0){$(hero).next().hide();}
items.each(function(i){mSize=$(this).attr('src').replace(/\/mw\//,'/l/');var img=new Image(200,200);img.src=mSize;$(img).bind('load',function(){loaded++;if(loaded==items.length){go();}}).bind('error',function(){$(this).remove();loaded++;});$(img).addClass('hero').appendTo(hero).wrap($('<a/>',{href:$(this).parent().attr('href'),title:$(this).attr('alt')}));});function go(){hero.cycle({prev:$('<a href="#" class="arrow rwd"></a>').prependTo(container),next:$('<a href="#" class="arrow fwd"></a>').prependTo(container),timeout:0,pager:'ul.gallery',pagerAnchorBuilder:function(idx,slide){return'ul.gallery li:eq('+idx+') a';},fx:'fade',speed:'slow',before:function(curr,next,opts){if(opts.addSlide){while(heroes.length){opts.addSlide(heroes.pop());}}}});}};var setupLightbox=function(){var opts={transition:'elastic',initialWidth:'200px',initialHeight:'200px',maxHeight:'90%',maxWidth:'90%'},youtube_opts=$.extend({},opts,{iframe:true,innerWidth:640,innerHeight:360,rel:'youtube'});opts.rel='gallery';$('.hero-wrapper a').colorbox(opts);if(!isIOS){youtube_opts.rel='page';$('.gallery a.youtube, .flex-box a.youtube').colorbox(youtube_opts);$('.video-wrapper.youtube').attr('href',function(){var temp=this.href;temp=temp.replace(/video/,'embed');temp=temp.replace(/&autoplay=1/,'?wmode=transparent&autoplay=1');return temp;}).colorbox(youtube_opts);$('a[href*="scribd.com"]').colorbox($.extend({},opts,{iframe:true,width:'80%',maxWidth:1200,height:'80%',maxHeight:1200,rel:'scribd'}));}
opts.rel='page';$('a[href$=".jpg"],a[href$=".JPG"],a[href$=".png"],a[href$=".PNG"]').colorbox(opts);$('a[href^="http://"]').attr('target','_blank');};var setupTweets=function(){$('.tweets').tweet({join_text:"we tweeted",username:"northwindsurf",count:3,template:"{time}{join}{text}"});};var setupAccordions=function(){$('.media-gallery h2 a').click(function(e){$(this).parent().next().slideToggle('slow');e.preventDefault();}).parent().filter(':gt(0)').next().hide();$('.news-archive h1 a').click(function(e){$(this).parent().next().slideToggle('slow');e.preventDefault();}).parent().filter(':gt(0)').next().hide();$('.news-archive h2 a').click(function(e){$(this).parent().next('ul').slideToggle('slow');e.preventDefault();}).parent().filter(':gt(0)').next('ul').hide();$('.news-archive .current:hidden').parents('ul').prev().slideDown(function(){$(this).next().slideDown();});$('.accordion').find('.accordion-header').html(function(){return $('<a href="#"></a>').html($(this).html());}).end().accordion({header:'p.accordion-header',autoHeight:false});};var setupNewsCarousel=function(){$('section.news ol').carouFredSel({circular:false,items:{visible:3,height:152,width:321},width:954,direction:'left',scroll:{items:1,fx:'scroll',duration:800},auto:false,prev:{button:'section.news .rwd'},next:{button:'section.news .fwd'}});$('article:not(.top)').parent().next().has('article:not(.top)').addClass('spacer');};var loadVideos=function(response){if(!response){return;}
var entries=response.feed.entry,master;getData(entries);window.onYouTubePlayerReady=function(playerId){setPlayer(playerId);};$('body').bind('north:video:play',function(e,index){switchVideo(index,false);});makePlayer(videos[0]);makeThumbnails(videos,'ul.video-playlist');};var getData=function(response){$.each(response,function(index,entry){videos.push({title:entry.media$group.media$title.$t,description:entry.media$group.media$description.$t,thumbnail:entry.media$group.media$thumbnail[0].url,video:entry.media$group.media$content[0].url});});};var makePlayer=function(initial){var options={modestbranding:1,rel:0,fs:1,autohide:1,showinfo:0,enablejsapi:1,version:3,playerapiid:'north-player'};swfobject.embedSWF(initial.video+'&'+$.param(options),'video-player','465','300','9.0.0',false,false,{allowFullScreen:'true',allowScriptAccess:'always',wmode:'transparent'},{id:'north-player'});};var setSources=function(sources){this.sources=sources;setupLocations(sources);};var getSources=function(){return this.sources;};var setPlayer=function(id){player=$('#'+id).get(0);switchVideo(0,true);};var getPlayer=function(){return player;};var makeThumbnails=function(data,wrapper){var carousel=$(wrapper),item;$.each(data,function(index,entry){item=$('<li><a href="#"><span class="play"></span></a></li>');if(index===0){item.find('li').addClass('break');}
item.find('a:first').attr({title:'Play '+entry.title,href:entry.video,}).click(function(e){if(isIOS){return true;}
e.preventDefault();carousel.trigger('slideTo',[index,1,true]);}).append($('<img/>',{src:entry.thumbnail,alt:entry.title}));item.appendTo(carousel);});carousel.carouFredSel({items:{visible:3,start:1,minimum:2},width:460,height:105,align:'center',direction:'left',scroll:{items:1,fx:'scroll',duration:800,onBefore:function(){$(this).trigger('currentPosition',function(position){position=(position===0)?(videos.length-1):(position-1);$('body').trigger('north:video:play',[position]);});}},auto:false,prev:{button:'.video-teaser .rwd'},next:{button:'.video-teaser .fwd'}});};var switchVideo=function(index,isInitial){var item=videos[index];$('.video-title').text(item.title);$('.video-description').text(truncate(item.description,220));if(!isInitial){player.loadVideoByUrl(item.video);}else{player.cueVideoByUrl(item.video);}};function truncate(text,length,truncation){length=length||30;truncation=truncation||'...';return text.length>length?text.slice(0,length-truncation.length)+truncation:text;}
return{init:init,loadVideos:loadVideos,setPlayer:setPlayer,getPlayer:getPlayer,setupGoogleTranslate:setupGoogleTranslate,setSources:setSources,getSources:getSources};}(settings);
