jQuery.fn.pbcards=function(a){return this.each(function(){var e={hoverColor:"#ddd"},d=$(this),c=true,f=null,b=null;a=$.extend(e,a);d.find("a").each(function(){var g=$(this).attr("href");if(b){if(b!=g){c=false}}b=g});if(c){f=b;d.hover(function(){d.css({backgroundColor:a.hoverColor,cursor:"pointer"})},function(){d.removeAttr("style")});d.click(function(){window.location.href=f})}})};jQuery.fn.pbemail=function(a){return this.each(function(){var c=$(this),e={screenBlock:$('<div class="screenBlock"></div>'),floatingDiv:$('<div class="float"></div>')};a=$.extend(e,a);c.click(function(){b();d()});function b(){a.screenBlock.css({height:$(document).height(),opacity:0});$("body").append(a.screenBlock);a.screenBlock.show();a.screenBlock.fadeTo("normal",0.7)}function d(){$("body").append(a.floatingDiv);a.floatingDiv.load("/includes/email.htm")}})};jQuery.fn.pbforms=function(options,callback){return this.each(function(){var that=this,form=$(this),popup=null,blackOut=null,closeButton=null,closeButtonOnclick="",ajaxImg=new Image(),defaults={ajax:1,referrer:document.referrer.replace("http://",""),action:form.attr("action"),method:form.attr("method"),encType:form.attr("enctype"),submit:form.find('input[type="submit"]'),fields:form.find(":input").not('input[type="submit"]'),success:"Thank you. Your information has been sent.",popup:false,trigger:null,showFormOnLoad:false,popupWidth:"600px",beforeSubmit:null,afterSubmit:null,afterCancel:null,closeButtonTracker:null};options=$.extend(defaults,options);this.showForm=showForm;this.hideForm=hideForm;form.prepend('<input type="hidden" name="referrer" value="'+options.referrer+'"/>');ajaxImg.src="http://assets.portlandbolt.com/images/ajax_load.gif";options.submit.parent().css("position","relative");if(options.popup){form.remove();form.removeAttr("class");if(options.closeButtonTracker){closeButtonOnclick='onclick="pageTracker._trackEvent('+options.closeButtonTracker+');"'}closeButton=$('<a class="closeButton" href="#"><img src="http://assets.portlandbolt.com/images/close_button.jpg" alt="Close" '+closeButtonOnclick+" /></a>");popup=$('<div class="popup"></div>');popup.append(closeButton);popup.hide().append(form);blackOut=$('<div class="blackOut"></div>');blackOut.hide();$("body").append(blackOut);$("body").append(popup);if(options.showFormOnLoad){showForm()}options.trigger.click(function(){that.showForm();return false});closeButton.click(function(){that.hideForm();return false})}form.submit(function(){var qs,actn,mthd,ok,enc=(options.encType)||"application/x-www-form-urlencoded";if(options.beforeSubmit!==null){ok=options.beforeSubmit.apply(that);if(!ok){return false}}options.fields.filter(".error").val("");if(options.ajax){qs=generateQuery();$.ajax({url:options.action,type:options.method,data:(qs),contentType:enc,beforeSend:function(){options.submit.after('<div class="ajax"><img src="http://assets.portlandbolt.com/images/ajax_load.gif"> Working...</div>')},error:function(){$(".ajax",options.form).remove();alert("There was an error with your submission.")},success:function(msg){$(".ajax",options.form).remove();if(msg){json=eval("("+msg+")");if(json.responseType==="success"){if(options.afterSubmit){options.afterSubmit.apply(that)}else{successMsg()}}else{if(json.responseType==="error"){highlightInputs(json)}else{if(json.responseType==="internalError"){alert("We're sorry. There seems to be a bug in this form. We have been notified of the problem and and are working to resolve it. \r\n\r\nIn the mean time, please call us at (800) 547-6758 or email us at sales@portlandbolt.com")}else{if(json.responseType==="spamAttempt"){alert("Error: "+json.text)}else{alert("Unknown response")}}}}}}});return false}else{errors=validate();if(errors){highlightInputs(errors)}else{return true}return false}});this.onreset=function(){if(options.afterCancel){options.afterCancel.apply(that)}};function validate(){var response={},validateParam=$('input[name="!validation"]',form).val(),email=/^[a-z0-9!#\$%&'\*\+-\/\=\?\^_\`\{\|\}~]{1,64}@[a-z0-9-\.]{1,255}\.([a-z]{2}\.)?[a-z]{2,6}$/i;validateParam=validateParam.split("|");for(i=0;i<validateParam.length;i++){var part=validateParam[i].split(":");validateParam[part[0]]=part[1].split(",")}for(var type in validateParam){switch(type){case"required":break;case"email":for(i=0;i<validateParam[type].length;i++){if(!email.test($('input[name="'+validateParam[type][i]+'"]',form).val())){}try{var value=$('input[name="'+validateParam[type][i]+'"]',form);console.log(value.val());console.log(email.test($('input[name="'+validateParam[type][i]+'"]',form).val()))}catch(e){}}break}}if(response.required||response.email){response.responseType="error";return response}return false}function highlightInputs(errorObj){var input,err,scrollPosition=10000,win=$(window);for(var type in errorObj){if(type!="responseType"){for(j=0;j<errorObj[type].length;j++){input=options.fields.filter('[name="'+errorObj[type][j]+'"]');switch(type){case"required":err="This field is required";break;case"email":err="Email is invalid";break;default:err="There was an error";break}input.addClass("error").val(err);input.bind("focus",function(){var that=$(this);that.removeClass("error").val("");that.blur(function(){$(that).unbind("focus")})});if(input.offset().top<scrollPosition){scrollPosition=input.offset().top}}}}if(win.scrollTop()>scrollPosition||win.scrollTop+win.height()<scrollPosition){$("html, body").animate({scrollTop:scrollPosition-25},500)}}function generateQuery(){var arr={},str;options.fields=form.find(":input").not('input[type="submit"]');options.fields.each(function(i){var inp=$(this);if(inp.is("[type=checkbox]")||inp.is("[type=radio]")){if(inp.is(":checked")){arr[inp.attr("name")]=inp.val()}else{if(!arr.hasOwnProperty(inp.attr("name"))){arr[inp.attr("name")]=""}}}else{arr[inp.attr("name")]=inp.val()}});arr.ajax=options.ajax;arr.referrer=options.referrer;return arr}function errorMsg(error){alert(error)}function successMsg(){var s=$('<div class="success"><p>'+options.success+"</p></div>"),l=$('<a href="#">Click to close</a>');options.fields.not(":hidden,[type=radio],[type=checkbox]").each(function(i){$(this).val("")});s.css({display:"none"});if(form.css("position")!="absolute"){form.css("position","relative")}s.append(l);form.append(s);s.slideDown("slow");l.click(function(){s.remove();s=null;l=null;return false})}function showForm(){var top=($(window).height()/2)-(popup.outerHeight()/2);blackOut.css({height:$(document).height()+"px",opacity:"0"}).show();$(blackOut).animate({opacity:".7"});if(top<0){top=50}popup.css("width",options.popupWidth);popup.css({top:top+"px",marginLeft:"-"+popup.outerWidth()/2+"px"});popup.show()}function hideForm(){popup.hide();$(blackOut).animate({opacity:"0"},"","",function(){$(this).hide()})}})};jQuery.fn.pbgallery=function(a){return this.each(function(){var t=$(this),n,g=null,b=s(),l=[],f=0,h={loadarea:$("div",this),thumbs:$("a",this),folderThumb:"thmb",folderPreview:"prev",folderFull:"full"};a=$.extend(h,a);n=$("img",a.loadarea);function o(u,v){var w=this;this.index=v;this.thmb=u;this.thmb.bind("mouseover",function(){if(!w.imgs){var x=p($(this).attr("src"));w.prev=x[0];w.full=x[1]}a.loadarea.empty().append(w.prev);return false});this.thmb.bind("click",function(){q(w);f=w.index;return false})}a.thumbs.each(function(u){l.push(new o($("img",this),u))});function r(u,v){return u.replace(/\/thmb\/|\/prev\/|\/full\//gi,"/"+v+"/")}function p(v){var w=[r(v,"prev"),r(v,"full")],u,x=[];for(i=0;i<w.length;i++){u=new Image();u.src=w[i];x.push(u)}return x}function c(){var u=$('<div class="whiteOut"></div>');u.hide().appendTo($("body")).css({height:$(document).height()+"px",width:"100%"});return u}function k(){if(g.is(":hidden")){g.fadeTo("fast",".7")}}function s(){var u=$('<div id="popup"></div>'),w=$('<div class="imageContainer"></div>'),x=$('<a class="closeButton" href="#"><img src="http://assets.portlandbolt.com/images/close_button.jpg" alt="Close"></a>'),v=$('<a class="printButton" href="#"><img src="http://assets.portlandbolt.com/images/printer.png" alt="Print"></a>');u.append(w);u.append(v);u.append(x);u.hide().appendTo($("body"));x.click(e);v.click(m);w.click(d);return u}function d(){var u=(f>=l.length-1)?l[0]:l[f+1];if(!u.full){var v=p(u.thmb.attr("src"));u.prev=v[0];u.full=v[1]}q(u);return false}function q(v){var u={},w;if(!g){g=c()}k();if(v.full.complete){$(".imageContainer",b).empty().append(v.full).append($('<img class="next" src="/image/misc/next.gif" alt="Next">'));if(w){clearTimeout(w)}}else{w=setTimeout(function(){q(v)},250)}f=v.index;u.width=(v.full.width>0)?v.full.width+2+"px":"auto";b.css(u);u={marginLeft:b.outerWidth()/-2+"px",marginTop:b.outerHeight()/-2+"px"};b.css(u).show();return false}function e(){b.hide();g.fadeOut("fast");return false}function m(){var u=l[f].full.src.replace(/(.+\/)/,"");win=window.open("http://www.portlandbolt.com/image/products/full/printpage.php?img="+u);return false}})};jQuery.fn.pbtable=function(a){return this.each(function(){var c={clickedClass:"highlighted",hoverClass:"hover"},b=null;a=$.extend(c,a);$(this).find("tbody").delegate("tr","mouseover mouseleave",function(d){if(d.type=="mouseover"){$(this).addClass(a.hoverClass)}else{$(this).removeClass(a.hoverClass)}}).delegate("tr","click",function(){if(b){b.removeClass(a.clickedClass)}b=$(this).addClass(a.clickedClass)})})};jQuery.fn.pbTableImage=function(a){return this.each(function(){var d={clName:"tip",followMouse:true,left:10,vertical:"top",base:$(".imagegallery a[href$=drawing.jpg]").attr("href"),content:false},e=$("<div>"),b;a=$.extend(d,a);if(!a.content){if(!a.base){return false}else{b='<img src="'+a.base.replace(/\/full\//,"/prev/")+'"/>'}}else{b=a.content}e.addClass(a.clName).html(b).appendTo("body");$(this).hover(function(f){e.show();c(f.pageX,f.pageY)},function(){e.hide()});if(a.followMouse){$(this).bind("mousemove",function(f){c(f.pageX,f.pageY)})}function c(f,k){var h,g=a.left;if(a.vertical==="top"){h=0-e.outerHeight()}else{h=0}e.css({top:k+h+"px",left:f+a.left+"px"})}})};jQuery.fn.pbtabs=function(a){return this.each(function(){var g={content:"tabcontainer"},d,b,e,f=0;a=$.extend(g,a);d=$(this);b=d.find("a");e=d.next("."+a.content);$sections=e.children();$sections.each(function(){var k=$(this).outerHeight();if(k>f){f=k}});$sections.css("height",f+"px");function h(){var m=window.location.hash,k=d.find('a[href="'+m+'"]');if(m&&k.length){c(k)}else{c(b.eq(0))}}function c(k){$sections.hide();b.removeClass("selected");e.find(k.attr("href")).show();k.addClass("selected")}b.click(function(){c($(this));return false});h()})};