var project={"_id":"59ef8882df4fb1d0b2954851","id":"35529c84a6a34a061e6402b5de23240474dd7488","name":"RS Go Team Missions","user":"57dfeb1654955f1127d5672b","description":"Public website with the RST list","created":"2016-01-08T22:15:38.599Z","shared":false,"server":"micro","datafiles":[{"file":{"link":"https://spreadsheets.google.com/feeds/list/1f9eIvRBz39nG7br0u2GOiSaTbTiE88pb3SquXpohyj0/default/public/full?alt=json","type":"URL/API","url":"https://spreadsheets.google.com/feeds/list/1f9eIvRBz39nG7br0u2GOiSaTbTiE88pb3SquXpohyj0/default/public/full?alt=json","message":{"error":false,"text":""}},"varname":"rst","title":"Runway Safety Go Team Missions","activated":true,"name":"datafile","linkedtofile":true,"optional":true,"content":"","sendtojs":true},{"file":{"link":" https://v4p4sz5ijk.execute-api.us-east-1.amazonaws.com/anbdata/airports/locations/allindicators-list","type":"URL/API","url":" https://v4p4sz5ijk.execute-api.us-east-1.amazonaws.com/anbdata/airports/locations/allindicators-list","message":{"error":false,"text":""}},"varname":"allairports","title":"Aerodromes","activated":true,"name":"datafile","linkedtofile":true,"optional":true,"content":""},{"file":{"link":"https://v4p4sz5ijk.execute-api.us-east-1.amazonaws.com/anbdata/airports/locations/operational-list?api_key=7c3cb620-ed23-11e5-a5f9-adff4fb3e3e1","type":"URL/API","url":"https://v4p4sz5ijk.execute-api.us-east-1.amazonaws.com/anbdata/airports/locations/operational-list?api_key=7c3cb620-ed23-11e5-a5f9-adff4fb3e3e1","message":{"error":false,"text":""}},"varname":"aerodromes","title":"AllAirports","activated":true,"name":"datafile","linkedtofile":true,"optional":true,"content":""}],"packs":["bootstrap","jquery","Datatables"],"container":"mainpart","js":{"file":{"type":"","url":"","link":"","message":{"error":true,"text":"File not defined"},"depurl":"https://quipslibistars.s3.amazonaws.com/prod/35529c84a6a34a061e6402b5de23240474dd7488/script.js"},"title":"Javascript","activated":true,"name":"js","linkedtofile":false,"optional":true,"content":" var map = new google.maps.Map(document.getElementById('map'), {\n center: {lat: 20, lng: 20},\n //scrollwheel: false,\n zoom: 1\n });\nvar icon = {\n url: \"https://s3.amazonaws.com/istarsshare/airplane_icon.png\", // url\n scaledSize: new google.maps.Size(20, 20), // scaled size\n origin: new google.maps.Point(0,0), // origin\n anchor: new google.maps.Point(10, 30) // anchor\n};\n\n$(\"tr.airports\").each(function(i,v){\n var ap=JSON.parse($(v).attr(\"ap\"))\n \n if (ap) {\n var marker = new google.maps.Marker({\n position: {lat:ap.latitude,lng:ap.longitude},\n map: map,\n icon:icon,\n title: ap.airportCode\n });\n marker.addListener('click', function() {\n var infowindow = new google.maps.InfoWindow({\n content: ap.airportName+\" (\"+ap.airportCode+\")\"\n });\n infowindow.open(map, marker);\n });\n}\n })\nvar newrst=[],mem=[]\nrst.feed.entry.forEach(function(v){var code=v.gsx$aerodrome.$t.toUpperCase().trim();if (mem.indexOf(code)<0){newrst.push(v)};mem.push(code)})\n\nvar clock = $('.counter').FlipClock(newrst.length, {\n\t\tclockFace: 'Counter'\n\t});\n\n $(\"#rstlist\").dataTable()\n"},"css":{"file":{"type":"","url":"","link":"","message":{"error":true,"text":"File not defined"}},"title":"Cascading Style Sheet (CSS)","activated":false,"name":"css","linkedtofile":false,"optional":true},"jade":{"file":{"type":"","url":"","link":"","message":{"error":true,"text":"File not defined"},"depurl":"https://quipslibistars.s3.amazonaws.com/prod/35529c84a6a34a061e6402b5de23240474dd7488/main.jade"},"title":"Jade","activated":true,"name":"jade","linkedtofile":false,"optional":false,"content":".container(style=\"width:600px\")\n //h1.text-center Runway Safety Teams\n - var newrst=[],mem=[]\n - rst.feed.entry.forEach(function(v){var code=v.gsx$aerodrome.$t.toUpperCase().trim();if (mem.indexOf(code)<0){newrst.push(v)};mem.push(code)})\n br\n .counter(style=\"margin-left:200px\")\n h2.text-center Completed ICAO Runway Safety Go-Team Missions\n \n div(style=\"margin:auto\")\n #map(style=\"width:600px;height:300px\")\n br\n table#rstlist.display(style=\"width:100%\")\n thead\n tr\n td Airport Code\n td Name\n td Country\n td Go-Team Mission Date\n tbody\n for r in newrst\n - var code=r.gsx$aerodrome.$t.toUpperCase().trim()\n - if (code.length==3) {var x=aerodromes.filter(function(d){return d.iatacode==code})[0];code=(x?x.airportCode:code)}\n - var ap=aerodromes.filter(function(d){return (d.airportCode==code)})[0]\n - ap=(ap?ap:{airportName:\"\",countryName:\"\"})\n tr.airports(ap=JSON.stringify(ap))\n td=code\n td=ap.airportName\n td=ap.countryName\n td=r.gsx$datesofmission.$t"},"google maps apikey":"","capture":"https://quipslibistars.s3.amazonaws.com/prod/35529c84a6a34a061e6402b5de23240474dd7488/capture.png","prod":true,"sharedwith":["57dfeb1654955f1127d5672b"],"morejs":[{"url":"https://maps.googleapis.com/maps/api/js?key=AIzaSyDIwmr3eZMyXQsnn3H11aIC-_XvUs-_hZE&libraries=visualization"},{"url":"https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.min.js"}],"morecss":[{"url":"https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.min.css"}],"deploydate":"2017-10-27T16:22:14.300Z","libs":[{"_id":"5672b285f36b083214f3e63b","description":"A sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.","key":"","version":"3.3.6","link":"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css,https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css,https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js","name":"bootstrap","__v":0,"haskey":false,"required":false,"website":"http://www.getbootstrap.com"},{"_id":"5672b602f36b083214f3e63e","description":"The Write Less, Do More, JavaScript Library","key":"","version":"2.1.1","link":"https://code.jquery.com/jquery-2.1.4.js","name":"jquery","__v":0,"required":true,"haskey":false,"website":"https://jquery.com"},{"_id":"568eb9222043a726661b0ad2","required":false,"description":"A plug-in for the jQuery Javascript Library. It is a highly flexible tool, based upon the foundations of progressive enhancement, and will add advanced interaction controls to any HTML table.","haskey":false,"version":"1.10.10","link":"https://cdn.datatables.net/s/dt/dt-1.10.10/datatables.min.css,https://cdn.datatables.net/s/dt/dt-1.10.10/datatables.min.js","name":"Datatables","__v":0,"website":"https://www.datatables.net"}],"host":"https://quips.anbdata.com","version":"prod"}
function loadjquery(url,callback) {
if(typeof jQuery=='undefined') {
loadScript(url,callback)
}
else {
callback()
}
}
function loadScript(url, callback) {
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState) { //IE
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function () {
callback();
};
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
(function () {
loadjquery("https://code.jquery.com/jquery-2.1.4.js", function () {
//jQuery loaded
$("#"+project.container).html("")
var libs=[]
$(project.libs).each(function(i,v){
if (v.name!="jquery") {
$(v.link.split(",")).each(function(j,u){
if (u.slice(-2)=="js") {
libs.push(u+(v.haskey?"?key="+project[v.name+"key"]:""))
}
else {
$("head").append("")
}
})
}
})
if (project.morejs) {
$(project.morejs).each(function(i,v){
if ((v.url.substring(0,2)=="//")||(v.url.substring(0,8)=="https://")||(v.url.substring(0,7)=="http://")) {
libs.push(v.url)
}
})
}
if (project.morecss) {
$(project.morecss).each(function(i,v){
$("head").append("")
})
}
loadlibs(libs.reverse())
});
})();
function loadlibs(libs){
if (libs.length>0) {
var l=libs.pop()
loadScript(l,function(){
//$.getScript(l,function(res){
loadlibs(libs)
})
//.fail(function(e){
// loadlibs(libs)
//
//})
}
else {
start()
}
}
function putscriptcontent(content){
var script = document.createElement("script")
script.type = "text/javascript";
$(script).text(content)
document.getElementsByTagName("head")[0].appendChild(script);
}
function start(){
//load jade
$.getJSON(project.host+"/project/"+project.version+"/"+project.id+"/render?callback=?"+(project.datachange?"&data="+project.datachange:""),function(res){
$("#"+project.container).html(res.html)
if (project.css.activated) {
if (project.css.linkedtofile) {
$("head").append("")}
else {
$("head").append("")}
}
if (project.js.activated) {
if (project.js.linkedtofile) {
$.getScript(project.js.file[(project.prod?"depurl":"url")])}
else {
putscriptcontent(project.js.content)}
if (project.mainjs) {
window[project.mainjs]()
}
}
})
}