Ext.onReady(function(){var c=Ext.get("primaryIdent");if(!c){return}var e=c.dom.innerHTML,b=Ext.select("h2 .favorite-icon"),d="Click to add this airport to your favorites",a="Click to remove this airport from your favorites";b.each(function(f){var g=!f.hasClass("inactive");f.dom.title=g?a:d});b.on("click",function(i,h){var g=Ext.get(h),f=g.parent().select("span.message").item(0),j=!g.hasClass("inactive");if(!f){f=Ext.get(document.createElement("span")).addClass("message");g.parent().appendChild(f)}f.update("working...");f.setVisible(true);Ext.Ajax.request({url:"favorites/"+(j?"remove":"add")+"/"+e,method:"GET",callback:function(l,m,k){f.update("");f.setVisible(false);if(m){f.update(j?"removed from favorites":"added to favorites");if(j){g.addClass("inactive")}else{g.removeClass("inactive")}g.dom.title=j?d:a}else{f.update(k.statusText)}f.setVisible(true,true);f.setVisible.defer(2000,f,[false,true])}})})});Ext.onReady(function(){var b=Ext.get("primaryIdent");if(!b){return}var d=b.dom.innerHTML,a=Ext.select("h2 .home-airport"),c="Click to set this airport as your home airport";a.each(function(e){var f=!e.hasClass("inactive");e.dom.title=f?"":c});a.on("click",function(i,h){var g=Ext.get(h),f=g.parent().select("span.message").item(0),j=!g.hasClass("inactive");if(j){return}if(!f){f=Ext.get(document.createElement("span")).addClass("message");g.parent().appendChild(f)}f.update("working...");f.setVisible(true);Ext.Ajax.request({url:"homeapt/"+d,method:"GET",callback:function(k,l,e){f.update("");f.setVisible(false);if(l){f.update("set as home airport");g.removeClass("inactive");g.dom.title=""}else{f.update(e.statusText)}f.setVisible(true,true);f.setVisible.defer(2000,f,[false,true])}})})});Ext.ns("Apts");Apts.GoogleToggleControl=function(c,b,a){this.type=b;this.text=c;this.state=a!==undefined?a:true};Apts.GoogleToggleControl.TEMPLATE=new Ext.Template(Ext.DomHelper.markup({tag:"div",cls:"google-map-toggle-control",cn:[{tag:"div",html:'<input type="checkbox" {state} />{text}'}]}));Ext.extend(Apts.GoogleToggleControl,google.maps.Control,{initialize:function(a){this.el=Apts.GoogleToggleControl.TEMPLATE.append(a.getContainer(),{text:this.text,state:this.state?"checked":""},true);this.overlays=[];google.maps.Event.addListener(a,"addoverlay",function(b){if(!this.toggleType||b.type===this.toggleType){this.overlays.push(b)}}.createDelegate(this));this.el.on("click",function(){Ext.each(this.overlays,function(b){if(this.state){b.hide()}else{b.show()}},this);this.state=!this.state;this.el.child("input",true).checked=this.state},this);a.getContainer().appendChild(this.el.dom);return this.el.dom},getDefaultPosition:function(){return new google.maps.ControlPosition(G_ANCHOR_TOP_LEFT,new GSize(70,7))}});Ext.EventManager.on(window,"load",function(){if(!Ext.getDom("aptlat")){return}var g=new google.maps.Map2(Ext.select(".aptSatellite").item(0).dom);var f=google.maps.Event;g.setUIToDefault();g.setMapType(G_SATELLITE_MAP);g.disableScrollWheelZoom();g.setCenter(new google.maps.LatLng(Ext.getDom("aptlat").innerHTML,Ext.getDom("aptlon").innerHTML),14);var c=new Apts.GoogleToggleControl("Show Businesses",null,false);g.addControl(c);var b=false;Ext.select("#business-information .business").each(function(e){var l=e.child(".latitude",true).innerHTML,n=e.child(".longitude",true).innerHTML;if(!(l&&n)){return}var k=new google.maps.LatLng(l,n),j={name:e.child(".business-name",true).innerHTML,link:e.child(".business-link",true).href,contact:""},i=e.child(".business-phone",true).innerHTML,m=e.child(".business-freqs",true).innerHTML;if(i){j.contact+="Phone: "+i+"<br />"}if(m){j.contact+=m}var h=new google.maps.Marker(k,{title:j.name,hide:true});h.info=j;g.addOverlay(h);b=true});if(b){var d=new Ext.Template(Ext.DomHelper.markup({tag:"div",cls:"businessInfoWindow",cn:[{tag:"h4",cn:[{tag:"a",href:"{link}",html:"{name}"}]},{tag:"p",html:"{contact}"}]}));d.compile();f.addListener(g,"click",function(h,i,e){if(h.info){h.openInfoWindowHtml(d.apply(h.info))}})}else{g.removeControl(c)}var a={run:function(){var e=Ext.get("logocontrol");if(e){e.setStyle("z-index",1);Ext.TaskMgr.stop(a)}},interval:1500};Ext.TaskMgr.start(a);Ext.EventManager.on(window,"unload",GUnload)});Ext.onReady(function(){var b=Ext.get("aptSkyvector"),a={run:function(){var d=b.select("a");if(d&&d.item(0)){Ext.TaskMgr.stop(this);var c=d.item(0).dom;c.target="_blank";c.href=c.href.replace(/http:\/\/.*\.html/,"http://skyvector.com/");b.setStyle("border","none")}},interval:1000};if(b){Ext.TaskMgr.start(a)}});Ext.ns("AopaApts.wx");function buildMetarHandler(b){var a=function(e){e.select(".metar-ct").each(function(f){f.parent().remove()});e.select(".metar-raw").each(function(f){f.parent().remove()});e.select(".error").remove();e.setVisible(false)},c=new AopaWx.util.Metar(),d=function(g,k,h){var j=Ext.get(document.createElement("li")),i;if(b.raw){var f=Ext.DomQuery.selectValue("raw_text",k);i=Ext.get(document.createElement("p"));i.dom.innerHTML=AopaWx.util.Metar.parse(f);i.addClass("metar-raw");j.appendChild(i)}else{var e=AopaWx.util.mapWxAeroMetar(k),i=c.buildElement(j,e)}if(h%2){i.addClass("even")}g.appendChild(j)};return function(f,h){try{a(b.nearbyCt);if(!f.responseXML){throw"No XML in response"}var k=Ext.DomQuery.select("METAR",f.responseXML),j;if(b.aptId){a(b.hereCt);j=0;var m=0;while(j<k.length){if(Ext.DomQuery.selectValue("station_id",k[j])===b.aptId){b.hereCt.setVisible(true);d(b.hereCt,k[j],m++);k.splice(j,1)}else{j++}}}if(!k.length){throw"No items returned"}b.nearbyCt.setVisible(true);for(j=0;j<k.length;j++){d(b.nearbyCt,k[j],j)}}catch(l){if(b.showError){b.nearbyCt.setVisibilityMode(Ext.Element.DISPLAY);b.nearbyCt.setVisible(true);var g=Ext.get(document.createElement("li"));g.addClass("error");g.update("Sorry, no METARs were found close to this airport.");b.nearbyCt.appendChild(g)}}}}function buildTafHandler(c){var a=function(e){e.select(".taf-ct").each(function(f){f.parent().remove()});e.select(".taf-raw").each(function(f){f.parent().remove()});e.select(".error").remove();e.setVisible(false)},b=new AopaWx.util.Taf(),d=function(g,j,h){var e=Ext.get(document.createElement("li"));if(c.raw){var f=Ext.DomQuery.selectValue("raw_text",j);e.dom.innerHTML=AopaWx.util.Taf.parse(f);e.addClass("taf-raw");if(h%2){e.addClass("even")}}else{var i=AopaWx.util.mapWxAeroTaf(j);b.buildElement(e,i)}g.appendChild(e)};return function(f,h){try{a(c.nearbyCt);if(!f.responseXML){throw"No XML in response"}var k=Ext.DomQuery.select("TAF",f.responseXML),j;if(c.aptId){a(c.hereCt);j=0;var m=0;while(j<k.length){if(Ext.DomQuery.selectValue("station_id",k[j])===c.aptId){c.hereCt.setVisible(true);d(c.hereCt,k[j],m++);k.splice(j,1)}else{j++}}}if(!k.length){throw"No TAFs returned"}c.nearbyCt.setVisible(true);for(j=0;j<k.length;j++){d(c.nearbyCt,k[j],j)}}catch(l){if(c.showError){c.nearbyCt.setVisible(true);var g=Ext.get(document.createElement("li"));g.addClass("error");g.update("Sorry, no TAFs were found close to this airport.");c.nearbyCt.appendChild(g)}}}}Ext.EventManager.on(window,"load",function(){if(!Ext.getDom("aptIcao")){return}var f=new Aopa.AppData({app:"wx"});var n=f.get("rawMT")||false,g=Ext.get("plainToggle");g.dom.checked=!n;Ext.select(".metars-here").setVisibilityMode(Ext.Element.DISPLAY);Ext.select(".taf-here").setVisibilityMode(Ext.Element.DISPLAY);Ext.select(".metars-nearby").setVisibilityMode(Ext.Element.DISPLAY);Ext.select(".tafs-nearby").setVisibilityMode(Ext.Element.DISPLAY);var e=function(q,o){var p=Ext.getDom(q);return p?p.innerHTML:o},h=Ext.getDom("aptIcao").innerHTML,k=e("tafStation",h),d=new Ext.data.Connection({method:"GET",url:"/weatheraero/",disableCaching:false}),j=Ext.getDom("aptlat").innerHTML,a=Ext.getDom("aptlon").innerHTML,i=e("wxRefresh",10),m=e("tafRadius",50)*1.151,b=e("metarRadius",20)*1.151,c=function(){d.request({params:{dataSource:"metars",requestType:"retrieve",format:"xml",radialDistance:String.format("{2};{0},{1}",a,j,b),hoursBeforeNow:2,mostRecentForEachStation:"constraint"},success:buildMetarHandler({hereCt:Ext.select(".metars-here").item(0),nearbyCt:Ext.select(".metars-nearby").item(0),aptId:h,showError:true,raw:!g.dom.checked})});d.request({params:{dataSource:"tafs",requestType:"retrieve",format:"xml",radialDistance:String.format("{2};{0},{1}",a,j,m),mostRecentForEachStation:"constraint",hoursBeforeNow:7},success:buildTafHandler({hereCt:Ext.select(".taf-here").item(0),nearbyCt:Ext.select(".tafs-nearby").item(0),aptId:h,showError:true,raw:!g.dom.checked})})};Ext.TaskMgr.start({run:c,interval:i*60000});var l=Ext.isIE?"click":"change";g.on(l,function(o,p){f.set("rawMT",!p.checked);c()})});Ext.EventManager.on(window,"load",function(){var a=Ext.select(".notamLink");if(!a){return false}var d=Ext.fly("primaryIdent").dom.innerHTML,e=Ext.fly("aptIcao").dom.innerHTML,b=new Ext.Template('<form action="https://pilotweb.nas.faa.gov/PilotWeb/notamRetrievalByICAOAction.do?method=displayByICAOs" method="post" target="_blank">','<input type="hidden" name="actionType" value="notamRetrievalByICAOs" />','<input type="hidden" name="formatType" value="{format}" />','<input type="hidden" name="retrieveLocId" value="{ident}" />','<input type="hidden" name="reportType" value="{report}" />',"</form>"),c=b.insertAfter(document.body,{format:d===e?"ICAO":"DOMESTIC",ident:d,report:"REPORT"},true);a.on("click",function(){c.dom.submit()},null,{stopEvent:true})});Ext.EventManager.on(window,"load",function(){var f=Ext.get("aptIdent"),e=Ext.get("photos"),d=new Ext.Template('<li title="{title}">{content}</li>');d.compile();var c=false,b=function(h){if(!h.responseXML){return}var m=Ext.DomQuery,g=m.select("item",h.responseXML);if(g.length===0){e.update("No one has submitted any photos of this airport.");return}e.update("");for(var j=0;j<g.length;j++){var l=g[j];var k=d.append(e,{title:m.selectValue("title",l),content:m.selectValue("description",l)},true);k.child("img").dom.align="";k.child("a").dom.target="_blank"}if(g.length>1){new Ext.ux.Carousel("photos",{itemSelector:"li",interval:3,autoPlay:true,pauseOnNavigate:true,freezeOnHover:true,transitionType:"fade",navigationOnHover:true})}c=true},a=function(){if(c){return}e.update("Loading photos...");Ext.Ajax.request({url:"resources/gallery/cpmfetch/rss.php",method:"GET",params:{sort:"last",keyword:f.dom.innerHTML},timeout:10000,success:b,failure:function(){e.update('An error occurred fetching this airport\'s photos.<br /><a href="#">Try again</a>');e.child("a").on("click",a,null,{stopEvent:true})}})};a()});Ext.EventManager.on(window,"load",function(){var g=function(q){return !q?q:String(q).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;")};var f=Ext.get("openPostComment");if(!f){return}var e=Ext.get("aptIdent"),a=Ext.get("businessId"),b=Ext.get("postcomment"),k=Ext.get("deleteConfirm"),n=b.child("textarea"),j=b.child("button"),p=b.child(".message"),o=Ext.get("member-comments").child("ul"),h=new Ext.Template(['<li class="{cls}">','<span class="author">{author}</span>','<span class="date">{date}</span>',"<p>{comment}</p>","</li>"]),m=new Ext.ux.DateFormat("n/j/Y g:i:s A T","GMT"),i=new Ext.ux.DateFormat("n/j/Y g:i A"),l=new Ext.ux.DateFormat("c","Z"),d;if(e){d=new Ext.data.Connection({method:"POST",url:"/webservices/flightdeck/airport/memberComments.cfm",extraParams:{airport:e.dom.innerHTML}})}else{d=new Ext.data.Connection({method:"POST",url:"/webservices/flightdeck/fbo/memberComments.cfm",extraParams:{fboid:a.dom.innerHTML}})}b.setVisibilityMode(Ext.Element.DISPLAY);f.on("click",function(r,q){b.slideIn();f.setVisible(false,true)},null,{stopEvent:true});j.on("click",function(r,q){if(n.dom.value===""){return}j.dom.disabled=true;p.update("working...");p.setVisible(true,true);d.request({params:{xaction:"create",comments:Ext.encode({text:n.dom.value})},callback:function(){j.dom.disabled=false},success:function(s){try{var t=Ext.decode(s.responseText);if(!(t.success&&t.comments)){throw t.message}var y=t.comments.username,x=l.parse(t.comments.create_date),w=t.comments.text;var v=h.insertFirst(o,{cls:o.dom.childNodes.length%2===1?"even":"",author:y,date:x.relativeTo(new Date()),comment:g(w)},true);v.setStyle("display","none");b.slideOut();n.dom.value="";f.setVisible(true,true);v.slideIn();p.setVisible(false,true)}catch(u){p.update(Ext.isString(u)?u:u.message);p.setVisible.defer(2000,p,[false,true])}}})},null,{stopEvent:true});var c=null;Ext.get("member-comments").on("click",function(r,q){c=Ext.fly(q).parent();k.first(".commentText").update(c.first("p").dom.innerHTML);k.setVisible(true)},null,{delegate:".deleteComment",stopEvent:true});k.first(".close").on("click",function(){k.setVisible(false,true)},null,{stopEvent:true});k.first(".delete").on("click",function(){d.request({params:{xaction:"destroy",comments:c.first(".id").dom.innerHTML},callback:function(){k.setVisible(false,true)},success:function(){c.slideOut("t",{remove:true})}})},null,{stopEvent:true});o.select(".date").each(function(r){var s=m.parse(r.dom.innerHTML),q=s.relativeTo(new Date());r.update(q?q:i.format(s))})});
