
function PreventDefault(Element){$(Element).click(function(event){event.preventDefault();});}
function ToggleDiv(LinkElement,DivElement){$(DivElement).toggle("blind",{direction:"vertical"},500);}
function SelectableCall(ThisElement,ResourceName,TextBox){var id=$(ThisElement).attr("id");$("#"+id).selectable({stop:function(){var result=$("#Selected"+ResourceName).empty();$(".ui-selected",this).each(function(){var index=$("#"+id+" li").index(this);var text=$("#"+id+" li").get(index).innerHTML;result.append(text);$("#"+TextBox).val(text);if(text=="CUSTOM"){if(!$("#"+ResourceName+"Sites").is(':visible')){$("#"+ResourceName+"Sites").show("blind",{direction:"vertical"},500);}}else{if($("#"+ResourceName+"Sites").is(':visible')){$("#"+ResourceName+"Sites").hide("blind",{direction:"vertical"},500);}}});}});}
function TogglePassword(link,Prefix,Toggle){$("input#"+Prefix+"_password").fadeTo(60,0.0,ToggleElement);$("input#"+Prefix+"_confirm").fadeTo(55,0.0);function ToggleElement(){switch(Toggle){case"both":var pwd=Prefix+"_password";var cnf=Prefix+"_confirm";var PWDElement=document.getElementById(pwd);var CNFElement=document.getElementById(cnf);if(PWDElement.type=="password"){PWDElement.type="text";CNFElement.type="text";}else{PWDElement.type="password";CNFElement.type="password";}
break;case"password":var pwd=Prefix+"_password";var cnf=Prefix+"_confirm";var PWDElement=document.getElementById(pwd);if(PWDElement.type=="password"){PWDElement.type="text";}else{PWDElement.type="password";}
break;case"confirm":var cnf=Prefix+"_confirm";var CNFElement=document.getElementById(cnf);if(CNFElement.type=="password"){CNFElement.type="text";}else{CNFElement.type="password";}
break;default:return false;break}
$("input#"+Prefix+"_password").fadeTo("fast",1);$("input#"+Prefix+"_confirm").fadeTo("fast",1);}
PreventDefault(link);}
function validate(selector){jQuery.validator.addMethod("postal",function(value,element){return validZip(value);},"Please enter a valid zip/postal code");$(selector).validate({success:"valid"});}
function tooltip(selector,tipselector,rel){if(tipselector==undefined){var tipselector=".tooltip";}
if(tipselector==undefined){var rel=false}
$(selector).tooltip({position:"bottom right",relative:rel,effect:"slide",direction:"left",opacity:0.9,offset:[-33,7],tip:tipselector});}
function confirm_redir(msg,url){$("#dialog_confirm").html(msg);$("#dialog_confirm").dialog({modal:true,buttons:{'Ok':function(){document.location=url;},Cancel:function(){$(this).dialog('close');$(this).dialog('destroy');}}});}
function popup(selector){$(selector).fancybox({});}
function isValidZipcode(zipcode){if(!(zipcode.length==5)){return false;}
if(isNaN(zipcode)){return false;}
return true;}
function isValidPostalcode(postalcode){if(postalcode.length==6&&postalcode.search(/^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/)!=-1)return true;else if(postalcode.length==7&&postalcode.search(/^[a-zA-Z]\d[a-zA-Z](-|\s)\d[a-zA-Z]\d$/)!=-1)return true;else return false;}
function validZip(zip){if(zip=="")return true;if((isValidZipcode(zip)==false)&&(isValidPostalcode(zip)==false)){return false;}
var result=$.ajax({type:"GET",url:"/json/postal_lookup",data:{code:zip},dataType:"json",async:false,success:function(json){$('#show_postal').html(json.city+', '+json.province_abbr);}}).responseText;if(result=="false"){$('#show_postal').html("");return false;}
return true;}
(function($){$.extend({metadata:{defaults:{type:'class',name:'metadata',cre:/({.*})/,single:'metadata'},setType:function(type,name){this.defaults.type=type;this.defaults.name=name;},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length)settings.single='metadata';var data=$.data(elem,settings.single);if(data)return data;data="{}";var getData=function(data){if(typeof data!="string")return data;if(data.indexOf('{')<0){data=eval("("+data+")");}}
var getObject=function(data){if(typeof data!="string")return data;data=eval("("+data+")");return data;}
if(settings.type=="html5"){var object={};$(elem.attributes).each(function(){var name=this.nodeName;if(name.match(/^data-/))name=name.replace(/^data-/,'');else return true;object[name]=getObject(this.nodeValue);});}else{if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m)
data=m[1];}else if(settings.type=="elem"){if(!elem.getElementsByTagName)return;var e=elem.getElementsByTagName(settings.name);if(e.length)
data=$.trim(e[0].innerHTML);}else if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr)
data=attr;}
object=getObject(data.indexOf("{")<0?"{"+data+"}":data);}
$.data(elem,settings.single,object);return object;}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts);};})(jQuery);jQuery.fn.labelify=function(settings){settings=jQuery.extend({text:"title",labelledClass:""},settings);var lookups={title:function(input){return $(input).attr("title");},label:function(input){return $("label[for="+input.id+"]").text();}};var lookup;var jQuery_labellified_elements=$(this);return $(this).each(function(){if(typeof settings.text==="string"){lookup=lookups[settings.text];}else{lookup=settings.text;};if(typeof lookup!=="function"){return;}
var lookupval=lookup(this);if(!lookupval){return;}
$(this).data("label",lookup(this).replace(/\n/g,''));$(this).focus(function(){if(this.value===$(this).data("label")){this.value='';$(this).removeClass(settings.labelledClass);}}).blur(function(){if(this.value==''){this.value=$(this).data("label");$(this).addClass(settings.labelledClass);}});var removeValuesOnExit=function(){jQuery_labellified_elements.each(function(){if(this.value===$(this).data("label")){this.value='';$(this).removeClass(settings.labelledClass);}})};$(this).parents("form").submit(removeValuesOnExit);$(window).unload(removeValuesOnExit);if(this.value!=''){return;}
this.value=$(this).data("label");$(this).addClass(settings.labelledClass);});};jQuery.fn.selectToUISlider=function(settings){var selects=jQuery(this);var options=jQuery.extend({labels:3,tooltip:true,tooltipSrc:'text',labelSrc:'value',sliderOptions:null},settings);var handleIds=(function(){var tempArr=[];selects.each(function(){tempArr.push('handle_'+jQuery(this).attr('id'));});return tempArr;})();var selectOptions=(function(){var opts=[];selects.eq(0).find('option').each(function(){opts.push({value:jQuery(this).attr('value'),text:jQuery(this).text()});});return opts;})();var groups=(function(){if(selects.eq(0).find('optgroup').size()>0){var groupedData=[];selects.eq(0).find('optgroup').each(function(i){groupedData[i]={};groupedData[i].label=jQuery(this).attr('label');groupedData[i].options=[];jQuery(this).find('option').each(function(){groupedData[i].options.push({text:jQuery(this).text(),value:jQuery(this).attr('value')});});});return groupedData;}
else return null;})();function isArray(obj){return obj.constructor==Array;}
function ttText(optIndex){return(options.tooltipSrc=='text')?selectOptions[optIndex].text:selectOptions[optIndex].value;}
var sliderOptions={step:1,min:0,orientation:'horizontal',max:selectOptions.length-1,range:selects.length>1,slide:function(e,ui){var thisHandle=jQuery(ui.handle);var textval=ttText(ui.value);thisHandle.attr('aria-valuetext',textval).attr('aria-valuenow',ui.value).find('.ui-slider-tooltip .ttContent').text(textval);var currSelect=jQuery('#'+thisHandle.attr('id').split('handle_')[1]);currSelect.find('option').eq(ui.value).attr('selected','selected');},values:(function(){var values=[];selects.each(function(){values.push(jQuery(this).get(0).selectedIndex);});return values;})()};options.sliderOptions=(settings)?jQuery.extend(sliderOptions,settings.sliderOptions):sliderOptions;selects.bind('change keyup click',function(){var thisIndex=jQuery(this).get(0).selectedIndex;var thisHandle=jQuery('#handle_'+jQuery(this).attr('id'));var handleIndex=thisHandle.data('handleNum');thisHandle.parents('.ui-slider:eq(0)').slider("values",handleIndex,thisIndex);});var sliderComponent=jQuery('<div></div>');selects.each(function(i){var hidett='';var thisLabel=jQuery('label[for='+jQuery(this).attr('id')+']');var labelText=(thisLabel.size()>0)?'Slider control for '+thisLabel.text()+'':'';var thisLabelId=thisLabel.attr('id')||thisLabel.attr('id','label_'+handleIds[i]).attr('id');if(options.tooltip==false){hidett=' style="display: none;"';}
jQuery('<a '+'href="#" tabindex="0" '+'id="'+handleIds[i]+'" '+'class="ui-slider-handle" '+'role="slider" '+'aria-labelledby="'+thisLabelId+'" '+'aria-valuemin="'+options.sliderOptions.min+'" '+'aria-valuemax="'+options.sliderOptions.max+'" '+'aria-valuenow="'+options.sliderOptions.values[i]+'" '+'aria-valuetext="'+ttText(options.sliderOptions.values[i])+'" '+'><span class="screenReaderContext">'+labelText+'</span>'+'<span class="ui-slider-tooltip ui-widget-content ui-corner-all"'+hidett+'><span class="ttContent"></span>'+'<span class="ui-tooltip-pointer-down ui-widget-content"><span class="ui-tooltip-pointer-down-inner"></span></span>'+'</span></a>').data('handleNum',i).appendTo(sliderComponent);});if(groups){var inc=0;var scale=sliderComponent.append('<dl class="ui-slider-scale ui-helper-reset" role="presentation"></dl>').find('.ui-slider-scale:eq(0)');jQuery(groups).each(function(h){scale.append('<dt style="width: '+(100/groups.length).toFixed(2)+'%'+'; left:'+(h/(groups.length-1)*100).toFixed(2)+'%'+'"><span>'+this.label+'</span></dt>');var groupOpts=this.options;jQuery(this.options).each(function(i){var style=(inc==selectOptions.length-1||inc==0)?'style="display: none;"':'';var labelText=(options.labelSrc=='text')?groupOpts[i].text:groupOpts[i].value;scale.append('<dd style="left:'+leftVal(inc)+'"><span class="ui-slider-label">'+labelText+'</span><span class="ui-slider-tic ui-widget-content"'+style+'></span></dd>');inc++;});});}
else{var scale=sliderComponent.append('<ol class="ui-slider-scale ui-helper-reset" role="presentation"></ol>').find('.ui-slider-scale:eq(0)');jQuery(selectOptions).each(function(i){var style=(i==selectOptions.length-1||i==0)?'style="display: none;"':'';var labelText=(options.labelSrc=='text')?this.text:this.value;scale.append('<li style="left:'+leftVal(i)+'"><span class="ui-slider-label">'+labelText+'</span><span class="ui-slider-tic ui-widget-content"'+style+'></span></li>');});}
function leftVal(i){return(i/(selectOptions.length-1)*100).toFixed(2)+'%';}
if(options.labels>1)sliderComponent.find('.ui-slider-scale li:last span.ui-slider-label, .ui-slider-scale dd:last span.ui-slider-label').addClass('ui-slider-label-show');var increm=Math.max(1,Math.round(selectOptions.length/options.labels));for(var j=0;j<selectOptions.length;j+=increm){if((selectOptions.length-j)>increm){sliderComponent.find('.ui-slider-scale li:eq('+j+') span.ui-slider-label, .ui-slider-scale dd:eq('+j+') span.ui-slider-label').addClass('ui-slider-label-show');}}
sliderComponent.find('.ui-slider-scale dt').each(function(i){jQuery(this).css({'left':((100/(groups.length))*i).toFixed(2)+'%'});});sliderComponent.insertAfter(jQuery(this).eq(this.length-1)).slider(options.sliderOptions).attr('role','application').find('.ui-slider-label').each(function(){jQuery(this).css('marginLeft',-jQuery(this).width()/2);});sliderComponent.find('.ui-tooltip-pointer-down-inner').each(function(){var bWidth=jQuery('.ui-tooltip-pointer-down-inner').css('borderTopWidth');var bColor=jQuery(this).parents('.ui-slider-tooltip').css('backgroundColor')
jQuery(this).css('border-top',bWidth+' solid '+bColor);});var values=sliderComponent.slider('values');if(isArray(values)){jQuery(values).each(function(i){sliderComponent.find('.ui-slider-tooltip .ttContent').eq(i).text(ttText(this));});}
else{sliderComponent.find('.ui-slider-tooltip .ttContent').eq(0).text(ttText(values));}
return this;}