(function($){var opts,selector,parks,filter,$window;$.fn.parkpicker=function(options){selector=this;filter={};var defaults={src:"parks.js",limit:null,msg:"Select a letter/state from list at left to begin"};opts=$.extend(defaults,options);$window=$("<div />");$("body").append($window);$window.dialog({autoOpen:false,bgiframe:true,closeOnEscape:true,draggable:false,resizable:false,modal:true,width:700,height:350,dialogClass:"parkpickerdialog",title:"Select the Park"+(opts.limit==1?"":"(s)")+" that relate"+(opts.limit==1?"s":"")+" to your story"});$("#parkpicker_close").live("click",function(){$window.dialog("close");});$("#parkpicker_other").live("click",function(){var $input=$(selector);var label="Unlisted Park";$input.val("xxxx");$input.parent("p").find("span.parkpicker").html(label);$("#parkpicker_selected span.remove").each(function(){$(this).click();});$window.dialog("close");});$("#parkpicker_submit").live("click",function(){var $input=$(selector);var selected=getSelectedParks();$input.val(selected.codes.join(","));$input.parent("p").find("span.parkpicker").html(selected.names.join("<br />"));$window.dialog("close");});$("#parkpicker_tabs li:not(.selected)").live("click",function(){var $clicked=$(this);var list_items,label;$("#parkpicker_tabs li").removeClass("selected");$clicked.addClass("selected");list_items=filter[$(this).attr("rel")];$("#parkpicker_filter h2").text($clicked.attr("title")+":");$("#parkpicker_filter ul").html(list_items.join(""));$("#parkpicker_options li").hide();applyRowStripes("#parkpicker_filter");toggleInstructions();});$("#parkpicker_filter li").live("click",function(){if($(this).hasClass("selected")){return false;}$("li","#parkpicker_filter").removeClass("selected");$(this).addClass("selected");var filter;if($("#parkpicker_tabs li.selected").attr("rel")=="alpha"){filter=$(this).text();$("#parkpicker_options li").each(function(){if($(this).attr("park_name").search(new RegExp("^"+filter,"i"))<0){$(this).hide();}else{$(this).show();}});}else{filter=$(this).text().toUpperCase();$("#parkpicker_options li").hide();$("#parkpicker_options li[park_state="+filter+"]").show();}applyRowStripes("#parkpicker_options");toggleInstructions();});$("#parkpicker_options li").live("click",function(){if($(this).hasClass("selected")){return false;}if(opts.limit==1){$("#parkpicker_selected li span").click();}else{if(opts.limit>1&&$("#parkpicker_selected li").length>(opts.limit-1)){alert("A maximum of "+opts.limit+" parks may be selected.\nRemove one from My Selections before adding another.");return false;}}var $clone=$(this).clone().prepend('<span title="remove this park" class="remove" />');$(this).addClass("selected");$("#parkpicker_selected ul").append($clone);applyRowStripes("#parkpicker_selected");return true;});$("#parkpicker_selected span.remove").live("click",function(){var $li=$(this).parent("li");$("#parkpicker_options li[park_code="+$li.attr("park_code")+"]").removeClass("selected");$li.remove();applyRowStripes("#parkpicker_selected");applyRowStripes("#parkpicker_options");toggleInstructions();});var $trigger=$('<a href="#" class="parkpicker"><b>Select National Park'+(opts.limit==1?"":"(s)")+"</b></a>").click(function(){$window.dialog("open");if($("#parkpicker").length){setupUI();}else{loadData();}return false;});return $(selector).each(function(){var $input=$(this);$input.hide().after($trigger,"<span class=parkpicker />");});};function sortByObjName(a,b){return((a.park_name<b.park_name)?-1:((a.park_name>b.park_name)?1:0));}function applyRowStripes(selector){var $list=$(selector);$("li",$list).removeClass("alt");$("li:visible:odd",$list).addClass("alt");}function formatedFilterList(arr){return jQuery.map(arr,function(txt){return"<li>"+txt.toUpperCase()+"</li>";});}function toggleInstructions(){if($("#parkpicker_options li:visible").length){$("#parkpicker p").hide();}else{$("#parkpicker p").show();}return true;}function getSelectedParks(){var output={};output.codes=[];output.names=[];$("#parkpicker_selected li").each(function(){output.codes.push($(this).attr("park_code"));output.names.push($(this).text());});output.codes.sort();output.names.sort();return output;}function loadData(){var $loader=$("<div id=parkpicker_loading />").appendTo($window);var $ui=$('<div id="parkpicker"><ul id="parkpicker_tabs"><li title="A-Z" rel="alpha"><span></span>Choose by Alphabetical Listing</li><li title="State" rel="states"><span></span>Choose by State listing</li></ul><div id="parkpicker_filter"><h2></h2><ul></ul></div><div id="parkpicker_options"><h2>Park: <span>(Click name to '+(opts.limit==1?"make":"add")+" selection"+(opts.limit==1?"":"s")+')</span></h2></div><div id="parkpicker_selected"><h2>My Selection'+(opts.limit==1?"":"s")+': <span>(Click <b>X</b> to remove)</span></h2><ul></ul></div><div id="parkpicker_footer"><div id="parkpicker_close"><span>Cancel</span></div><div id="parkpicker_other"><span>Park Not Listed</span></div><div id="parkpicker_submit"><span>Submit Selection'+(opts.limit==1?"":"s")+"</span></div></div><p>"+opts.msg+"</p></div>");jQuery.getScript(opts.src,function(){var states=[];var alpha=[];var parks=[];filter.states=[];filter.alpha=[];$.each(park_data.sort(sortByObjName),function(){parks.push('<li park_name="'+this.park_name+'" park_code="'+this.park_code+'" park_state="'+this.park_state+'">'+this.park_name+"</li>");if($.inArray(this.park_state,states)===-1){states.push(this.park_state);}if($.inArray(this.park_name.charAt(0),alpha)===-1){alpha.push(this.park_name.charAt(0));}});filter.states=formatedFilterList(states.sort());filter.alpha=formatedFilterList(alpha.sort());$("div#parkpicker_options",$ui).append($("<ul />").html(parks.join("")));$loader.hide();$ui.appendTo($window);setupUI();});}function setupUI(){var codes=$(selector).val().split(",");jQuery.each(codes,function(){$("#parkpicker_options li[park_code="+this.toString()+"]").click();});$("#parkpicker_selected li").show();applyRowStripes("#parkpicker_selected");$("#parkpicker_tabs li:first").trigger("click");toggleInstructions();}})(jQuery);
