Skip to content

Instantly share code, notes, and snippets.

@salaisuuxia
Created February 9, 2016 08:54
Show Gist options
  • Save salaisuuxia/028c7ffaf5d504c88eeb to your computer and use it in GitHub Desktop.
Save salaisuuxia/028c7ffaf5d504c88eeb to your computer and use it in GitHub Desktop.
// ==UserScript==
// @id iitc-plugin-squad-op@SaphiraT
// @name IITC Plugin: SOP
// @category Multi
// @author Dennis Haupt
// @version 0.1.17.20150402.1
// @namespace https://github.com/jonatkins/ingress-intel-total-conversion
// @description Ingress OP Tool
// @updateURL https://sopenl.de/plugin/H7EH5SWTW5M9FJ_M9JIOC559UEW_R2EI8I3YENLZAJB5SZUTMG3A5NX0H3RKAANX/squadOP.meta.js
// @downloadURL https://sopenl.de/plugin/H7EH5SWTW5M9FJ_M9JIOC559UEW_R2EI8I3YENLZAJB5SZUTMG3A5NX0H3RKAANX/squadOP.user.js
// @include /^https://www.ingress.com/intel.*/
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
// @grant GM_xmlhttpRequest
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_info
// ==/UserScript==
var SOP_SERVER_URL = "https://sopenl.de/connect";
try {
if (typeof cloneInto != 'function') {
function cloneInto(val, scope){
return val;
}
}
//in case of no debugger
if(typeof console == 'undefined') {
var console = {};
console.debug = unsafeWindow.alert;
}
}
catch (e) {
alert("SOP compatibility error: " + e);
}
var MD5=function(e){function t(e,t){return e<<t|e>>>32-t}function n(e,t){var n,r,i,s,o;i=e&2147483648;s=t&2147483648;n=e&1073741824;r=t&1073741824;o=(e&1073741823)+(t&1073741823);if(n&r){return o^2147483648^i^s}if(n|r){if(o&1073741824){return o^3221225472^i^s}else{return o^1073741824^i^s}}else{return o^i^s}}function r(e,t,n){return e&t|~e&n}function i(e,t,n){return e&n|t&~n}function s(e,t,n){return e^t^n}function o(e,t,n){return t^(e|~n)}function u(e,i,s,o,u,a,f){e=n(e,n(n(r(i,s,o),u),f));return n(t(e,a),i)}function a(e,r,s,o,u,a,f){e=n(e,n(n(i(r,s,o),u),f));return n(t(e,a),r)}function f(e,r,i,o,u,a,f){e=n(e,n(n(s(r,i,o),u),f));return n(t(e,a),r)}function l(e,r,i,s,u,a,f){e=n(e,n(n(o(r,i,s),u),f));return n(t(e,a),r)}function c(e){var t;var n=e.length;var r=n+8;var i=(r-r%64)/64;var s=(i+1)*16;var o=Array(s-1);var u=0;var a=0;while(a<n){t=(a-a%4)/4;u=a%4*8;o[t]=o[t]|e.charCodeAt(a)<<u;a++}t=(a-a%4)/4;u=a%4*8;o[t]=o[t]|128<<u;o[s-2]=n<<3;o[s-1]=n>>>29;return o}function h(e){var t="",n="",r,i;for(i=0;i<=3;i++){r=e>>>i*8&255;n="0"+r.toString(16);t=t+n.substr(n.length-2,2)}return t}function p(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t}var d=Array();var v,m,g,y,b,w,E,S,x;var T=7,N=12,C=17,k=22;var L=5,A=9,O=14,M=20;var _=4,D=11,P=16,H=23;var B=6,j=10,F=15,I=21;e=p(e);d=c(e);w=1732584193;E=4023233417;S=2562383102;x=271733878;for(v=0;v<d.length;v+=16){m=w;g=E;y=S;b=x;w=u(w,E,S,x,d[v+0],T,3614090360);x=u(x,w,E,S,d[v+1],N,3905402710);S=u(S,x,w,E,d[v+2],C,606105819);E=u(E,S,x,w,d[v+3],k,3250441966);w=u(w,E,S,x,d[v+4],T,4118548399);x=u(x,w,E,S,d[v+5],N,1200080426);S=u(S,x,w,E,d[v+6],C,2821735955);E=u(E,S,x,w,d[v+7],k,4249261313);w=u(w,E,S,x,d[v+8],T,1770035416);x=u(x,w,E,S,d[v+9],N,2336552879);S=u(S,x,w,E,d[v+10],C,4294925233);E=u(E,S,x,w,d[v+11],k,2304563134);w=u(w,E,S,x,d[v+12],T,1804603682);x=u(x,w,E,S,d[v+13],N,4254626195);S=u(S,x,w,E,d[v+14],C,2792965006);E=u(E,S,x,w,d[v+15],k,1236535329);w=a(w,E,S,x,d[v+1],L,4129170786);x=a(x,w,E,S,d[v+6],A,3225465664);S=a(S,x,w,E,d[v+11],O,643717713);E=a(E,S,x,w,d[v+0],M,3921069994);w=a(w,E,S,x,d[v+5],L,3593408605);x=a(x,w,E,S,d[v+10],A,38016083);S=a(S,x,w,E,d[v+15],O,3634488961);E=a(E,S,x,w,d[v+4],M,3889429448);w=a(w,E,S,x,d[v+9],L,568446438);x=a(x,w,E,S,d[v+14],A,3275163606);S=a(S,x,w,E,d[v+3],O,4107603335);E=a(E,S,x,w,d[v+8],M,1163531501);w=a(w,E,S,x,d[v+13],L,2850285829);x=a(x,w,E,S,d[v+2],A,4243563512);S=a(S,x,w,E,d[v+7],O,1735328473);E=a(E,S,x,w,d[v+12],M,2368359562);w=f(w,E,S,x,d[v+5],_,4294588738);x=f(x,w,E,S,d[v+8],D,2272392833);S=f(S,x,w,E,d[v+11],P,1839030562);E=f(E,S,x,w,d[v+14],H,4259657740);w=f(w,E,S,x,d[v+1],_,2763975236);x=f(x,w,E,S,d[v+4],D,1272893353);S=f(S,x,w,E,d[v+7],P,4139469664);E=f(E,S,x,w,d[v+10],H,3200236656);w=f(w,E,S,x,d[v+13],_,681279174);x=f(x,w,E,S,d[v+0],D,3936430074);S=f(S,x,w,E,d[v+3],P,3572445317);E=f(E,S,x,w,d[v+6],H,76029189);w=f(w,E,S,x,d[v+9],_,3654602809);x=f(x,w,E,S,d[v+12],D,3873151461);S=f(S,x,w,E,d[v+15],P,530742520);E=f(E,S,x,w,d[v+2],H,3299628645);w=l(w,E,S,x,d[v+0],B,4096336452);x=l(x,w,E,S,d[v+7],j,1126891415);S=l(S,x,w,E,d[v+14],F,2878612391);E=l(E,S,x,w,d[v+5],I,4237533241);w=l(w,E,S,x,d[v+12],B,1700485571);x=l(x,w,E,S,d[v+3],j,2399980690);S=l(S,x,w,E,d[v+10],F,4293915773);E=l(E,S,x,w,d[v+1],I,2240044497);w=l(w,E,S,x,d[v+8],B,1873313359);x=l(x,w,E,S,d[v+15],j,4264355552);S=l(S,x,w,E,d[v+6],F,2734768916);E=l(E,S,x,w,d[v+13],I,1309151649);w=l(w,E,S,x,d[v+4],B,4149444226);x=l(x,w,E,S,d[v+11],j,3174756917);S=l(S,x,w,E,d[v+2],F,718787259);E=l(E,S,x,w,d[v+9],I,3951481745);w=n(w,m);E=n(E,g);S=n(S,y);x=n(x,b)}var q=h(w)+h(E)+h(S)+h(x);return q.toLowerCase()}
function wrapper(plugin_info) {
// ensure plugin framework is there, even if iitc is not yet loaded
if(typeof window.plugin !== 'function') window.plugin = function() {};
// PLUGIN START ////////////////////////////////////////////////////////
window.SQUAD_OP_MAX_TIME = 3*60*60*1000; // in milliseconds
window.SQUAD_OP_MIN_ZOOM = 9;
window.SQUAD_OP_MIN_OPACITY = 0.3;
window.SQUAD_OP_LINE_COLOUR = '#FF00FD';
//===[ file-save ]==========================================================================================================================================
function createDownloadLink(dataArray, contentType, fileName) {
var dllink = "";
var data = (dataArray instanceof Array) ? dataArray.join('') : dataArray;
var makelink = function(url){
dllink = '<a href="' + url + '" download="' + fileName + '" target="_blank">' + fileName + '</a>';
};
// using the old fashioned data-uri method
function fallbackToDataUri(errorObj) {
if(errorObj){ debugger; }
if(!window.btoa){
//TODO: implement base64 encoder ... maybe
alert('This is for chrome or mozilla only!');
return;
}
makelink('data:' + contentType + ';base64,' + window.btoa(unescape(encodeURIComponent(data))));
}
// createObjectURL approach
if(window.URL && window.URL.createObjectURL){
var b = new Blob([ '\ufeff', data ], { type: contentType });
var u = window.URL.createObjectURL(b);
//window.open(u);
makelink(u);
//window.URL.revokeObjectURL(u);
} else {
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
if (window.requestFileSystem) {
//Request FileSystemObject
window.requestFileSystem(window.TEMPORARY, 20 * 1024 * 1024, /* 20mb temporary storage*/
function (fso) {
fso.root.getFile(fileName, {
create: true,
exclusive: false
}, function (fileEntry) {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function (e) {
//window.open(fileEntry.toURL(), '_blank');
makelink(fileEntry.toURL());
};
fileWriter.onerror = fallbackToDataUri;
var blob = new Blob([ '\ufeff', data ], { type: contentType });
fileWriter.write(blob);
}, fallbackToDataUri);
}, fallbackToDataUri);
}, fallbackToDataUri);
} else {
fallbackToDataUri();
}
}
data = null;
return dllink;
}
// use own namespace for plugin
window.plugin.squadOP = function() {};
window.plugin.squadOP.setup = function() {
try {
var iconEnlImage = 'data:image/png;base64,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';
var iconEnlRetImage = 'data:image/png;base64,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';
var iconResImage = 'data:image/png;base64,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';
var iconResRetImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAYAAAAWy4frAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAABcCSURBVHja3Jt3UBxXnsfZPdfd1dbu1V3t1dXueu3dvfUqQk+CmSEHEYWyLdkKlq9qb73eZUAJgZAIQ85pgOmZgQEECCuBMkiyLVvBEkzq7gnIkmVJlpWtiBKSgO/90YEZQLLsldNN1bcaZl74fd7v9/q9fv2eFwCv/w967gXK8vf+OiCn288/r3uuMq87SZHbXaLI2VupyN27Spmzd4F/3r4Av7x9L83fvPmfflAgXsBPFHldSmVuV5kyr/uMMrcbz6hryrzuekVuV3SY+sMXvjeQQPX+3yiz91Qoc7rOKXO64C7/3G4EFexHeOkBRFcdQkzVIUSUfoiQovcQkNuN0emVOV3Xlbl7GgJyu/74nYHI1Lt+Js/dk6XI2XNPkbMHvMJLD2A22YvFrQ78z7vHn6o325yYazAjsuIj+Od2wa2ch4rs3WVi9bZ//1ZB5Nm731Jk776gyN4NRfZuBBXsxWxdL5a0OvFW+/ExWtrehyUbWC1t7xs3zZsbXJirNyOkcD/4chXZu79UZO9J+Dr96JkSTVVv/meFelejQr0LCvUu+Gfvwczao1ja5sJbG/oELWxxYl6jHbMaGMQbGMTpaQ/FGxjMrGcw12jHG+udWOqW960NfZhN9iAgtwt8PQr1rj2BxTt+8VxA5AWdv1Sodx5UqHdCod6J6MqDWNziwNINfVi6oQ+L21yY22jHdAODWD0taEY9w8mOGfV2zGywY1aDHbONDsw2OhCrpxFnoDHHaMeiVpdQ3pJWJ+KqD4OvT6HeZZepd738D4HI1LsmydW7TsmzdkKetRMztT14c0Mf3tzQhyVtLsxtdCBWRyPGTTxInJ5GnIHBdAPrnXgOiFc89z2fb47RjsWtLqH8eXoLlOpd4Oq+5KveJf9GIEr1tt/L1TuuyrN2wD9nN15tsArx/lqzE7F6BtE62lMkqxgdjVgdjVg9gzg9C+MhPYNY/QgEnz9GT2Nek0OoZ76RQkDuHsizdkCu3nHXP2O7z9cCCVNv/rk8czsjz9yOgJw9eKOJwZK2Pixp68PsBrtgsLuiOI2GieNhOMW5QQj5tJ5lzaq3Y0krW98bzXYE5nVBnrkd8sztp+Vpnb98JhAvL/xEnrFtmzxjG5RZ2zG/gcKS1j4sanEhXs8gSks/WW4wMSTnFR2NWB2DOE6xOoYNRy5tpJbCNC2FSC3lUdZ0PYOFLS4sae3DAiMN/6ydkGdsgzyj88B4A+gYEL+Mzmy/jE74ZXRiFtmLxa0uLGpx4eiZW/js2n2cuf7giTrL6YubA3BduovEjpOI4aAWt7pw5PQtnL81IKQ7+5SyPrt2H46Ld7GoxYXFrS7M0ZvA2yXP7Kx4Kog8rXOCX3rHY7/0DsRUHsKiFhYi3sDgUv9DAMDQ8DAeDz1Zg0PDuHj7IVJ3nkL0qJBZ2tYH6vwdDA49vYzHQ8MAgIHHQ5iuZwQ7YqsOwy+9A37pHYPK9M7JTwTxy+jo9EvvQFDubixscWJhiwuzGuyIqKNw4dYABh4P4c/txzG/yYn5TU4saOblwuuc3mh2IV5vF0JEc+g8OpiriHYLm4Xr+fTuZTgx3+3KXLiDR4PDiKijMKPejoUtLixscSE4rwt+6R3wzejYPS6Ib1pHoO+6rfBdtxWzSRMWrndhfqMTEbVs7F649RAPHg0h3mBHRC3loWm86kYUS9LYZLsC/tN79jZeb3Yiss4z3bRRZfEyfX4bj4eGhf9fbXRg4XoX5ujM4O2UpndGjAHxW7v5mO/aLQjJ68YbXMvGaBmE11CYVjsCMsNgxwyDHUdO34LlXP+4Mp/rx6kv7wMADpy8gTbzZQDA1TuPYH5CHl5L2/oQXkPB/Hk/Hg8NI7yGQngN25i8XaH5++C7dgt8122xeXnhJwKIfN1WX9+1m+G7djPmGWx4vdmFOQ0OhNVQiKilEV5D48KtAdYjegZzGxwYHsZXfnrO3kZEDYWIGgotpkt4ls/fNp9AmBtIWA0laHa9A683uzDPQIG312/dlgABRLZ2U4Fv2iYE5ezCgiYXFjS5EFFLI1TDFhCqocaA3Hs4BABgLtzBBydvjNGpL+/j0eAw0nefxputfbjS/xA37z/GgZM38cGJGx7qOXMbfLv8ddMJhGoomDiQUA0lKKKWFuwLzt0N37RNkKVtKh0BSdt4Qpa2EdEVH2FBkxNzGuwI1dgQVkMhRMOKB5k+CiRx60mEaagxml3vwPHL9wAAtx88Rv/AIP6y8ROEamwIrfbULIMdQ5yL3954AiHVNjcQm4fmNNixoMmJ2MpDkKVthCxt46cAvLx81270lq3ZCNmajZhroDC/0YlYkkZItQ0h1RSCqymEVLuB6BjMqXdg4DELUn/0IsLcWi20mvIw8My1BxgcGkbC5hNcmaNUZUP+vrPg7rj466YTCHYDGZ0+lqQxv9GJeQYKvN2+azd6e8nWtK+Spb6LgKztmG90Yr7RidBqCsFVNkGeIHbM1Ntx+8FjIa532L9EjJZB6CgDQ6psmG90ImHzCY/yeIVpKLSYLgvlDA0P483WPgRVjYAEV3vmCa2mBDsD1dshS30XvqntKV6y1HaNLLUdoQV78ZrRiTn1DgRV2TwU7AYyy+BAqIaCastJnL3+QDDCefEu3mrtQ8hogyttCBpHrxmd6Dl7W8h/uf8hVm07hcBKGwIrbejlQEbbElRlw+x6B14zOhFWuA+y1HZIU9t1XtLU9k5pygZElryP14xOzNTbPSutsiGkagRkpt7BhQ+FWQYH3j9xQzDm1v3HyO0+O8bowApPrew4hcvcTAEATGf7Ma/BiYAKm6DesywID+Ze3ky9Ha8ZnYgs+QDSlA2Qrt6w00u6us0kTWlDdMUhvGp0Io5kEFjJtmZQFYXgKmpckBDu++AqG2oPnRemFQCw2XYV8aQd72w8gQ76KvYdv46CfWfxeqMTuiMXPNI291xCSJUN/uVWTjb4u4PwDVA5ojiSwatGJ6IrDkGa0gZpSpvVS5rSelG6uhVx1Ucxr8GJ6DoGARU2wdCQKs/OPlPnGIGoHAmdpK0ncf7mgId3Rn8eDY4AXLv7CGt2fAZFmRXKMqtwVXJAvWfZkd3dS7yiahnMa3AirvoopKtbIV3deslLmtzaL01uxXRND+bWOxBZQ2NaLYMwDY2wahqh1TRC3UBmcCBC7LuFTLzOjvc/ufGVg57pbD9ebXBCXmr1kKJ0BKjnDAsy4qkRTauhMbfegemaHkiTWyFNbu33kiS3uCTJLYiqOIQ59Q5E1zGIrrNjWg2DiBoG4RyQO8gYiHIbAviKyqwwHLn4RIit1FUoy2zwK7GyKmav8hI3IDcQpZuneEXV0ZhT70BUxSFIklsgSW7p85Ikr98jWbUeEUXvY47Bgdg6BrGkg4OhEaGhEe4GEk/aWRAOIoCH4CssZf9uM13Gqav3BYCLtx6ig7qKSA0N32ILZEWsfItZ8WA8DA+icA87TrF1DOYYHIgoeh+SVeshWbV+r5dkZbNWsrIZwXldmG1wIJ60Y7rOiVitA5E1DKZpaIS7hVa81s5CuAH4cwAKTv5lVrxudGKX45pHOL1udCGgzAZZkQVSTrIiC2QcjC/vpZIREHcv8ZpO2jHb4EBwThckK5shXbne4CVZ2ZQqWdkEZXoHZukdmKV3YIbehTjSiahaOyKqqTEggeXWES+UjkDISyyQl1gQU8s8MbTebD4OaaEF0kILJIVuMIJ3rPB1A/Er9fSUotQq2KlM74BkZRMkKxrTvSTLGkLEKxohWdmEGVoas3QOzNC5MJ10IZoDCXO7/U6vYxDg4QULFByAXzGrkAoKbabL+ISbawHA+ZsD2Gy7ithaOyQFlhFxUJ7eseIYD1Ji9fBUUAWFWToHZpIMJCubIF7RCMlyY5xXmFr9gnhF4y3xikZElh3GLJ0D8aSTBalzIEJDI7TShvM3WZC4Ogb+pRYoxwHwLbJAVmSGrNAMaaEZ9W6dfm/fdYgLzIJE+ez1STA8iDuEX4kVkTUMZukciCw7DPGKRohXNN4LUzf9qxcAL9EK41bxciOC1Lsxk7RjutaOONLJgTAeILG1NJQlHESxBX7FZvgWmT0ApAVmSArMaD428gzy/ic3IMo3j5G4wAIxB8OHmrRoBEToP5yma+2YSdoRpN4F8XIjxCuMu4RpvGSZ8c/iZQ2QJrdiBmnHDNKOOK0T0XVORGgYhFRSOH9zAPcfDSG6hoK82Ax5sRl+RRwEByDhAMQFZojzzWhyBzl+A0SeGUSeGT7c9Wkwx06PgPDyL7cJ9kmTWyBe1gBJkvEdAUS0gnxRtKx+WLSsHpHlRxGvtSO2zoGoWgfCqhkEVYyARGkoT4ACMyQFJkjyTRDnmyDKN0GUZwKRZ0Lj0ZHQeu/4DfjkmuGTa2I1CkbEwYg5GB5E6naHm6ahEa+1Y1r5xxAtq4doWf2Q98rGlzye2cXLDF2iJAOU6Z1saNXZMU1jR0glg4CyEZBp1RR8C90hzBDzEBwAkccaOxrEO8fEahQMMQ7MUQ6E95KsyIrpWjbsFes6IEoyQJxo2DFm8UGcqI8XJekhSjIgVsNmCqqgEFhOQVFiwxccSHgVJQBICswIKbdhr+s6Dp68iYMnb+KjkzexwXQZ3jkmNBzxBJmabcLUp8AQbjCjQUIqKUzX2hFTbYEoyQBRkh6SREPkGBAvtfqnRKLuDJGoQ1BON+Lq7IjSMBAXWOBbZBVAQispiPPZPiDKN2NaFY3BIc+ViAu3HmJqtgmGw24gfRzIeDC5XL/JN4PIt0DkBiLmbtMxNWyUBKj3gEjUgVDp+564QOeToEslVDpIVjSzU5U6O+QlNogKLDh3gwUJqaDYCrmWDKuk0f9gEABwZ2AQJ6/cx3t9NzAl2wT9KJApPMgoGG83GBZoBERUYIGy1IbYOjtiahiIlxlBqHTwSdAnPBFE9rb+PwkVOUCoSIQVfYSYWgahlazhPEhwOSVU6JNnRmjFCMhux3VMVpsEaQ9eGAPCi4cZATLD2w3m489YECLfjIgqGjG1DEIKPgChIuGjIm9P/Xvdz5+6iE0kki2EioRf6ruIqWEQo2EgzrcInd232ArvPLNQcYgbyOfXB9DWewUbTFfQbrqC45dGRvb9fTcwWW3yhMkZpdyRco9+dhuDQ8OQFVpYO2oYyJJbQahIEAlk9VeuxhOJWiWhIkGoSEwr70FMDYPAMhtOX2Ofzys++EKobGou65GHg1+9WseDTM5+OsyUHBPeaT+Bew+HMPCYDeWYGgbhpR+Ds2tYnKT70zO96CFUpJVQkVCmb0e0hkGUhsE77Sdxm2v55mOXMZUDkRZY8f4nN58dZJRX3GGm5JiQvuO0sDRUtO8cojUMojUMfNdsYUEStd3P/MbKR6VdRKhIiBJ1CC83IUrDjiWLmo7jxj32EXaz9Sq8c8yYmmOGJN+K/X03nhlkPK9MyTYhr+uskH7N9tMIrqAQpWEQVnKM9wYIFRnxzCBeavVPCRXpIFQkFOs6EVXNILKaAZFnwfx6l/Bs3kl9CZ9cC6ZkmyErtODwp7cAAINDwzh++R6u3X30TCBTsk0o3Pu58E5kVcdnkORbEFXNIKqagW/KJq5v6A587ZehogRyLt8K4aW9iKxiEFBCYUq2GTEaOz7lnv4+PHETfkVWTM42QVJgwcFPb+HB4yFMVptAHrowPoi7sk3Qcen6Bwbxv20nMCXbjOAyGpFVDEKKhL4BsYoM/EavpwkVaSZUJPzStmJaFY1pVTR8cs2YnG1CWAUN+os7AADr53cQWEphkpodDxqOXIR3jnkMyCS1SdBktQne2WZssV5lXzn0P8JCYx8mZ5sgzrcI9clS2nmQrm/8nl2kImP41ggpPoqIShr+JTbBGGWxDdZzLAz1xR0ElbEwk7JMmJhlwvpjI8uhH564iYlZ7G88cCf1JQDgSv8jzNO7MDmb/S2wlEJEJY2ggsOCN3yStLJ/aOcDkag9TKhIyFI3IbySRnglDe9cMyaqTZioZluP7+h9l+4hopLBRA7k7bYTwvSl+sB54XtRngV7XWyek1fuI0pjx4QstjwizyLUI0newA+Anf/wFg6fBF0I3yrBhR8jvJJGQAklGDUxy4SpOWZso78UVkvi6xyYkGXChCwTVmw5BfLQRUxUs//LCq0wnekHADgu3EVgqWdZgaUUwitpBOYf5L0xRCSR3s9lU42PSrePUJGQrX4XYRU0wipoeOeYMSHTJGhKthlbrSzM5dsPMVfn8vh9QqYJ/sUULJ+zoWg+24+AEsrjdyLXIpQvWdXKg7Q/t91B4r/X+fFeCcg/jLAKGv4lFP6UaRqjhiPsU+GNe4+xyHhc+D6sgoHjwl0AwEcnb0Gcbx2TN6CUQlgFjYDcj3iIQVGCYcJz3a9FJJLbCRUJafIGhJbTCC2nMTXbjFcyeseooJsdE+4/HMLS5uMILaeFVxBbrFcxMcs0Jo9PjlkoV7yyBYSKhEila3zuG898VHofQkUOEyoSAXkfIbSchn+xbVyQVzJ6hQHuwaMhXLrNvkLYaBkf4pWMXgSUUAgtp6HMOcB745F4Ofn7b2UHHaEi2wkVCcnKVoSU0QgpY73yx/TecZW27bRw+204cumJ6bxzzFx5FETLm7k5Fan91rYCihIMEwgVOUioSCizP0RwKQ1lkQ3/va73iUrc+CnK9n/x1DT+RRSCS2kost7jvfFA9A754re6OdMngTQSKhLiFesRVEojqJTGFLUZf1jX+400NduCoFIagaU2iJY3cX2DrPjWd5lKEmp/RyTqHhIqEgr1BwgqoaEsovCHtb1fW7w3gkpo+GXu47yhu0u8Q/7Xd7LvV5SoqyVUJETLmxFYQiGwhPXK79f2fi1NzbYgsIRGQIkNomVGDkRb8J1tYJYt1/+aUJH3CRUJv8z9CCimoCi04XdpPc+s36/tgbLIhoBiCr7p3XzfuOXzN+1/fKc7sYkEXQmhIiFa1gj/Iiv8iyhMzjTj5TU9z6TJWWb4F1HwL7RClNTA9o0EXeZ3vqV8UkLtL4kEsp9QkZBldENZRMGvwIaX03rw0pqn6+W0HsgLbVAWUZCt6+K9cW1iivEX+D42+fskarNZrzRAWWiFkvPKS6k9T9XkTDOURRSUBRaIkur5GW7K93ZaQZGo+TdCRV4nVCRk67oEr7y0pge/TR1fL6/pgbyA9YY0bTfvjUuyt/U/+16PXfgkaFMJFQlRUj3k+RYoCilMyjTjxZSecTUp0wxFIQV5vhmiJAM/iid97+dHZG/rf0aoyMuEioRkzW7ICyj45tvw25Qe/Ga1p36b0gPffBvkBRQka3by3jj3SqLmX34QJ3qIRDKJXT4yQJ5ngrzAhokZJvxm9TEPTco0Q15gg1+uCUSinusb2rd/MEeTXknU/AuhIs+xXtkJv3wbZHlWvLj6GH6dzOrF1ccgy7PCL98Gccp23hufhanVL+CHdMbKJ5H8CxvveshyeuGbb8OEDDN+lXwMv0o+hokZZvjm2yDN6eFeC5AgEnVLf3CHxcLU6hdEKvJTQkVClLINsjwbpLk2oX9Ic22Q5dkgSunkvXF8/vznd2DsuZ5480kkF3MtDYmaNX5CuhkT0s2Q5togUfeAUOm4UZxc8IM9vscuteqchIqEaHUHazwnaa4NRHIHP02n+f26P9hziKJE3TxuOg5x1lFIcmyQ5NggzjrqthCtnfWDP1DJPRJbCBUJInkLJDlWSHKsIJI38yC9P4qToQC8iL/rYvnWF2UcgShjZOnTO0EX9aMB4bxyhFCRIFZuZMWCHPzRnNV1mxmHur2cYUfxBF3Ijw6EW83fL0CodPt+VKenPe9gpFzoK4mk/EcLwvWVHYSK3PGjO88+5nhsok40NVEn+rbr+b8BANIDJqc+VKDfAAAAAElFTkSuQmCC';
var languageFile = soplng;
window.plugin.squadOP.statusList = new Array(languageFile.status0, languageFile.status1, languageFile.status2, languageFile.status3, languageFile.status4, languageFile.status5, languageFile.status6, languageFile.status7);
plugin.squadOP.iconEnl = L.Icon.Default.extend({options: {
iconUrl: iconEnlImage,
iconRetinaUrl: iconEnlRetImage
}});
plugin.squadOP.iconRes = L.Icon.Default.extend({options: {
iconUrl: iconResImage,
iconRetinaUrl: iconResRetImage
}});
plugin.squadOP.drawnTracesSquad = new L.LayerGroup();
window.addLayerGroup('SOP', plugin.squadOP.drawnTracesSquad, true);
//plugin.squadOP.drawnLinkSim = new L.LayerGroup();
//window.addLayerGroup('SOP Link Sim', plugin.squadOP.drawnLinkSim, true);
plugin.squadOP.drawnDirections = new L.LayerGroup();
window.addLayerGroup('SOP Squad Directions', plugin.squadOP.drawnDirections, true);
var playerPopup = new L.Popup({offset: L.point([1,-34])});
window.map.on('zoomend', function() {
//window.plugin.squadOP.zoomListener();
});
//window.plugin.squadOP.zoomListener();
$('#sidebar').append('<div id="sop_sidebar"><div id="sop_out" class="privacy_inactive"><small><i>Squad OP is loading..</i></small> <a href="javascript:void(0)" onclick="window.plugin.squadOP.drawKeyInput()"><small>[enter new key]</small></a></div></div>');
$("<style>")
.prop("type", "text/css")
.html("#sop_out {\
font-size:13px;\
color: "+defColor1+";\
padding: 5px;\
}\
#sop_out .title, #sop_detail .title {\
font-size:14px;\
}\
#sop_out a:active, #sop_detail a:active {\
text-decoration:underline;\
}\
.enlIn {\
color: #02BE02;\
font-size: 12px;\
}\
.resIn {\
color: #0094BF;\
font-size: 12px;\
}\
#sop_out h2, #sop_detail h2 {\
font-size: 15px;\
padding-left: 0px;\
}\
#sop_detail {\
padding: 5px;\
color:"+defColor1+";\
}\
#sop_detail div {\
font-size: 85%;\
}\
#sop_detail p {\
margin: 0 0 5px 0;\
}\
.sop_squadBox1 div { color: white; }\
.sop_squadBox1 div span { white-space:nowrap; display:block; text-align:center; background-color: #FFF; color: white; border-radius: 3px; border: 1px solid #0A3D4F; box-shadow:1px 1px rgba(0, 0, 0, 0.5); }\
.sop_squadBox1 div span.sop_st0 { background-color: #1E4A66; }\
.sop_squadBox1 div span.sop_st1 { background-color: #AB7017; }\
.sop_squadBox1 div span.sop_st2 { background-color: #B9EE09; }\
.sop_squadBox1 div span.sop_st3 { background-color: #CCCCCC; }\
.sop_squadBox1 div span.sop_st2 a, .sop_squadBox1 div span.sop_st3 a { color: black; }\
.sop_squadBox1 div span.sop_st4 { background-color: #000000; }\
.sop_squadBox1 div span.sop_st5 { background-color: #FF0000; }\
.sop_squadBox1 div span.sop_st6 { background-color: #000000; }\
.sop_squadBox1 div span.sop_st7 { background-color: #AB1C20; }\
.sop_squadBox1 div span.bike {border-style:dashed; border-width:2px;}\
.sop_squadBox1 div span.car {border-style:dotted; border-width:3px;}\
.sop_squadBox1 div a { display:block; font-weight:bold; color: white; text-decoration:none; text-align:center;font-size:11px;color:white;padding:1px 2px;line-height:13px; }\
.sop_squadBox2 div { color: white; }\
.sop_squadBox2 div span { white-space:nowrap; display:block; text-align:center; background-color: #FFF; color: white; border-radius: 3px; border: 1px solid #0A3D4F; box-shadow:1px 1px rgba(0, 0, 0, 0.5); }\
.sop_squadBox2 div span.sop_st0 { background-color: #1E4A66; }\
.sop_squadBox2 div span.sop_st1 { background-color: #AB7017; }\
.sop_squadBox2 div span.sop_st2 { background-color: #B9EE09; }\
.sop_squadBox2 div span.sop_st3 { background-color: #CCCCCC; }\
.sop_squadBox2 div span.sop_st2 a, .sop_squadBox2 div span.sop_st3 a { color: black; }\
.sop_squadBox2 div span.sop_st4 { background-color: #000000; }\
.sop_squadBox2 div span.sop_st5 { background-color: #FF0000; }\
.sop_squadBox2 div span.sop_st6 { background-color: #000000; }\
.sop_squadBox2 div span.sop_st7 { background-color: #AB1C20; }\
.sop_squadBox2 div span.bike {border-style:dashed; border-width:2px;}\
.sop_squadBox2 div span.car {border-style:dotted; border-width:3px;}\
.sop_squadBox2 div a { display:block; font-weight:bold; color: white; text-decoration:none; text-align:center;font-size:11px;color:white;padding:1px 2px;line-height:13px; }\
tr.sop_squad { border-bottom: 2px solid #43A7E5;}\
.sop_squad td { padding: 2px;white-space:nowrap; }\
.sop_squad td span { display:block; background-color: #FFF; color: white; position: relative; left: 0px; top: 3px; width:14px; height:12px; border-radius: 6px; border: 1px solid #FFFFFF; }\
.sop_squad td span.sop_st0 { background-color: #1E4A66; }\
.sop_squad td span.sop_st1 { background-color: #AB7017; }\
.sop_squad td span.sop_st2 { background-color: #B9EE09; }\
.sop_squad td span.sop_st3 { background-color: #CCCCCC; }\
.sop_squad td span.sop_st4 { background-color: #000000; }\
.sop_squad td span.sop_st5 { background-color: #FF0000; }\
.sop_squad td span.sop_st6 { background-color: #000000; }\
.sop_squad td span.sop_st7 { background-color: #AB1C20; }\
.sop_squad td span.bike {border-style:dashed;border-width:2px;border-color:#CCCCCC;}\
.sop_squad td span.car {border-style:dotted;border-width:2px;border-color:black;}\
#squadSelect { margin-top:5px;border-top: 1px solid "+defColor4+";border-bottom: 1px solid "+defColor4+"; }\
#squadSelect .wrap {margin: 18px 0 0px 3px;}\
#squadSelect button { font-weight:bold; }\
#squadSelect select, #sop_out input, #issueOut select, #dialog-sop-options-window select, .ui-dialog select, .ui-dialog textarea {background-color: "+defBgColor2+"; border: 1px solid "+defColor1+"; color: "+defColor1+";min-width: 40px;padding: 2px;}\
#issueOut td { padding: 3px 2px; }\
#level { padding: 0 10px; padding: 0 10px; border-radius: 10px; background-color:"+defBgColor2+";margin-right: 20px; }\
#sop_footer { text-align:center; }\
#sop_footer a { font-size: 80%; }\
.targetRow td { vertical-align:middle;}\
table.vertical-center td { vertical-align:middle; }\
#sop_link_sim img { box-shadow: 3px -2px 8px #ffffff; }\
.ui-dialog-buttonset button, .ui-dialog-content button { margin-left:10px; }\
#sop_logs { width:100%; min-height:50px; max-height:250px; overflow:auto; margin-top:8px; }\
#sop_logs td { font-size: 80%; }\
.ui-dialog-titlebar-button { border: 1px solid #9E8300; background-color: #9E8300; border-radius: 4px;}\
.ui-dialog-titlebar-button-close { border: 1px solid #9B0D0D; background-color: #9B0D0D; }\
.sop_chat_out { font-size:80%; max-height:50px; overflow: auto; }\
.privacy_active div:has(> #dialog-sop-main-window) { display: none; }\
.privacy_active #squadSelect, .privacy_active #sop_sidebar { display: none; }\
#squadKeyList { font-size: 90%; }\
#squadKeyList th { font-weight:bold; }\
#squadKeyList td { font-weight:normal; background-color: "+defBgColor2+"; }\
")
.appendTo("head");
window.plugin.squadOP.drawSquadList();
window.addHook('portalDetailsUpdated', window.plugin.squadOP.updatePortalDetail);
window.addPortalHighlighter('SOP Target Portals', window.plugin.squadOP.portalHighlighterIsTarget);
}
catch(e) {
alert("Fehler:" + e);
}
if (!sop_docked) {
window.plugin.squadOP.undockSquadList();
}
try {
if (window.sopHasNoKey) {
window.plugin.squadOP.drawKeyInput();
}
}
catch (e) {}
}
window.plugin.squadOP.actionList = new Array('destroy&capture', 'flip', 'neutralize', 'link to', 'remove Links', 'upgrade', 'hold&defend', 'get key(s)', 'meeting', 'read comment');
window.plugin.squadOP.issueList = window.plugin.squadOP.actionList;
window.plugin.squadOP.saveData = new Array();
window.plugin.squadOP.markerList = new Array();
window.plugin.squadOP.linkPortalList = new Array();
window.plugin.squadOP.linkPortalListIndex = 0;
window.plugin.squadOP.markerIndex = 0;
window.plugin.squadOP.teamNameLimit = 18;
window.plugin.squadOP.jsonDataObject = {};
window.plugin.squadOP.updatePortalDetail = function(){
try {
var out = "";
if (window.plugin.squadOP.highlightPortals[window.selectedPortal]) {
out += "<div class='wrap enl' style='border-top: 1px solid "+defColor4+";text-align:center;'>Assigned Teams:<br /><table align='center'>";
$.each (
window.plugin.squadOP.highlightPortals[window.selectedPortal],
function (rowIndex, sq) {
var s = window.plugin.squadOP.getSquadById(rowIndex);
out += "<tr>";
out += "<td align='left'><a onclick='window.plugin.squadOP.openSquadDialog("+s.dbid+")' href='javascript:void(0)'>" + s.name +"</a></td>";
out += "<td align='right'>";
if (s.lat != 0 && s.lon != 0) {
out += roundPrecision(s.distance,2);
}
else {
out += "---";
}
out += "&nbsp;km</td></tr>";
}
);
out += "</table></div>";
$('#portaldetails > div.imgpreview').after(out);
}
window.plugin.squadOP.drawPortalTeamSelect();
if ($('#dialog-select-link-target-portal b')) {
var portal = window.portals[window.selectedPortal].options.data;
var details = portalDetail.get(window.selectedPortal);
var lat = window.portals[window.selectedPortal].getLatLng().lat;
var lng = window.portals[window.selectedPortal].getLatLng().lng;
$('#dialog-select-link-target-portal b').html(portal.title + " &lt;" + lat + "," + lng + "&gt;");
}
switch(window.plugin.squadOP.linkSimState){
case 1:
var portal = window.portals[window.selectedPortal].options.data;
var details = portalDetail.get(window.selectedPortal);
window.plugin.squadOP.linkSimPortal.push(portal);
var out = ""
+ "<b>Startportal</b><br/>"
+ portal.title
+ "<br><br><img src='"+portal.image+"' style='max-width:200px;max-height:200px;' />"
;
$('#sop_link_sim_s1').html(out);
$('#sop_link_sim_s2').html("Jetzt klicke auf das<br><b>Zielportal</b>");
window.plugin.squadOP.linkSimState = 2;
break;
case 2:
var portal = window.portals[window.selectedPortal].options.data;
var details = portalDetail.get(window.selectedPortal);
window.plugin.squadOP.linkSimPortal.push(portal);
var out = ""
+ "<b>Zielportal</b><br/>"
+ portal.title
+ "<br><br><img src='"+portal.image+"' style='max-width:200px;max-height:200px;' />"
;
var lat1 = (window.plugin.squadOP.linkSimPortal[0].latE6/1000000);
var lng1 = (window.plugin.squadOP.linkSimPortal[0].lngE6/1000000);
var lat2 = (window.plugin.squadOP.linkSimPortal[1].latE6/1000000);
var lng2 = (window.plugin.squadOP.linkSimPortal[1].lngE6/1000000);
$('#sop_link_sim_s2').html(out);
var out = "<h3 style='margin:0;'>Distanz:</h3><h2>"
+ roundPrecision(window.plugin.squadOP.getDistanceFromLatLonInKm(lat1, lng1, lat2, lng2),3)
+ " KM</h2>";
$('#sop_link_sim_s3').html(out);
$('#sop_link_sim_s3').show();
var opts = {
weight: 3,
color: "#1C425B",
clickable: false,
opacity: 1,
dashArray: "1,5",
smoothFactor: 1,
lineCap: 'round'
};
//polyline = [[L.latLng(52.48971705,13.44772542),L.latLng(52.4897334,13.44768753)],[L.latLng(52.4897334,13.44768753),L.latLng(52.49054069,13.44842402)]];
L.multiPolyline([[L.latLng(lat1,lng1),L.latLng(lat2,lng2)]], opts).addTo(plugin.squadOP.drawnLinkSim);
out = "";
for (var i=0,j=window.plugin.squadOP.linkPortalList.length;i<j;i++) {
var obj1 = window.plugin.squadOP.linkPortalList[i][0];
var obj2 = window.plugin.squadOP.linkPortalList[i][1];
var lat1 = (obj1.latE6/1000000);
var lng1 = (obj1.lngE6/1000000);
var lat2 = (obj2.latE6/1000000);
var lng2 = (obj2.lngE6/1000000);
out +='<table style="width:100%">'
+ '<tr>'
+ '<td style="vertical-align:middle;width:120px;">'+obj1.title+'<br><img src="'+obj1.image+'" style="max-width:60px;max-height:60px;"></td>'
+ '<td style="vertical-align:middle;">----->&nbsp;'
+ roundPrecision(window.plugin.squadOP.getDistanceFromLatLonInKm(lat1, lng1, lat2, lng2),3)
+ 'km&nbsp;----></td><td style="vertical-align:middle;width:120px;">'+obj2.title+'<br><img src="'+obj2.image+'" style="max-width:60px;max-height:60px;"></td>'
+ '</tr>'
+ '</table>'
;
}
if (window.plugin.squadOP.linkPortalList.length > 0) {
$('#sop_link_sim_s4').html(out);
$('#sop_link_sim_s4').show();
}
window.plugin.squadOP.linkPortalList.push([window.plugin.squadOP.linkSimPortal[0], window.plugin.squadOP.linkSimPortal[1]]);
window.plugin.squadOP.linkSimState = 0;
break;
} // switch
}
catch (e) {
console.debug("Error:"+e);
}
}
window.plugin.squadOP.drawPortalTeamSelect = function() {
if ($('#squadSelect')) {
$('#squadSelect').remove();
}
var out = "";
if (portalKeysOfSquadsLoaded && plugin.keys != undefined) {
var count = plugin.keys.keys[window.selectedPortal] || 0;
if (count > 0) {
if (window.plugin.squadOP.lastPortalKeyCheck != window.selectedPortal || window.plugin.squadOP.lastPortalKeyCount != count) {
window.plugin.squadOP.saveData.push({
requestType: 'getSquadsWithKey',
guid: window.selectedPortal,
callback: window.plugin.squadOP.getSquadsWithKeyCallback
});
out += '<div id="squadKeyList" style="padding: 8px;display:none;"></div>';
}
else {
out += '<div id="squadKeyList" style="padding: 8px;">'+window.plugin.squadOP.lastPortalKeyCache+'</div>';
}
}
}
out += '<div id="squadSelect" class="privacy_inactive">'
+ '<div class="wrap enl ui-dialog-buttonset">'
+ '<table style="width:290px;"><tr><td align="left" style="width:50%">'
+ '<select id="squadSel" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" style="width:100%;">'+window.plugin.squadOP.drawTeamSelect(true)+'</select><br />'
+ '<button onclick="window.plugin.squadOP.saveSquadToPortal()" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" style="margin:1px 0 0 0;width:100%;">'+soplng.assignSquad+'</button>&nbsp;&nbsp;</td>'
+ '<td align=right style="width:50%"><button onclick="window.plugin.squadOP.saveIssueToPortal()" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">'+soplng.newIssue+'</button></td>'
+ '</tr></table></div>'
+ ''
+ ''
+ ''
+ '';
out += '</div>';
$('#portaldetails > div.imgpreview').after(out);
}
window.plugin.squadOP.lastPortalKeyCheck = false;
window.plugin.squadOP.lastPortalKeyCache = {};
window.plugin.squadOP.lastPortalKeyCount = 0;
window.plugin.squadOP.getSquadsWithKeyCallback = function(res) {
try {
var sqkeys = $.parseJSON(res);
if (sqkeys.ok == 0) {
return;
}
var out = "";
out += "<h4 style='text-align:center;margin:0;font-size:110%;'>Team's with Key(s)</h4>";
out += '<table style="width:100%">';
$.each( sqkeys.sq, function( key, sqkey ) {
out += '<tr>';
out += '<td nowrap>'+sqkey.n+'</td>';
out += '<td style="width:80%;">'+sqkey.a+'</td>';
out += '</tr>';
});
out += '</table>';
$("#squadKeyList").html(out);
$("#squadKeyList").show();
window.plugin.squadOP.lastPortalKeyCheck = window.selectedPortal;
window.plugin.squadOP.lastPortalKeyCache = out;
window.plugin.squadOP.lastPortalKeyCount = plugin.keys.keys[window.selectedPortal] || 0;
}
catch (e) {
alert("Error:"+e);
}
}
window.plugin.squadOP.linkSimState = 0;
window.plugin.squadOP.linkSimPortal = [];
window.plugin.squadOP.showLinkSimDialog = function() {
window.plugin.squadOP.linkSimState = 1;
window.plugin.squadOP.linkSimPortal = [];
var win = "<div id='sop_link_sim'>"
+ "<div id='sop_link_sim_s1' style='float:left;width:200px;text-align:center;'>Klicke auf das<br><b>Startportal</b></div>"
+ "<div id='sop_link_sim_s2' style='float:right;width:200px;text-align:center;'></div>"
+ "<br clear='all'/>"
+ "<div id='sop_link_sim_s3' style='text-align:center;display:none;padding: 15px; margin-top:13px;border: 1px solid "+defColor4+";border-radius:8px;'></div>"
+ "<div id='sop_link_sim_s4' style='text-align:center;display:none;padding: 15px; margin-top:13px;border: 1px solid "+defColor4+";border-radius:8px;'></div>"
+ "</div>"
;
dialog({
text: win,
title: 'Link-Simulator',
id: 'sop-linksim-window',
width: 450,
maxHeight: 450,
position: { my: "center", at: "top", of: window },
create: function( event, ui ) {
$('#dialog-sop-linksim-window').parent().css("margin-top", "10px");
},
buttons: [
{
text: "zur Linkliste hinzuf?gen",
click: function() {
alert("kommt bald :)");
}
},
{
text: soplng.close,
click: function() {
$( this ).dialog( "close" );
}
}
]
});
}
window.plugin.squadOP.getDistanceFromLatLonInKm = function(lat1,lon1,lat2,lon2) {
var R = 6371; // Radius of the earth in km
var dLat = deg2rad(lat2-lat1); // deg2rad below
var dLon = deg2rad(lon2-lon1);
var a =
Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2)
;
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c; // Distance in km
return d;
}
function deg2rad(deg) {
return deg * (Math.PI/180)
}
function roundPrecision(number, precision)
{
precision = Math.abs(parseInt(precision)) || 0;
var coefficient = Math.pow(10, precision);
return Math.round(number*coefficient)/coefficient;
}
window.plugin.squadOP.drawTeamSelect = function(saveState){
var jdata = plugin.squadOP.JSONdata;
out = "";
out+="<option value=''>---</option>";
var filter = [];
if (sopSquadFilter != "") {
var filter = sopSquadFilter.split(",");
}
$.each (
jdata.squads,
function (rowIndex, sq) {
if (sopSquadFilter != "" && sopSquadFilter != 0) {
var found = false;
$.each(filter, function( index, value ) {
if (sq.name.indexOf(value) === 0) {
found = true;
return true;
}
});
if (found == false) {
return true;
}
}
var strLimit = window.plugin.squadOP.teamNameLimit;
if (sq.name.length > strLimit) {
sq.name = jQuery.trim(sq.name).substring(0, strLimit) + "..";
}
if (sq.dbid != window.plugin.squadOP.lastAssignTeam || saveState != true) {
out+="<option value='"+sq.dbid+"'>"+sq.name+"</option>";
}
else {
out+="<option value='"+sq.dbid+"' selected='selected'>"+sq.name+"</option>";
}
}
);
return out;
}
window.plugin.squadOP.drawThemeSelect = function(saveState){
var edata = [
{id: 0, name: 'IITC'},
{id: 1, name: 'enlightened'},
{id: 2, name: 'greyscale'},
{id: 3, name: 'darker'},
{id: 4, name: 'gossip'},
{id: 5, name: 'fresh'}
];
out = "";
//out+="<option value=''>---</option>";
$.each (
edata,
function (rowIndex, sq) {
if (sopSelectedTheme != sq.id) {
out+="<option value='"+sq.id+"'>"+sq.name+"</option>";
}
else {
out+="<option value='"+sq.id+"' selected='selected'>"+sq.name+"</option>";
}
}
);
return out;
}
window.plugin.squadOP.drawMarkerTypeSelect = function(saveState){
var edata = [
{id: 0, name: 'big'},
{id: 1, name: 'small'}
];
out = "";
//out+="<option value=''>---</option>";
$.each (
edata,
function (rowIndex, sq) {
if (mapMarkerType != sq.id) {
out+="<option value='"+sq.id+"'>"+sq.name+"</option>";
}
else {
out+="<option value='"+sq.id+"' selected='selected'>"+sq.name+"</option>";
}
}
);
return out;
}
window.plugin.squadOP.drawSquadSortSelect = function(saveState){
var edata = [
{id: 0, name: 'Name'},
{id: 1, name: 'Last'},
{id: 2, name: 'Name (active)'},
{id: 3, name: 'Last (active)'},
];
out = "";
//out+="<option value=''>---</option>";
$.each (
edata,
function (rowIndex, sq) {
if (squadListSort != sq.id) {
out+="<option value='"+sq.id+"'>"+sq.name+"</option>";
}
else {
out+="<option value='"+sq.id+"' selected='selected'>"+sq.name+"</option>";
}
}
);
return out;
}
window.plugin.drawPortalLinkHandler = function(guid,lat,lng) {
return "onclick='window.renderPortalDetails(\""+guid+"\");' ondblclick='window.zoomToAndShowPortal(\""+guid+"\", ["+lat+","+lng+"]);'";
}
window.plugin.squadOP.drawSquadListMd5 = false;
window.plugin.squadOP.squadNameAreVeryLong = false;
window.plugin.squadOP.drawSquadList = function() {
try {
acceptIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAOySURBVHjavFdpSBVRFD5vfOrT1NzFVCwrNUFNIVFIxC1MRKu/JUWJQvijoIVKgyIqKkrQH1EWgvbXUkKllBaDMiFTy1LLyhV3y9TnknbO8EbnPe+8mVH0wAfDPXPvd+659yxXY38/DESiRSQjEhE+CB1iErEAy8VCpb4X8RxRgZhD2CA8taIJOxGPEEGwdpKNaEEcRQwi+jgR+as1JheEOKoRbogpzuB22rkDrJ/YIR4St3DminbOaTgIcw2CeO9ICHLaDi46R358WD8GTcNfoab7LTSPtMH8wrxSTyRrDRdOlnj/lgQ4HZaBxNuW6afmpiHcLQjOhmVC3+QA3GksguK2MiWGJGowCp7gR5rUH772XnAl4gTs8dkNNlprJnn/1BB42Lga6esHmuHYi/Pwc7zHnAGlnCFUmBLiEgDF8TdUk5Pscg+GypRC2OG01ZwBGs4Qp8ydF0RfhABHP9Xkgn52fg5KkwpgM64lIbYcK4nQmZPbV0Mu6L02eMCD2Kv8mgzRM0fpwq3E7SSfRtqhfrDJSE/Hke7PvGb/ONbu6bavlHxf5XHIfJnLR4NYToYeYXph2QjFuVSomSNvGm7lyQemhqF3YgBSKrJwjn5R72nrDsHO/vIGUJJhkXdP9IGz9UZJ8gNV2Ty54MVz4Vn4r87I+HjvqGVztYaqtZSeMMOxyHPq8vC2LkBJwi2w4izNkudH5y6eudhzIS6BTA8Y5QEhvZqSV3a+hqrOWjhUfQpm5mdVk5PnxGvL5gHxZAvNkpMEIz4MflZFrjgPUGERT3awsoOi+OuQ4htrZERc+WHV5LS2bB6gqmY6mc7c1Aih0KjZectou3weoJLKmkxG3I25BLFekUY5Q43ba7rfyYch1XPTJCIsPjL9my9O5Am15C2j36BhqEXeAHIt1XOpCyncidKkfMXkpL/ZUMjsDzjTPEBCzQTVc6nF6TjivKIUkz/regOPf1Szmx1WP0CWUjPRM9GvuOpJ6VvHOiDnfZ5UdySdB6iToTi35LSrIs+uvQy/pLsidj8gyJfR77D3acbicaghJ7en15zhs6UZ0VtYp3pG40eE1B9jM+NQ0lbOH0egkx/oLHSyt/1C3W241nAPxqb/yDWl1dSUpuJHmdK2nEoqVTUqLOK2nJIMxTmFmsK2nCSNDKCK2LhOryIjZyFCOcNDkd5qf9eRnM7mIHFzhlcqPRQTDFatx85jEB+FhsSTXqmIDnKJ6Hm+ieKUQoVuKxUOVhyr0HeZPM95+S/AADh6LHRZTLS3AAAAAElFTkSuQmCC";
deleteIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMLSURBVHjaxFdNSBtBFH47m2hSkILYoFA8lILoSRFEYgrVeKrSXjzVHIrnFg96qK1QvGgPBoQcBU9681LQnoz2kBQpFD0pQikeCpUggpcmGtf0vc3MutnN7E+ryYMPlp3Z+d68ee97O8pyUxNYrBUxhuhDRBB/ECWwm4oIeRw/R3xHrCNO+HgY0RYwfUDPc4hpRAPcvr1CJBGLiI+IB4jfARP5J8QzuFujjb1DRBHPEXnGB+ZqQG62p4i39MD4mU9D7Y04WxlPuIY6OECcY4xnu9QeqSq8nJ2Fx6rqeWWam1ha0r91sV7GS01KHltdhfDkJMR2djw5QXNobmhiAp5sbMBDxpym32e8TqXkwaEhUBobIdDd7eqEIKe5pYsLUNvbIb656RSJe0wiItA/MwPB4WFQwuEboXBwwkpeyuVAiUQgODAA0WRS5kBBGp9vCwugHRzY5a2jA6JraxVOyMgpclf7+7A7NSWj0aQO/NA0yGD4aQFh+uKnpxAcHDQiYSPHcYN8bw8yOJfWklnAKUP0DzmZ2tlZXrylRT8WcRziaAzy5mZj57QBJ3IhRODmBO2imE4b5OacqAg7keO4Tu6yc7MDqhcnvo6Pg3Z4aBszyLlzfsiFAyEvE0UkKnIin785838gR1OkOuBm+s7Pzso7xzMvvyz5XUauA451TjsXYRfklBM9PRDb3vYj2wXmm9xSajad6Oqy6YSDaex/yOnMbTqBkQnG4557B/NNzsMuEk4kZkVCeuwdjg44nbk52w2dwLlChLz0Dlcd6McGYpBbwm4tNUMnjo6q9o4+bGy+dYAaSDGbrSg1pzqvqhN4bEWsil1sbL51gBZMj4yAdnzsWWTMTlDkiltbkEkk4Kf8G10HzmWjv66vITs6CoWVFc8KJ5zIp1Ju5GQ5BW9Gr/EhBfWxN4xfly7rQE6c64zf1Rbr4ABxnggdoLvalxqSf0Z8EGUY5hdFuqvN3/FxXHKOF4gr8UvWRrdUuigi3vOEpNtSL/23U6lQ16LGUa2OPY7n6D/Xcj3X7a8AAwAd5K3Nw/+quwAAAABJRU5ErkJggg==";
resetIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANFSURBVHjaxFddSBRRFP52nCw3TZNN1qUi6aEiYiutQAkUJSozrWz7Q2h87EnCh6gHXQKJsIcMInpwH4QM8aFYSogQiYzKUgvEh17qRWX7IUtTTNfOmbnjuuvuzCy57gffzrJ39n5nzj3nu3NtrdcRCSexmrifmEP8Q5zHUqQQ11gcHye+J3YSx8R4GjFXXvQH/u4l1hNTsfy4SLxFbCbeIG4gjsqLxB8TjyKx4Ae7SiwkHidOSWLAuwLii1FMvMJfJLHm9Vh5sKZTEgWXmoQAWLNaEtWeLOTLotUsY+8OwH2gBkg/BKxyAbMBIEidNtmDD2/a0D8culeyadfgfMzpMmXRp6ZwZAEVHqpVx2WaOZ06fxr4OwLYqaBt1O7ra+F23YP74E34O7xItwMlp9ppTIav5XSsae1yDBMJQ+FuYFtpH1lHgfaDKj6mZYDFFx6ZVHMaUVFbpgW3jjptatBo6mnJTDw7M0Kc0z3eQRZyCRjOBoYogC/Uwb+fhoKTNwIZx8KDi4452eyOyjMNIfG5H8Dnw/C190Xc1aVSqakgc22hzDitiEP3AcOCg6M+9GRRxTVszqWPrPNxiZsGoFa7XnCU9ljijNKq27TmVXGJ63tASsxRbjW94HjdjcDjwYmlv/96ZBpA7JBlp6h2uk52G07ke9BLn73xGpFNMvQBLro41zRO2CVDH+CU6uJryxIRgIkPkL2GrLAuEQHMGQbA3q4aj5qBYigXSkxnVDx5UE6sXp42VDeWb83CB2YA113DIJRz+cDWfmD7CJSTGZbb0BD+jgbN22Xy/dQtQF43lLrnwHdyvEm6zgfV7CDzLNGj7QeMTQ/po/w/fYAT8JOWoqsI7iO9WgCqP5RpXNiYRsI3pulBfHpRbnkJTHuMl8LfWgQEGkM1EU2cx7424UnrHrwcsOYDlt8HOBO++14U7PRi174aLe2c7hQHzfAKmHiG4f42vP4Ynw/I4tBgGe+GmNQdaFuONgxI4sSSLLyVxHFpJgnirNkpibNacxICYM0x3Yj4rNazguL8/tagt2GaOCjyWa0pwcsxIzQqibO6EfHL1CgfFInXiHfEaSmf39u5VdhaeOOI1scWxwNccBHHcxX/BBgAfRzsOqsfZ/kAAAAASUVORK5CYII=";
loaderIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAACXBIWXMAAAZ2AAAGdgEpJm+AAAABe0lEQVR4Xl2OPUiUcQCHn7/33qmn6HVi0QlBLia5+EGQDUFBYdSk0BQUJAbREmRbs0tKuBTmIjRYGDk0dJA1XEGFox9wctcgWr7q8Xad78e9vr8GB8Nn+vHwGx6jiYEBMsu3iIWdRGEaNbrst27ihwU2qq8tjice0dR+nqrZIvIDAmOwatqw7AvEK6ctXOMSduwRraUIyzGisqh4hm3Xppr+ZZSdusbMcDMN9W3EW1qQEfvbNiU3z92XQlLd+xXdBniQV/fIqvpA5umCLktKATD2Qs1ypnNSl6QuqTK2ND+vDEfRzvOH2pwd/d9Zh1PJVzm+2SWAm4ca4MMnnbkypH6tM64vDN97osGFRfUCICk9N6ce7d2ZPGhA+sr9+rM6JymDvO835F+VtCLtIjkcnH5QUfnjJaPPo2+4eH0ooAGwER5wilp/EbLZtxbFYpzfj50EwR8SdaLqRZR+Wjg7x/BPYpFffsaJ1nVisQyhW0vwt4Yw5REkCzi8+wfsmspUeBeGZgAAAABJRU5ErkJggg==";
markerIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJaSURBVHjaxJcxS1xBEMf3nod6h4IoxkRUVFLZxDRqY0JCtBDRqKUgYiEWKaxMehFJlcLCys6AGAyGQBREyBcIaKF2VyiYEC00EbXwfP7nnAfrY9c3b6OXgd8d7Ns3Mzs7M/s24fu+0iQJukAHqAXF4BTcmMRSEPP5PlgD38AFSIFHihxgmsGWf/9CNlpBI0jpxo/9/MlfdkIl8ENh3wRNKr+yDZ4Eex7H+DlYBusgw2ONoBP0gCKhnqacbURgJkboPoNqLW8CUrynxKcY+mbo5WXh5GmDYd14ShubFOpcosmrgokLMYwHfJRE1OM6vU1OwBvD+HUdK/UTnBmevxXoTnuWJqLLAjg0GK/hZtVgca4QLEYltCfI1hWDcsr6efAdbIEPlsh8jdCdlTiQMShvBy3a+DioN2xLJkp5UuDApWFlpvfKgRfKicso5ZII1BlWRnmxG9qmI0NC1kkiUBAxp4Pbpq6ckvIpeM2Z/sNSDS8ilyfoA4eg0qEPlIDfd9EHKsA7hz4wBSrvog8EWT4cw/iopXk59YEgWefAe46IzXiae8KsMMGzUgcCJybADnfAsPE2rvtxoXFxGYaF9nXIMD4GquIqc3FAcfnpzagU9Loo8gR9QFm63kstIftBmasDxY5RGNCq4ZmjjoSkD9ikj4/kA9DtqCOdFPYBWzI+5op44KjjPMk3FlfpVv8me3QvoE/pL44KfvH/Q8f3e//7xcTji+IIf3zmS/6AQbLtcSlRJr9ir/Kx8udgI1eHdJ5rB4t+Pa+m53zA0HUsa6rjGM/3QtfznFwJMABfWkOfHxFX4gAAAABJRU5ErkJggg==";
markerIconRed = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ1SURBVHjavJc/TFRBEMYfy4viRQyRgEj0osTKRmkMDRgMWFyIfw6oiIZQGAoLKsGCDhKpKKm0UgEbSEiOAjVakZCY2IgVVwA5CokxaoSCO/yGzEs2z13e7J7wJb9mX97M7uzM7G7F2uBgoCkEGdAJLoIq8AfsB/+q0vF7ASyBHNgDp8D5UPvhOngFrgZHp8dgFQyAb2BLac4/HrHzSOTjLagDO4rDTis/ExyfToMX5Dvac5eV74J58A7keawJ3AZ3wEmHSGRCTjip5ngfC7HxZfAejIAJ0CO016k42yV6BrIG5wfZTAnFEekFY0KbjYpLJUmz4KlhXHe+o42PgtcCuxWK6/Qw/eawS51HGhbYTilLE9E1A7YNzi/w9l22TO4EeJOU0EoQpkWDccr6l+AD+AImLZFZSLBdlEwgbzDeCm5o40PgkmFb8knGQ8EESoaVmf47C1QsJ0pJxiURSBtWRnmxHtumH4aETEsiUJnULPgA0Y1TUjaDe5zpnyzV0C6JQFIf6AO/DMa/g2mwAjYN36nfP/gffaCWW6xrHxjnE6/sPhBleb+D80eW5uXVB6Ktes4HTe0hzlPcE6aECV6UTiCaxBPwlTtg3HkL1/2Q0Lm4DOOifX1oGKfL5TlXYz4TCLj89GZUDe76GFKCPhBYut4tLSHpnlDjO4Eqzyh0a9XQ5mlD1Adsus9HMl2vuzxtpEJhH7Al4xWuiHpPG7uh4Y7noq6gPG0ofi75Ksv4aknxW23V00AD4yPymVP8UBzgy+dx6SefsnuKS4kyuaOMSLiu/Cb4HF1I9EfFNe153kh1ygcMPceKpjp2+L4Re54f6K8AAwBBJI/RyNsHlQAAAABJRU5ErkJggg==";
if (plugin.squadOP.JSONdata != undefined) {
var jdata = plugin.squadOP.JSONdata;
if (!! jdata.squads && jdata.squads.length > 15) {
$('#dialog-sop-main-window').css("min-height", ($(window).height()-180)+"px");
}
out = "<div id='sop_err' style='display:none;background-color:#FF3333;color:white;text-align:center;padding:2px;margin-bottom:3px;'></div>";
out += "<div style='width:100%;border:1px solid "+defColor4+";margin:0px 0px 8px 0px;position:relative;'>";
out += "<h4 style='text-align:center;background-color:"+defBgColor2+";margin:0;font-size:110%;'>"+jdata.event_name+"</h4><div style='position:absolute;right:2px;top:-1px;display:none;' id='sop_loader'><img src='"+loaderIcon+"' height='10' /></div>";
out += "<div id='sop_footer'>"
+ "<a href='javascript:void(0)' onclick='window.plugin.squadOP.showOptionsDialog()'>"+soplng.options+"</a>&nbsp;|&nbsp;"
+ "<a href='javascript:void(0)' id='undockLink' onclick='window.plugin.squadOP.undockSquadList()'>"+(sop_docked?'undock':'redock')+"</a>&nbsp;|&nbsp;";
//+ "<a href='javascript:void(0)' onclick='window.plugin.squadOP.showLinkSimDialog()'>Link Sim</a>&nbsp;|&nbsp;"
out += "<a href='javascript:void(0)' onclick='window.plugin.squadOP.showImportDialog()'>Import/Export</a>&nbsp;|&nbsp;"
out += "<a href='javascript:void(0)' onclick='window.plugin.squadOP.toggleDualMonMode()'>dual mon</a>&nbsp;|&nbsp;"
out += "<a href='javascript:void(0)' onclick='window.plugin.squadOP.delOpKey()'>"+soplng.logoff+"</a>"
+ "</div>";
out += "</div>";
if (jdata.issueAnz > 0) {
out+= "<div style='width:100%;border:2px dotted #FF0000;margin:3px 0 8px 0;text-align:center;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.openIssueDialog()'>"+jdata.issueAnz+" "+soplng.waitingIssue+"</a></div>";
}
window.plugin.squadOP.highlightPortals = {};
if (sopSquadFilter != "") {
var filter = sopSquadFilter.split(",");
}
out+= "<table style='width:100%;'>";
$.each (
jdata.squads,
function (rowIndex, sq) {
var hideFromList = false;
if (sopSquadFilter != "" && sopSquadFilter != 0) {
var found = false;
$.each(filter, function( index, value ) {
if (sq.name.indexOf(value) === 0) {
found = true;
return true;
}
});
if (found == false) {
window.plugin.squadOP.showIcon(sq.dbid, sq.id, sq.name, sq.lat, sq.lon, sq.status, sq.pos);
return true;
}
}
target_out = "<td colspan='4'></td>";
var strLimit = window.plugin.squadOP.teamNameLimit;
var nameTrunc = sq.name;
if (nameTrunc.length > strLimit) {
nameTrunc = jQuery.trim(sq.name).substring(0, strLimit) + "..";
window.plugin.squadOP.squadNameAreVeryLong = true;
}
if (sq.target) {
strLimit = 30;
var title = sq.target.title;
if (title.length > strLimit) {
title = jQuery.trim(title).substring(0, strLimit) + "..";
}
var transportClass = "";
if (sq.type == 2) {
transportClass = "bike";
}
else if (sq.type == 3) {
transportClass = "car";
}
if (window.plugin.squadOP.highlightPortals[sq.target.guid] == undefined) {
window.plugin.squadOP.highlightPortals[sq.target.guid] = {};
}
window.plugin.squadOP.highlightPortals[sq.target.guid][sq.dbid] = true;
//target_out = "<td style='background-color:#002600;'><a href='javascript:void(0)' onclick='window.map.setView({lat: "+sq.target.lat+", lon: "+sq.target.lng+"});'><small>"+sq.target.title;
target_out = "<td style='background-color:"+defBgColor2+";";
if (sq.outsync != undefined && sq.outsync == 1) {
target_out+= ";border:1px solid #9B0D0D;";
}
target_out += "'><a href='javascript:void(0)' "+window.plugin.drawPortalLinkHandler(sq.target.guid, sq.target.lat, sq.target.lng)+"><small>"
+ title;
// onclick='window.renderPortalDetails(\""+sq.target.guid+"\");' ondblclick='window.zoomToAndShowPortal(\""+sq.target.guid+"\", ["+sq.target.lat+","+sq.target.lng+"]);'
if (sq.targetAnz > 1) {
target_out+= " (+"+(sq.targetAnz-1)+")";
}
target_out+= "</small></a></td>";
if (!sop_docked) {
target_out+= "<td style='text-align:right;width:10px;'><div style='padding-top:3px;'>";
if (sq.lat != 0 && sq.lon != 0) {
target_out+= ""+(Math.round(sq.distance * 10 ) / 10)+"&nbsp;km";
}
else target_out+= "---";
target_out+= "</div></td>";
}
target_out+= "<td style='text-align:center;width:16px;'><div style='padding-top:3px;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.setSquadTargetDone(this, "+sq.target.target_id+", "+sq.dbid+")'><img width='16' src="+acceptIcon+"></a></div></td>"; // title='target completed'
target_out+= "<td style='text-align:center;width:16px;'><div style='padding-top:3px;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.setSquadTargetToIssue(this, "+sq.target.target_id+", "+sq.dbid+")'><img width='16' src="+resetIcon+"></a></div></td>" //title='back to issues'
target_out+= "<td style='text-align:center;width:16px;'><div style='padding-top:3px;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.delSquadTarget(this, "+sq.target.target_id+", "+sq.dbid+")'><img width='16' src="+deleteIcon+"></a></div></td>"; //title='cancel target' }
}
else target_out+= "<td></td>";
out+= "<tr class='sop_squad' cellspacing='2'";
out+= ">";
out+="<td class='center' style='width:20px;'>"
if (sq.lat != undefined && sq.lat != 0 && sq.lon != 0) {
out += '<a href="javascript:void(0)" onclick="window.map.setView({lat: '+sq.lat+', lon: '+sq.lon+'});">';
}
out+= "<span class='sop_st"+sq.status+" "+transportClass+"' title='"+window.plugin.squadOP.statusList[sq.status]+"'></span>"
if (sq.lat != undefined && sq.lat != 0 && sq.lon != 0) {
out += "</a>"
}
out+= "</td>";
out+= "<td style='background-color:"+defBgColor2+";width:50px";
out+= "'><a href='javascript:void(0)' onclick='window.plugin.squadOP.openSquadDialog("+sq.dbid+");return false;'><b>"+nameTrunc+"</b>"
if (sq.nmc != undefined && sq.nmc > 0) {
out+= " <b style='background-color:#ececec;color:black;padding:0 2px;border-radius: 4px;font-size:80%;' title='" + sq.nmc + " new chat messages'>" + sq.nmc + "</b>";
}
out+= "</a></td>";
out+= target_out;
if (sq.lat != undefined && sq.lat != 0 && sq.lon != 0) {
out+= '<td><div style="padding-top:3px;width:16px;"><a href="javascript:void(0)" onclick="window.map.setView({lat: '+sq.lat+', lon: '+sq.lon+'});"><img width="16" src="'+(sq.outdated!=1?markerIcon:markerIconRed)+'"></a></div></td>'; //title="'+(sq.outdated!=1?'show on map':'Location outdated')+'"
}
else out+= '<td></td>';
out+= "</tr>";
window.plugin.squadOP.showIcon(sq.dbid, sq.id, sq.name, sq.lat, sq.lon, sq.status, sq.pos);
}
);
out+= "</table>";
//if (sop_docked == true) {
out+= "<div id='sop_logs'></div>";
//}
if (window.plugin.squadOP.squadNameAreVeryLong) {
$('#dialog-sop-main-window').parent().css("width", "580px");
}
$('#sop_out').html(out);
//window.changePortalHighlights('Target Portals');
return true;
}
}
catch (e) {
console.debug("Error drawSquadList:"+e);
}
}
window.plugin.squadOP.highlightPortals = {}
window.plugin.squadOP.portalHighlighterIsTarget = function(sopData) {
if (window.plugin.squadOP.highlightPortals[sopData.portal.options.ent[0]]) {
var fill_opacity = 85*.85 + .15;
color = 'red';
var params = {fillColor: color, fillOpacity: fill_opacity};
sopData.portal.setStyle(params);
}
window.COLOR_SELECTED_PORTAL = '#f0f';
}
window.plugin.squadOP.drawLogsTimeoff = 1;
window.plugin.squadOP.drawLogsdata = new Array();
window.plugin.squadOP.drawLogs = function() {
logs = window.plugin.squadOP.drawLogsdata;
if (logs.length > 0) {
out = "";
for (var i=0,j=logs.length;i<j;i++) {
var date = new Date((parseInt(logs[i][1])+((parseInt(window.plugin.squadOP.drawLogsTimeoff)-1)*3600))*1000);
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
hours = hours < 10 ? "0"+hours : hours;
minutes = minutes < 10 ? "0"+minutes : minutes;
seconds = seconds < 10 ? "0"+seconds : seconds;
var formattedTime = hours + ':' + minutes + ':' + seconds;
out = "<tr><td>"+formattedTime+"</td><td nowrap>"+window.plugin.squadOP.drawLogsAction(logs[i])+"</td></tr>" + out;
}
out = "<table width='100%'>"+out+"</table>";
$("#sop_logs").html(out);
$("#sop_logs").show();
}
}
window.plugin.squadOP.drawLogsAction = function(sopData) {
//<a title="Bekenntniskirche Treptow" ondblclick="window.zoomToAndShowPortal(&quot;5e7aca0d0a534199857488f61c995046.16&quot;, [52.489168,13.452053]);" onclick="window.renderPortalDetails(&quot;5e7aca0d0a534199857488f61c995046.16&quot;);" href="javascript:void(0)"><small>Bekenntniskirche Treptow</small></a>
ret = "none";
switch(sopData[0]){
case 2:
if (window.portals[sopData[4]] != undefined) {
var p = window.portals[sopData[4]];
ret = "[new target]</td><td><a ondblclick='window.zoomToAndShowPortal(\""+sopData[4]+"\", ["+p._latlng.lat+","+p._latlng.lng+"]);' onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[3]+"</b></a> for <b>"+sopData[2]+"</b></td><td>"+sopData[5]+"";
}
else {
ret = "[new target]</td><td><a onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[3]+"</b></a> for <b>"+sopData[2]+"</b></td><td>"+sopData[5]+"";
}
break;
case 3:
if (window.portals[sopData[3]] != undefined) {
var p = window.portals[sopData[3]];
ret = "[new task]</td><td><a ondblclick='window.zoomToAndShowPortal(\""+sopData[3]+"\", ["+p._latlng.lat+","+p._latlng.lng+"]);' onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[2]+"</b></a></td><td>"+sopData[4]+"";
}
else {
ret = "[new task]</td><td><a onclick='window.renderPortalDetails(\""+sopData[3]+"\");' href='javascript:void(0)'><b>"+sopData[2]+"</b></a></td><td>"+sopData[4]+"";
}
break;
case 4:
ret = "<span style='color:#B57171'><b>[target abored]</b></span></td><td><b>"+sopData[3]+"</b> for <b>"+sopData[2]+"</b></td><td>"+(sopData[5]!=null?sopData[5]:'')+"";
break;
case 5:
if (window.portals[sopData[4]] != undefined) {
var p = window.portals[sopData[4]];
ret = "<span style='color:#03FE03'>[target done]</span></td><td><a ondblclick='window.zoomToAndShowPortal(\""+sopData[4]+"\", ["+p._latlng.lat+","+p._latlng.lng+"]);' onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[3]+"</b></a> for <b>"+sopData[2]+"</td><td>"+sopData[5]+"";
}
else {
ret = "<span style='color:#03FE03'>[target done]</span></td><td><a onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[3]+"</b></a> for <b>"+sopData[2]+"</a></td><td>"+sopData[5]+"";
}
break;
case 6:
ret = "<span style='color:#A7DA9F'>[task assigned]</span></td><td><b>"+sopData[3]+"</b> for <b>"+sopData[2]+"</b></td><td>"+sopData[5]+"";
break;
case 7:
if (sopData[7] != undefined) {
ret = "<span style='color:#CADFAA'>[squad login]</span></td><td><b>"+sopData[2]+"</b> ("+sopData[3]+", "+sopData[4]+", "+sopData[5]+", "+sopData[7]+")";
}
else {
ret = "<span style='color:#CADFAA'>[squad login]</span></td><td><b>"+sopData[2]+"</b> ("+sopData[3]+", "+sopData[4]+", "+sopData[5]+")";
}
break;
case 8:
if (window.portals[sopData[4]] != undefined) {
var p = window.portals[sopData[4]];
ret = "<span style='color:#03FE03'>[target done]</span></td><td><a ondblclick='window.zoomToAndShowPortal(\""+sopData[4]+"\", ["+p._latlng.lat+","+p._latlng.lng+"]);' onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[3]+"</b></a> by <b>"+sopData[2]+"";
}
else {
ret = "<span style='color:#03FE03'>[target done]</span></td><td><a onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[3]+"</b></a> by <b>"+sopData[2]+"</a>";
}
break;
case 9:
if (window.portals[sopData[3]] != undefined) {
var p = window.portals[sopData[3]];
ret = "<span style='color:#B57171'>[task abored]</span></td><td><a ondblclick='window.zoomToAndShowPortal(\""+sopData[3]+"\", ["+p._latlng.lat+","+p._latlng.lng+"]);' onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[2]+"</b></a></td><td>"+sopData[4]+"";
}
else {
ret = "<span style='color:#B57171'>[task abored]</span></td><td><a onclick='window.renderPortalDetails(\""+sopData[3]+"\");' href='javascript:void(0)'><b>"+sopData[2]+"</b></a></td><td>"+sopData[4]+"";
}
case 10:
if (window.portals[sopData[3]] != undefined) {
var p = window.portals[sopData[3]];
ret = "<span style='color:#a0974c'>[target to tasks]</span></td><td><a ondblclick='window.zoomToAndShowPortal(\""+sopData[3]+"\", ["+p._latlng.lat+","+p._latlng.lng+"]);' onclick='window.renderPortalDetails(\""+sopData[4]+"\");' href='javascript:void(0)'><b>"+sopData[2]+"</b></a></td><td>"+sopData[4]+"";
}
else {
ret = "<span style='color:#a0974c'>[target to tasks]</span></td><td><a onclick='window.renderPortalDetails(\""+sopData[3]+"\");' href='javascript:void(0)'><b>"+sopData[2]+"</b></a></td><td>"+sopData[4]+"";
}
break;
case 11:
ret = "<span style='color:#95D4A5'><b>[OP Login]</b></span></td><td><b>"+sopData[2]+"</b> from <b>"+sopData[4]+"</b></td><td>";
break;
case 12:
ret = "<span style='color:#9E8300'><b>[MSG]</b></span></td><td><b>@"+sopData[4]+"</b> "+sopData[2]+"</td><td>"+sopData[3]+"</td><td>";
break;
} // switch
return ret;
}
window.plugin.squadOP.doKMLExport = function() {
alert("draw data:"+localStorage['plugin-draw-tools-layer']);
if (localStorage['plugin-draw-tools-layer'] != undefined) {
window.plugin.squadOP.saveData.push({
requestType: 'saveKML',
kml: localStorage['plugin-draw-tools-layer'],
callback: window.plugin.squadOP.doKMLExportCallback
});
}
else {
alert("Keine KML Daten gefunden!");
}
}
window.plugin.squadOP.doKMLExportCallback = function(sopData) {
alert("KML wurde auf dem Server gespeichert!\n"+sopData);
}
window.plugin.squadOP.toggleDualMonMode = function() {
var sidebarWidth = 340;
var textHeight = 200;
var textInputOffset = 23;
var minMapWidth = screen.width - sidebarWidth;
var dualSpace = $(window).width() - screen.width;
if (dualSpace > 100) {
$("#map").css("max-width", minMapWidth+"px");
$('#scrollwrapper').css("left", minMapWidth+"px");
$('#updatestatus').css("left", minMapWidth+"px");
$('#chatcontrols').css("left", (minMapWidth+sidebarWidth)+"px");
$('#chat').css("left", (minMapWidth+sidebarWidth)+"px");
$('#chatinput').css("left", (minMapWidth+sidebarWidth)+"px");
//$('#chat').css("height", (textHeight+textInputOffset)+"px");
//$('#chatcontrols').css("bottom", (textHeight+(textInputOffset*2))+"px");
$('.leaflet-top.leaflet-right').css('margin-right', '0px');
$('#sidebartoggle').hide();
}
}
window.plugin.squadOP.undockSquadListDialog;
//window.plugin.squadOP.docked = true;
window.plugin.squadOP.undockSquadList = function() {
var squadHtml = $('#sop_sidebar').html();
if (squadHtml != "") {
var dialogTitle = "SOP [v"+window.plugin.squadOP.sopScriptVersion+"]";
$('#sop_sidebar').html("");
window.plugin.squadOP.undockSquadListDialog = dialog({
text: squadHtml,
title: dialogTitle,
id: 'sop-main-window',
position: { my: "left top", at: "left+45 top+10", of: window },
width: (window.plugin.squadOP.squadNameAreVeryLong==true?590:490),
buttons: false,
beforeClose: function( event, ui ) {
window.plugin.squadOP.docked = true;
sop_docked = true;
squadHtml = $('#dialog-sop-main-window').html();
$('#sop_sidebar').html(squadHtml);
$('#undockLink').html("undock");
}
});
$('#undockLink').html("redock");
window.plugin.squadOP.docked = false;
sop_docked = false;
}
else {
window.plugin.squadOP.undockSquadListDialog.dialog('close');
window.plugin.squadOP.docked = true;
sop_docked = true;
}
}
window.plugin.squadOP.showOptionsDialog = function() {
var win = "<table class='vertical-center'>"
+ "<tr>"
+ "<td><b>Update-Interval:</b></td>"
+ "<td><input type='text' id='sop_updateInterval' value='"+squadIntTime+"' size='5' style='text-align:right;' />&nbsp;<small>Millisekunden</small></td>"
+ "</tr>"
+ "<tr>"
+ "<td><b>Transfer-Interval:</b></td>"
+ "<td><input type='text' id='sop_asyncInterval' value='"+asyncIntTime+"' size='5' style='text-align:right;' />&nbsp;<small>Millisekunden</small></td>"
+ "</tr>"
+ "<tr>"
+ "<td><b>Tracker Waypoints:</b></td>"
+ "<td><input type='text' id='sop_trackerWaypoints' value='"+trackerWaypoints+"' size='5' style='text-align:right;' />&nbsp;<small>Steps</small></td>"
+ "</tr>"
+ "<tr>"
+ "<td><b>Squad-List Sorting:</b></td>"
+ "<td><select id='sop_squadListSort' class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'>"+window.plugin.squadOP.drawSquadSortSelect()+"</select></td>"
+ "</tr>"
+ "<tr>"
+ "<td><b>Map-Marker:</b></td>"
+ "<td><select id='sop_mapMarkerType' class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'>"+window.plugin.squadOP.drawMarkerTypeSelect()+"</select></td>"
+ "</tr>"
+ "<tr>"
+ "<td><b>SOP-Theme:</b></td>"
+ "<td><select id='sop_SelectedTheme' class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'>"+window.plugin.squadOP.drawThemeSelect()+"</select></td>"
+ "</tr>"
+ "<tr>"
+ "<td><b>Squad-Filter:</b></td>"
+ "<td><input type='text' id='sop_squadFilter' value='"+sopSquadFilter+"' size='15' />&nbsp;<small>seperate by comma</small></td>"
+ "</tr>"
+ "</table>";
dialog({
text: win,
title: soplng.options,
id: 'sop-options-window',
width: 450,
buttons: [
{
text: soplng.save,
click: function() {
window.plugin.squadOP.saveData.push({
requestType: 'saveOptions',
squadIntTime: $('#sop_updateInterval').val(),
asyncIntTime: $('#sop_asyncInterval').val(),
trackerWaypoints: $('#sop_trackerWaypoints').val(),
squadListSort: $('#sop_squadListSort').val(),
mapMarkerType: $('#sop_mapMarkerType').val(),
sopSelectedTheme: $('#sop_SelectedTheme').val(),
sopSquadFilter: $('#sop_squadFilter').val(),
callback: window.plugin.squadOP.showOptionsDialogCallback
});
$( this ).dialog( "close" );
}
},
{
text: soplng.cancel,
click: function() {
$( this ).dialog( "close" );
}
}
]
});
}
window.plugin.squadOP.showOptionsDialogCallback = function(err) {
if (err != "") {
alert(err);
}
else {
//alert("Bitte die Seite neu laden, um die �nderungen anzuwenden.");
}
}
window.plugin.squadOP.showImportDialog = function() {
var iconImport = 'data:image/png;base64,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';
var iconExport = 'data:image/png;base64,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';
var win = "<style>#dialog-sop-import-window .ui-button.ui-widget {border-radius: 5px;}</style>" +
"<center><font color='red'><b>"+soplng.importWarning+"</b></font></center><br/>" +
"<table class='vertical-center ui-dialog-buttonset' cellspacing=10 cellpadding=10>" +
"<tr>" +
"<td><b>Portal Keys:</b></td><td align='left'>";
if(typeof window.plugin.keys == "function") {
win += "<button onclick='window.plugin.squadOP.getPortalKeys()' class='ui-button ui-widget'><img style='width:16px; height: 16px' src='"+iconImport+"' alt='import portal keys'> Import</button>";
win += "<button onclick='window.plugin.squadOP.dialogCopyKeys()' class='ui-button ui-widget'><img style='width:16px; height: 16px'src='"+iconExport+"' alt='export portal keys'> Export</button>";
win += "<button onclick='window.plugin.squadOP.getPortalKeysOfSquads()' class='ui-button ui-widget' style='margin-top:3px;'><img style='width:16px; height: 16px' src='"+iconImport+"' alt='import squad portal keys'> Import Squads Inventar</button>";
}
else {
win += '<span style="color:red"><a href="http://iitc.jonatkins.com/release/plugins/keys.user.js">Keys Plugin</a> not installed</span>';
}
win += '</td></tr>';
win += "<tr>"
+ "<td><b>Bookmarks:</b></td><td align=left>";
if(typeof window.plugin.bookmarks == "function") {
win += "<button id='getbookmarkslink' onclick='window.plugin.squadOP.getBookmarks()' class='ui-button ui-widget'><img style='width:16px; height: 16px' src='"+iconImport+"' alt='import bookmarks'> Import</button>";
win += "<button onclick='window.plugin.squadOP.dialogCopyBookmarks()' class='ui-button ui-widget'><img style='width:16px; height: 16px' src='"+iconExport+"' alt='export bookmarks'> Export</button>";
}
else {
win += '<span style="color:red"><a href="http://iitc.jonatkins.com/release/plugins/bookmarks-by-zaso.user.js">Bookmarks Plugin</a> not installed</span>';
}
win += "</td></tr>";
win += "<tr>"
+ "<td><b>Draw Tools:</b></td><td align=left>";
if(typeof window.plugin.drawTools == "function") {
win += "<button id='getdrawtoolslink' class='ui-button ui-widget' onclick='window.plugin.squadOP.getDrawTools()'><img style='width:16px; height: 16px' src='"+iconImport+"' alt='import drawings'> Import</button>";
win += "<button onclick='window.plugin.squadOP.dialogCopyDrawtools()' class='ui-button ui-widget'><img style='width:16px; height: 16px' src='"+iconExport+"' alt='export drawings'> Export</button>";
}
else {
win += '<span style="color:red"><a href="http://iitc.jonatkins.com/release/plugins/draw-tools.user.js">Drawtools Plugin</a> not installed</span>';
}
win += "</td></tr>";
win += "<tr>"
+ "<td><b>Overlays:</b></td><td align=left>";
if(typeof window.plugin.AnomalyTacticalMap == "function" || typeof window.plugin.SectorTacticalMap == "function") {
win += "<button class='ui-button ui-widget' onclick='window.plugin.squadOP.getOverlays()'> <img style='width:16px; height: 16px' src='"+iconImport+"' alt='import overlays'> Import</button>";
}
else {
win += '<span style="color:red">Anomaly Plugin not installed</span>';
}
win += "</td></tr>";
win += "</table>";
dialog({
text: win,
title: soplng.importdialog,
id: 'sop-import-window',
width: 467,
buttons: [
{
text: "ok",
click: function() {
$( this ).dialog( "close" );
}
}
]
});
}
window.plugin.squadOP.showImportDialogCallback = function(err) {
if (err != "") {
alert(err);
}
else {
//alert("Bitte die Seite neu laden, um die ?nderungen anzuwenden.");
}
}
window.plugin.squadOP.saveSquadToPortalSelectedPortal = false;
window.plugin.squadOP.lastAssignTeam = false;
window.plugin.squadOP.xhrSaveSquad = false;
window.plugin.squadOP.htmlEscape = function(t){
return t.replace(/&/g, '&amp;')
.replace(/>/g, '&gt;')
.replace(/</g, '&lt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&apos;');
}
window.plugin.squadOP.htmlUnEscape = function(t){
return t.replace(/&amp;/g, '&')
.replace(/&gt;/g, '>')
.replace(/&lt;/g, '<')
.replace(/&quot;/g, '"')
.replace(/&apos;/g, "'");
}
window.plugin.squadOP.handleActionSelChangeSenderGuid = false;
window.plugin.squadOP.handleActionSelChange = function(ele, textfieldname) {
if(ele.value == 3) {
if (window.selectedPortal == null) return;
//Lets do some more. Store portal lat,long, name address and guid.
var portal = new Object();
//var portal_full = window.portals[window.selectedPortal];
var guid = window.selectedPortal;
var p = window.portals[guid];
var d = p.options.data;
var label = d.title;
var lat = p.getLatLng().lat;
var lng = p.getLatLng().lng;
var details = portalDetail.get(guid);
window.plugin.squadOP.handleActionSelChangeSenderGuid = guid;
portal.title = label;
//portal.address = details.descriptiveText.map.ADDRESS;
portal.lat = lat;
portal.lon = lng;
portal.guid = guid;
var current_selected_portal = portal.title + ' <' + portal.lat+','+portal.lon+'>';
dialog({
text: soplng.linktohelp + '<br><br><b>' + current_selected_portal + '</b>',
title: soplng.linktodlgtitle,
id: 'select-link-target-portal',
width: 470,
close: function() {
if (window.selectedPortal == null) return;
//Lets do some more. Store portal lat,long, name address and guid.
var portal = new Object();
//var portal_full = window.portals[window.selectedPortal];
var guid = window.selectedPortal;
var p = window.portals[guid];
var d = p.options.data;
var label = d.title;
var lat = p.getLatLng().lat;
var lng = p.getLatLng().lng;
var details = portalDetail.get(guid);
portal.title = label;
//portal.address = details.descriptiveText.map.ADDRESS;
portal.lat = lat;
portal.lon = lng;
portal.guid = guid;
var sel_portal = portal.title + ' <' + portal.lat+','+portal.lon+'>';
if(current_selected_portal != sel_portal) {
window.plugin.nl2br($('#'+textfieldname).text(sel_portal));
$('#sop_link_target').attr('value', window.plugin.squadOP.htmlEscape(JSON.stringify(d)));
} else {
alert("No Link Target selected, previous selection resetted!");
$('#sop_link_target').attr('value', "{}");
$('#'+textfieldname).text("");
}
if (window.plugin.squadOP.handleActionSelChangeSenderGuid) {
window.renderPortalDetails(window.plugin.squadOP.handleActionSelChangeSenderGuid);
}
$( this ).dialog( "close" );
},
buttons: [
{
text: soplng.close,
click: function() {
try {
$( this ).dialog( "close" );
}
catch (e) {
alert("error:"+e);
}
}
}
]
});
} else {
$('#sop_link_target').attr('value', "{}");
$('#sop_comment').text("");
}
}
window.plugin.squadOP.saveSquadToPortal = function() {
var bike_icon = "data:image/png;base64,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";
var car_icon = "data:image/png;base64,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";
var walk_icon = "data:image/png;base64,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";
try {
var curTeam = $('#squadSel').val();
if (curTeam == "") {
alert(soplng.squadSelErr+"!");
return false;
}
window.plugin.squadOP.lastAssignTeam = curTeam;
window.plugin.squadOP.saveSquadToPortalSelectedPortal = window.selectedPortal;
var portal = window.portals[window.selectedPortal].options.data;
var details = portalDetail.get(window.selectedPortal);
var squad_data = window.plugin.squadOP.getSquadById(curTeam);
var trafficIcon = walk_icon;
if (squad_data.type == 2) {
trafficIcon = bike_icon;
}
else if (squad_data.type == 3) {
trafficIcon = car_icon;
}
win = "<table style='width:100%' id='sop_directions'>";
win+= "<tr><td width='85' align='right'>"+soplng.team+":</td><td colspan='2'><b>"+$('#squadSel option:selected').text()+"</b></td><td rowspan=5><img width='32' src='"+trafficIcon+"' /></td></tr>";
win+= "<tr><td width='85' align='right'>"+soplng.targetportal+":</td><td colspan='2'><b>"+portal.title+"</b></td></tr>";
win+= "<tr><td align='right'>"+soplng.task+":</td><td colspan='2'><select id='actionSel' onchange='window.plugin.squadOP.handleActionSelChange(this, \"sop_comment\")'>"+window.plugin.squadOP.drawActionsOption()+"</select></td></tr>";
win+= "<tr><td align='right'>"+soplng.comment+":</td><td colspan='2'><textarea style='width:100%' rows='2' id='sop_comment'></textarea><input type='hidden' id='sop_link_target' value=''></td></tr>";
win+= "<tr id='sop_squad_get_directions'><td align='right'>&nbsp;</td><td colspan='2' style='vertical-align:middle;'><select id='sop_squad_directions_select'><option value='0'>current position</option><option value='1'>next portal</option></select>";
win+= '<button onclick="window.plugin.squadOP.getSquadDirectionsStart()" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">get directions</button></td></tr>';
win+= "<tr id='sop_squad_directions_loader'><td align='right'><div style='height:52px;'>&nbsp;</div></td><td colspan='2' style='vertical-align:middle;'>directions loading..</td></tr>";
win+= "</table>";
dialog({
text: win,
title: 'assign squad to portal',
id: 'assign-squad-portal',
width: 470,
close: function() {
plugin.squadOP.drawnDirections.clearLayers();
$( this ).dialog( "close" );
},
buttons: [
{
text: soplng.save,
click: function() {
try {
var portal = window.portals[window.plugin.squadOP.saveSquadToPortalSelectedPortal].options.data;
var details = portalDetail.get(window.plugin.squadOP.saveSquadToPortalSelectedPortal);
if (details.owner != "") {
portal.captured = true;
portal.capturingPlayerId = details.owner;
portal.capturedTime = details.capturedTime;
}
else {
portal.captured = false;
}
//alert(details);
portal.mods = window.plugin.squadOP.getPortalModString(details.mods);
window.plugin.squadOP.saveData.push({
requestType: 'assignPortal',
guid: window.plugin.squadOP.saveSquadToPortalSelectedPortal,
portal: portal,
details: details,
squad: $('#squadSel').val(),
action: $('#actionSel').val(),
comment: encodeURIComponent(window.plugin.nl2br($('#sop_comment').val().replace(/"/, "'"))),
//link_target: window.plugin.squadOP.htmlUnEscape($('#sop_link_target').val()),
callback: window.plugin.squadOP.saveSquadToPortalCallback
});
$('#squadSelect div.wrap').html("<div style='text-align:center'>saving...</div>");
plugin.squadOP.drawnDirections.clearLayers();
if (window.plugin.squadOP.xhrSaveSquad != false) {
window.plugin.squadOP.xhrSaveSquad.abort();
}
$( this ).dialog( "close" );
}
catch (e) {
alert("error:"+e);
}
}
}
]
});
var squad_data = window.plugin.squadOP.getSquadById(curTeam);
$('#sop_squad_directions_loader').hide();
if (squad_data.lat != 0) {
}
else {
$('#sop_squad_get_directions').hide();
$('#sop_directions tr:last').after("<tr><td align='right'>&nbsp;</td><td>Squad has no location.</tr>");
}
}
catch (e) {
console.debug("saveSquadToPortal:"+e);
window.plugin.squadOP.showLoader(false);
}
}
window.plugin.squadOP.getSquadDirectionsStart = function() {
var portal = window.portals[window.plugin.squadOP.saveSquadToPortalSelectedPortal].options.data;
var squad_data = window.plugin.squadOP.getSquadById(window.plugin.squadOP.lastAssignTeam);
var start_select = $('#sop_squad_directions_select').val();
if (start_select == 1) {
if (squad_data.target.lat != undefined) {
squad_data.lat = squad_data.target.lat;
squad_data.lon = squad_data.target.lng;
}
else {
alert("squad has no target");
}
}
window.plugin.squadOP.getSquadDirections(squad_data, (portal.latE6/1E6), (portal.lngE6/1E6));
}
window.plugin.squadOP.getSquadDirections = function(squad_data, toLat, toLng) {
try {
$('#sop_squad_directions_loader').show();
$('#sop_directions_maneuvers').remove();
var bike_icon = "data:image/png;base64,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";
var car_icon = "data:image/png;base64,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";
var walk_icon = "data:image/png;base64,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";
var transportType = "pedestrian";
var trafficIcon = walk_icon;
if (squad_data.type == 2) {
transportType = "bicycle";
trafficIcon = bike_icon;
}
else if (squad_data.type == 3) {
transportType = "fastest";
trafficIcon = car_icon;
}
window.plugin.squadOP.xhrSaveSquad = $.ajax({
dataType: "json",
url: 'https://open.mapquestapi.com/directions/v2/route?key=Fmjtd|luur2q62lu%2Crw%3Do5-9a2l1r',
type: 'POST',
data: {
routeType: transportType,
fullShape: true,
locale: window.plugin.squadOP.locale,
from: squad_data.lat+','+squad_data.lon,
to: toLat+','+toLng,
},
success: function(sopData) {
try {
if (sopData.info.statuscode == 0) {
var out = "";
var from_address = "---";
var to_address = "---";
var route_maneuvers = false;
if (sopData.route.locations[0].geocodeQuality == "ADDRESS") {
from_address = sopData.route.locations[0].street + ", " + sopData.route.locations[0].postalCode + " " + sopData.route.locations[0].adminArea5;
}
if (sopData.route.locations[1].geocodeQuality == "ADDRESS") {
to_address = sopData.route.locations[1].street + ", " + sopData.route.locations[1].postalCode + " " + sopData.route.locations[1].adminArea5;
}
if (sopData.route.legs[0].maneuvers != undefined && sopData.route.legs[0].maneuvers.length > 0) {
route_maneuvers = "<div id='sop_directions_maneuvers'><div style='margin-bottom:3px;margin-top:12px;text-align:center;' class='ui-dialog-title'>Directions</div><table style='margin-bottom:8px;width:100%;'>";
route_maneuvers+= "<tr><td align=right>from:</td><td>"+from_address+"</td><td rowspan=4></td></tr>"; //<img width='32' src='"+trafficIcon+"' />
route_maneuvers+= "<tr><td align=right>to:</td><td>"+to_address+"</td></tr>";
route_maneuvers+= "<tr><td align=right>distance:</td><td>"+window.plugin.roundPrecision(sopData.route.distance,2)+"&nbsp;km</td></tr>";
route_maneuvers+= "<tr><td align=right>ETA:</td><td>"+sopData.route.formattedTime+"</td></tr>";
route_maneuvers+= "</table><table>";
$.each(sopData.route.legs[0].maneuvers, function( index, v ) {
route_maneuvers += "<tr>";
route_maneuvers += "<td><img src='"+v.iconUrl+"' /></td>";
route_maneuvers += "<td><small>"+v.narrative+"</small></td>";
route_maneuvers += "<td align=right>"+window.plugin.roundPrecision(v.distance, 2)+"km</td>";
route_maneuvers += "<td>"+v.formattedTime+"</td>";
route_maneuvers += "</tr>";
});
route_maneuvers += "</table></div>";
}
if (route_maneuvers) {
$('#sop_directions').after(route_maneuvers);
}
//$('#sop_directions tr:last').after(out);
shape = [];
for (var i = 0; i < sopData.route.shape.shapePoints.length; i+=2) {
shape.push(L.latLng(sopData.route.shape.shapePoints[i],sopData.route.shape.shapePoints[i+1]));
}
var routeShape = L.polyline(shape, { color: '#FF0000', weight: 8});
plugin.squadOP.drawnDirections.addLayer(routeShape);
$('#sop_squad_directions_loader').hide();
}
else {
$('#sop_squad_directions_loader').html("directions error");
}
}
catch (e) {
console.debug(e);
}
window.plugin.squadOP.showLoader(false);
}
});
}
catch (e) {
alert("Fehler:"+e);
}
}
window.plugin.squadOP.saveSquadToPortalCallback = function(sopData) {
window.plugin.squadOP.drawPortalTeamSelect();
if(typeof sopData != 'object') {
var jdata = $.parseJSON(sopData);
} else {
var jdata = sopData;
}
if (jdata.saveerr != undefined && jdata.saveerr == 1) {
alert("Target could not be sent to Team, try again.");
return false;
}
else if (jdata.saveerr != undefined && jdata.saveerr == 2) {
//alert("Team not connected, targets will be send on first login.");
//return false;
}
window.plugin.squadOP.reloadSquadTargets(jdata);
}
window.plugin.squadOP.reloadSquadTargets = function(sopData) {
if(typeof sopData != 'object') {
var jdata = $.parseJSON(sopData);
} else {
var jdata = sopData;
}
var dialog = $('#sq_dialog_next_targets_'+jdata.squad_id);
if (typeof dialog === 'object' && dialog.attr('id') != undefined) {
$('#sq_dialog_next_targets_'+jdata.squad_id).html("loading...");
window.plugin.squadOP.saveData.push({
requestType: 'getSquadTargets',
squad_id: jdata.squad_id,
callback: window.plugin.squadOP.getSquadTargetsCallback
});
}
}
var bPortalkeysloading = false;
window.plugin.squadOP.getPortalKeys = function() {
if(bPortalkeysloading) return;
bPortalkeysloading = true;
window.plugin.squadOP.saveData.push({
requestType: 'getPortalKeys',
callback: window.plugin.squadOP.getPortalKeysCallback
});
portalKeysOfSquadsLoaded = false;
}
window.plugin.squadOP.getPortalKeysOfSquads = function() {
if(bPortalkeysloading) return;
bPortalkeysloading = true;
window.plugin.squadOP.saveData.push({
requestType: 'getPortalKeysOfSquads',
callback: window.plugin.squadOP.getPortalKeysCallback
});
portalKeysOfSquadsLoaded = true;
}
window.plugin.squadOP.getPortalKeysCallback = function(sopData) {
if(typeof sopData != 'object') {
window.plugin.squadOP.jsonDataObject = $.parseJSON(sopData);
} else {
window.plugin.squadOP.jsonDataObject = sopData;
}
bPortalkeysloading = false;
if (window.plugin.squadOP.jsonDataObject.ok == 0) {
alert("No Portal Keys data available.");
return;
}
else {
var pluginName = "squadOP";
var fieldName = window.plugin.keys.KEY.field;
var keys = $.parseJSON(window.plugin.squadOP.jsonDataObject.k.replace(/\\(.?)/g, function(s, n1) {
switch (n1) {
case '\\':
return '\\';
case '0':
return '\u0000';
case '':
return '';
default:
return n1;
}
}));
if (portalKeysOfSquadsLoaded) {
window.plugin.squadOP.deleteAllPortalKeys();
}
else if (confirm("Delete existing portal keys before import?")) {
window.plugin.squadOP.deleteAllPortalKeys();
}
var key_count = 0;
$.each (keys, function(guid, newCount) {
newCount = parseInt(newCount);
if(newCount === 0) {
delete plugin.keys.keys[guid];
plugin.keys.updateQueue[guid] = null;
} else {
plugin.keys.keys[guid] = newCount;
plugin.keys.updateQueue[guid] = newCount;
}
plugin.keys.storeLocal(plugin.keys.KEY);
plugin.keys.storeLocal(plugin.keys.UPDATE_QUEUE);
plugin.keys.updateDisplayCount();
window.runHooks('pluginKeysUpdateKey', {guid: guid, count: newCount});
plugin.keys.delaySync();
key_count++;
});
//plugin.keys.delaySync();
//plugin.keys.updateDisplayCount();
alert("Keys of "+key_count+" portals loaded");
}
}
window.plugin.squadOP.deleteAllPortalKeys = function() {
// delete all existing keys
$.each (plugin.keys.keys, function(guid, newCount) {
delete plugin.keys.keys[guid];
plugin.keys.updateQueue[guid] = null;
plugin.keys.storeLocal(plugin.keys.KEY);
plugin.keys.storeLocal(plugin.keys.UPDATE_QUEUE);
plugin.keys.delaySync();
window.runHooks('pluginKeysUpdateKey', {guid: guid, count: newCount});
plugin.keys.updateDisplayCount();
});
}
window.plugin.squadOP.dialogCopyKeys = function() {
var data = localStorage[plugin.keys.KEY.key];
if(typeof android !== 'undefined' && android && android.shareString) {
return android.shareString(data);
} else {
var contentType = "application/json";
var fileName = "portalkeys.json";
var dllink = createDownloadLink(data, contentType, fileName);
dialog({
html: '<p><a onclick="$(\'.ui-dialog-bkmrksSet-copy textarea\').select();">Select all</a> and press CTRL+C to copy it.</p><textarea readonly>'+data+'</textarea><br><br>'
+ '<table>'
+ '<tr><td style="font-size:15px;font-weight:bold;">Download: '+dllink+'</td></tr>'
+ '</table>',
dialogClass: 'ui-dialog-bkmrksSet-copy',
title: 'Portal Keys Export'
});
}
}
window.plugin.squadOP.dialogCopyBookmarks = function() {
var data = localStorage[window.plugin.bookmarks.KEY_STORAGE];
if(typeof android !== 'undefined' && android && android.shareString) {
return android.shareString(data);
} else {
var contentType = "application/json";
var fileName = "bookmarks.json";
var dllink = createDownloadLink(data, contentType, fileName);
dialog({
html: '<p><a onclick="$(\'.ui-dialog-bkmrksSet-copy textarea\').select();">Select all</a> and press CTRL+C to copy it.</p><textarea readonly>'+data+'</textarea><br><br>'
+ '<table>'
+ '<tr><td style="font-size:15px;font-weight:bold;">Download: '+dllink+'</td></tr>'
+ '</table>',
dialogClass: 'ui-dialog-bkmrksSet-copy',
title: 'Bookmarks Export'
});
}
}
window.plugin.squadOP.dialogCopyDrawtools = function() {
var data = localStorage['plugin-draw-tools-layer'];
if(typeof android !== 'undefined' && android && android.shareString) {
return android.shareString(data);
} else {
var contentType = "application/json";
var fileName = "drawtools.json";
var dllink = createDownloadLink(data, contentType, fileName);
dialog({
html: '<p><a onclick="$(\'.ui-dialog-drawtoolsSet-copy textarea\').select();">Select all</a> and press CTRL+C to copy it.</p><textarea readonly>'+data+'</textarea><br><br>'
+ '<table>'
+ '<tr><td style="font-size:15px;font-weight:bold;">Download: '+dllink+'</td></tr>'
+ '</table>',
dialogClass: 'ui-dialog-drawtoolsSet-copy',
title: 'Draw Tools Export'
});
}
}
var bDrawtoolsloading = false;
window.plugin.squadOP.getDrawTools = function() {
if(bDrawtoolsloading) return;
bDrawtoolsloading = true;
window.plugin.squadOP.saveData.push({
requestType: 'getDrawTools',
callback: window.plugin.squadOP.getDrawToolsCallback
});
}
window.plugin.squadOP.getDrawToolsCallback = function(sopData) {
if(typeof sopData != 'object') {
var jdata = $.parseJSON(sopData);
} else {
var jdata = sopData;
}
bDrawtoolsloading = false;
if (jdata.ok == 0) {
alert("No drawtools data available.");
return;
}
else {
try {
window.plugin.drawTools.drawnItems.clearLayers();
var ddata = $.parseJSON(jdata.d);
window.plugin.drawTools.import(ddata);
window.plugin.drawTools.optAlert('Import Successful.');
//to write back the data to localStorage
window.plugin.drawTools.save();
} catch(e) {
console.warn('squadOP DRAWTOOLS: failed to import data: '+e);
window.plugin.drawTools.optAlert('<span style="color: #f88">Import failed</span>');
}
setTimeout(function() {$('#getdrawtoolslink').bind('click')}, 5000);
alert("Draw Tools loaded");
}
}
var bBookmarksloading = false;
window.plugin.squadOP.getBookmarks = function() {
if(bBookmarksloading) return;
bBookmarksloading = true;
window.plugin.squadOP.saveData.push({
requestType: 'getBookmarks',
callback: window.plugin.squadOP.getBookmarksCallback
});
}
window.plugin.squadOP.getBookmarksCallback = function(sopData) {
var jdata = $.parseJSON(sopData);
bBookmarksloading = false;
if (jdata.ok == 0) {
alert("No bookmarks data available.");
return;
}
else {
localStorage[window.plugin.bookmarks.KEY_STORAGE] = jdata.b;
window.plugin.bookmarks.refreshBkmrks();
alert("Bookmarks loaded");
}
}
var bOverlaysloading = false
window.plugin.squadOP.getOverlays = function() {
if(bOverlaysloading) return;
bOverlaysloading = true;
window.plugin.squadOP.saveData.push({
requestType: 'getOverlays',
callback: window.plugin.squadOP.getOverlaysCallback
});
}
window.plugin.squadOP.getOverlaysCallback = function(sopData) {
var jdata = $.parseJSON(sopData);
bOverlaysloading = false;
if(typeof window.plugin.AnomalyTacticalMap != "function") {
if(typeof window.plugin.SectorTacticalMap != "function") {
alert("Needed plugin \"AnomalyTacticalMap\" or \"SectorTacticalMap\" not installed.");
return;
}
}
if (jdata.ok == 0) {
alert("No overlays available.");
}
else {
if (jdata.c != undefined) {
localStorage["plugin-anomaly-tactical-map-cluster-bounds"] = jdata.c;
}
else {
localStorage["plugin-anomaly-tactical-map-cluster-bounds"] = "";
}
if (jdata.z != undefined) {
localStorage["plugin-anomaly-tactical-map-zoning"] = jdata.z;
}
else {
localStorage["plugin-anomaly-tactical-map-zoning"] = "";
}
if (jdata.p != undefined) {
localStorage["plugin-anomaly-tactical-map-portals"] = jdata.p;
}
else {
localStorage["plugin-anomaly-tactical-map-portals"] = "";
}
if (jdata.v != undefined) {
localStorage["plugin-anomaly-tactical-map-volatiles"] = jdata.v;
}
else {
localStorage["plugin-anomaly-tactical-map-volatiles"] = "";
}
if(typeof window.plugin.AnomalyTacticalMap == "function") {
window.plugin.AnomalyTacticalMap.redrawLayers();
}
if(typeof window.plugin.SectorTacticalMap == "function") {
window.plugin.SectorTacticalMap.redrawLayers();
}
alert("Overlays loaded");
}
}
window.plugin.squadOP.getPortalModString = function(mods) {
var ret = new Array();
$.each (
mods,
function (rowIndex, m) {
if (m != null) {
var str = "";
if (m.rarity != null) {
switch(m.rarity){
case 'COMMON':
str += "C";
break;
case 'RARE':
str += "R";
break;
case 'VERY_RARE':
str += "VR";
break;
}
}
if (m.name != null) {
switch(m.name) {
case 'Portal Shield':
str += "S";
break;
case 'Force Amp':
str += "FA";
break;
case 'Link Amp':
str += "LA";
break;
case 'Turret':
str += "T";
break;
case 'Multi-hack':
str += "MH";
break;
case 'Heat Sink':
str += "HS";
break;
}
}
if (str != "") {
ret[ret.length] = str;
}
}
}
);
if (ret.length > 0) {
ret = ret.join("|");
}
else {
ret = "";
}
return ret;
}
window.plugin.squadOP.showLoader = function (state){
try {
if (state) {
$('#sop_loader').show();
}
else {
$('#sop_loader').hide();
}
}
catch (e) {}
}
window.plugin.squadOP.saveIssueToPortalSelectedPortal = false;
window.plugin.squadOP.saveIssueToPortal = function() {
try {
window.plugin.squadOP.saveIssueToPortalSelectedPortal = window.selectedPortal;
var portal = window.portals[window.selectedPortal].options.data;
var details = portalDetail.get(window.selectedPortal);
win = "<table style='width:100%'>";
win+= "<tr><td width='85' align='right'>"+soplng.targetportal+":</td><td><b>"+portal.title+"</b></td></tr>";
win+= "<tr><td align='right'>"+soplng.task+":</td><td><select id='actionSel' onchange='window.plugin.squadOP.handleActionSelChange(this, \"sop_issue_comment\")'>"+window.plugin.squadOP.drawIssueOption()+"</select></td></tr>";
win+= "<tr><td align='right'>"+soplng.comment+":</td><td><textarea style='width:100%' rows='2' id='sop_issue_comment'></textarea><input type='hidden' id='sop_link_target' value=''></td></tr>";
win+= "</table>";
dialog({
text: win,
title: soplng.createIssue,
id: 'assign-squad-portal',
width: 450,
buttons: [
{
text: soplng.save,
click: function() {
var portal = window.portals[window.plugin.squadOP.saveIssueToPortalSelectedPortal].options.data;
var details = portalDetail.get(window.plugin.squadOP.saveIssueToPortalSelectedPortal);
if (details.owner != "") {
portal.captured = true;
portal.capturingPlayerId = details.owner;
portal.capturedTime = details.capturedTime;
}
else {
portal.captured = false;
}
//alert(details);
portal.mods = window.plugin.squadOP.getPortalModString(details.mods);
window.plugin.squadOP.saveData.push({
requestType: 'assignIssue',
guid: window.plugin.squadOP.saveIssueToPortalSelectedPortal,
portal: portal,
details: details,
squad: 0,
action: $('#actionSel').val(),
comment: window.plugin.nl2br($('#sop_issue_comment').val()),
//link_target: window.plugin.squadOP.htmlUnEscape($('#sop_link_target').val()),
callback: window.plugin.squadOP.saveIssueToPortalCallback
});
$('#squadSelect div.wrap').html("<div style='text-align:center'>saving...</div>");
$( this ).dialog( "close" );
}
}
]
});
}
catch (e) {
console.debug("saveSquadToPortal:"+e);
}
}
window.plugin.squadOP.saveIssueToPortalCallback = function(sopData) {
//$('#squadSelect div.wrap').html("<div style='text-align:center'>done!</div>");
window.plugin.squadOP.drawPortalTeamSelect();
if (sop_docked) {
renderPortalDetails(null);
}
}
window.plugin.squadOP.delSquadTarget = function(obj, tid, sq_id) {
window.plugin.squadOP.saveData.push({
requestType: 'delAssignPortal',
target_id: tid,
squad_id: sq_id,
callback: window.plugin.squadOP.delSquadTargetCallback
});
$(obj).hide();
}
window.plugin.squadOP.delSquadTargetCallback = function(sopData) {
window.plugin.squadOP.reloadSquadTargets(sopData);
}
window.plugin.squadOP.setSquadTargetDone = function(obj, tid, sq_id) {
window.plugin.squadOP.saveData.push({
requestType: 'setPortalDone',
target_id: tid,
squad_id: sq_id,
callback: window.plugin.squadOP.setSquadTargetDoneCallback
});
$(obj).hide();
}
window.plugin.squadOP.setSquadTargetDoneCallback = function(sopData) {
window.plugin.squadOP.reloadSquadTargets(sopData);
}
window.plugin.squadOP.setSquadTargetToIssue = function(obj, tid, sq_id) {
window.plugin.squadOP.saveData.push({
requestType: 'setTargetToIssue',
target_id: tid,
squad_id: sq_id,
callback: window.plugin.squadOP.setSquadTargetToIssueCallback
});
$(obj).hide();
}
window.plugin.squadOP.setSquadTargetToIssueCallback = function(sopData) {
window.plugin.squadOP.reloadSquadTargets(sopData);
}
window.plugin.squadOP.moveSquadTargetUp = function(obj, tid, squad_id) {
window.plugin.squadOP.saveData.push({
requestType: 'REST',
url: 'method=targetorderingup&targetid='+tid+'&squadid='+squad_id,
callback: window.plugin.squadOP.moveSquadTargetCallback
});
}
window.plugin.squadOP.moveSquadTargetDown = function(obj, tid, squad_id) {
window.plugin.squadOP.saveData.push({
requestType: 'REST',
url: 'method=targetorderingdown&targetid='+tid+'&squadid='+squad_id,
callback: window.plugin.squadOP.moveSquadTargetCallback
});
}
window.plugin.squadOP.deleteAllSquadTargets = function(obj, squad_id) {
if (confirm("Are you sure?")) {
window.plugin.squadOP.saveData.push({
requestType: 'REST',
url: 'method=deletesquadtargets&squadid='+squad_id,
callback: window.plugin.squadOP.deleteAllSquadTargetsCallback
});
}
}
window.plugin.squadOP.deleteAllSquadTargetsCallback = function(sopData) {
if(typeof sopData != 'object') {
var jdata = $.parseJSON(sopData);
} else {
var jdata = sopData;
}
$('#sq_dialog_next_targets_'+plugin.squad_id).html("loading..");
window.plugin.squadOP.saveData.push({
requestType: 'getSquadTargets',
squad_id: plugin.squad_id,
callback: window.plugin.squadOP.getSquadTargetsCallback
});
}
window.plugin.squadOP.moveSquadTargetTop = function(obj, tid, squad_id) {
window.plugin.squadOP.saveData.push({
requestType: 'REST',
url: 'method=targetorderingtop&targetid='+tid+'&squadid='+squad_id,
callback: window.plugin.squadOP.moveSquadTargetCallback
});
}
window.plugin.squadOP.moveSquadTargetCallback = function(sopData) {
var jdata = $.parseJSON(sopData);
$('#sq_dialog_next_targets_'+jdata.squad_id).html("loading..");
window.plugin.squadOP.saveData.push({
requestType: 'getSquadTargets',
squad_id: jdata.squad_id,
callback: window.plugin.squadOP.getSquadTargetsCallback
});
}
window.plugin.squadOP.delIssue = function(obj, tid) {
if (confirm('really sure?')) {
window.plugin.squadOP.saveData.push({
requestType: 'delIssue',
target_id: tid,
callback: window.plugin.squadOP.delIssueCallback
});
$("#issue"+tid).hide();
}
}
window.plugin.squadOP.delIssueCallback = function(sopData) {}
window.plugin.squadOP.showIcon = function(sq_dbid, sq_id, sq_name, sq_lat, sq_lon, sq_status, sq_pos) {
if (sq_lat == 0 || sq_lon == 0) {
return false;
}
var squad_data = window.plugin.squadOP.getSquadById(sq_dbid);
var transportClass = "";
if (squad_data.type == 2) {
transportClass = "bike";
}
else if (squad_data.type == 3) {
transportClass = "car";
}
var lblName = sq_name;
var isVolatile = false;
var isCluster = false;
var isBike = false;
if (sq_name.indexOf('Volat') > -1) {
isVolatile = true;
}
if (sq_name.indexOf('Cluster') > -1) {
isCluster = true;
}
if (sq_name.indexOf('Bike') > -1) {
isBike = true;
}
lblLimit = 8;
if (mapMarkerType == 1) {
lblName = lblName.replace(/cluster\s/gi, "");
lblName = lblName.replace(/volatile\s/gi, "");
lblName = lblName.replace(/team\s/gi, "");
lblName = lblName.replace(/bike\s/gi, "");
lblLimit = 4;
if (lblName.length > lblLimit) {
lblName = lblName.substring(0, lblLimit);
}
if (isVolatile) {
lblName = "V"+lblName;
}
if (isCluster) {
lblName = "C"+lblName;
}
if (isBike) {
lblName = "B"+lblName;
}
}
var div = "";
if (mapMarkerType == 1) {
div = L.divIcon({iconSize: null, className:'sop_squadBox1',html:'<div id="'+sq_id+'" title="'+sq_name+'"><span class="sop_st'+sq_status+' '+transportClass+'"><a href="javascript:void(0)" onclick="window.plugin.squadOP.openSquadDialog('+sq_dbid+')">'+lblName+'</a></span></div>'});
}
else {
div = L.divIcon({iconSize: null, className:'sop_squadBox2',html:'<div id="'+sq_id+'" title="'+sq_name+'"><span class="sop_st'+sq_status+' '+transportClass+'"><a href="javascript:void(0)" onclick="window.plugin.squadOP.openSquadDialog('+sq_dbid+')">'+lblName+'</a></span></div>'});
//div = L.divIcon({iconSize: null, className:'sop_squadBox2',html:'<div id="'+sq_id+'" title="'+sq_name+'"><span class="sop_st'+sq_status+'"></span><a href="javascript:void(0)" onclick="window.plugin.squadOP.openSquadDialog('+sq_dbid+')">'+lblName+'</a></div>'});
}
//div = L.divIcon({iconSize: null, className:'sop_squadBox3',html:'<div id="'+sq_id+'" title="'+sq_name+'" style="position:relative;white-space:nowrap;background-color:#FF0000;display:block;overflow:visible;"><a href="javascript:void(0)" onclick="window.plugin.squadOP.openSquadDialog('+sq_dbid+')" style="white-space:nowrap;background-color:#FF0000;display:block;overflow:visible;">'+lblName+'</a></div>'});
var marker = L.marker([sq_lat,sq_lon],{icon:div});
if (window.plugin.squadOP.drawnTracesSquad != undefined) {
try {
if (sq_pos.length > 1) {
var playerLine = [];
var last_i = 0;
for(var i = 1; i < sq_pos.length; i++) {
var cur = sq_pos[i];
var last = sq_pos[last_i];
if (cur.acc < 150) {
var line = [L.latLng(cur.lat,cur.lon),L.latLng(last.lat,last.lon)];
playerLine.push(line);
last_i = i;
}
}
var opts = {
weight: 2,
color: "#1C425B",
clickable: false,
opacity: 1,
dashArray: "15,10,5,10",
smoothFactor: 5,
lineCap: 'round'
};
//polyline = [[L.latLng(52.48971705,13.44772542),L.latLng(52.4897334,13.44768753)],[L.latLng(52.4897334,13.44768753),L.latLng(52.49054069,13.44842402)]];
L.multiPolyline(playerLine, opts).addTo(plugin.squadOP.drawnTracesSquad);
}
}
catch (e) {
//console.debug("traces:"+e);
}
try {
marker.addTo(window.plugin.squadOP.drawnTracesSquad);
//window.plugin.squadOP.markerList.push(marker);
}
catch (e) {
console.debug("Error showIcon:"+e);
}
}
}
window.plugin.squadOP.openIssueDialog = function() {
var win = "no tasks over here.. :)";
if (plugin.squadOP.JSONdata.issueAnz > 0) {
win = '<div id="issueOut"><i>loading '+plugin.squadOP.JSONdata.issueAnz+' tasks...</i></div><div style="text-align:center;margin-top:8px;">'+soplng.issueInfo+'.</div>';
window.plugin.squadOP.saveData.push({
requestType: 'getIssues',
callback: window.plugin.squadOP.getIssuesCallback
});
}
dialog({
text: win,
title: soplng.issueOverview+' ['+plugin.squadOP.JSONdata.issueAnz+']',
id: 'issue-info-dialog',
position: { my: "center-2 top+2", at: "center-20 top+20", of: $('#map') },
width: 700,
buttons: [
{
text: soplng.close,
click: function() {
$( this ).dialog( "close" );
}
}
]
});
}
window.plugin.squadOP.getIssuesCallback = function(sopData) {
result = $.parseJSON(sopData);
out = "";
out+= "<table style='width:100%;'>";
show = false;
$.each (
result.issues,
function (rowIndex, ta) {
out+= '<tr style="border-bottom:1px solid black;background-color:'+defBgColor2+';" id="issue'+ta.target_id+'">'
+ '<td align=center>'+(rowIndex+1)+'.</td>'
+ "<td><a href='javascript:void(0)' "
+ window.plugin.drawPortalLinkHandler(ta.target_data.guid, ta.target_data.lat/10000, ta.target_data.lng/10000)
+ ">"+ta.target_data.title+"</a></td>"
+ '<td>'+window.plugin.squadOP.actionList[ta.target_data.action]+'</td>'
+ '<td style="">'+ta.target_data.comment+'</td>'
+ '<td align=center style="">'+ta.date+'<br /><small>'+ta.target_data.p+'</small></td>'
+ '<td width=20 valign="middle" nowrap><select id="squadSel'+(rowIndex+1)+'">'+window.plugin.squadOP.drawTeamSelect()+'</select>'
+ '<button onclick="window.plugin.squadOP.saveSquadToIssue(this, '+ta.target_id+', '+(rowIndex+1)+')" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">ok</button></td>'
//+ "<td style='text-align:center;width:10px;'><div style='padding-top:3px;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.setSquadTargetDone(this, "+ta.target_id+")'><img width='14' title='target completed' src="+acceptIcon+"></a></div></td>"
+ "<td style='text-align:center;width:20px;'><div style='padding-top:8px;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.delIssue(this, "+ta.target_id+")'><img width='14' src="+deleteIcon+"></a></div></td>"
+ '</tr>';
//window.plugin.squadOP.setSquadToIssue
}
);
out+= "</table>";
$('#issueOut').html(out);
}
window.plugin.squadOP.saveSquadToIssue = function(obj, tid, num) {
try {
var selVal = $("#squadSel"+num).val();
if (selVal != "") {
window.plugin.squadOP.saveData.push({
requestType: 'saveSquadToIssue',
target_id: tid,
squad_id: selVal,
callback: window.plugin.squadOP.saveSquadToIssueCallback
});
$(obj).parent().parent().hide();
}
}
catch (e) {
alert("saveSquadToIssue err:" + e);
}
}
window.plugin.squadOP.saveSquadToIssueCallback = function(sopData) {}
window.plugin.squadOP.openSquadDialogSquadId = 0;
window.plugin.squadOP.openSquadDialogNextTargets = new Array();
window.plugin.squadOP.openSquadDialogPastTargets = new Array();
window.plugin.squadOP.openSquadDialog = function(squad_id) {
var bike_icon = "data:image/png;base64,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";
var car_icon = "data:image/png;base64,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";
var walk_icon = "data:image/png;base64,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";
window.plugin.squadOP.openSquadDialogSquadId = squad_id;
var sq = window.plugin.squadOP.getSquadById(squad_id);
member_out = "";
if (sq.member.length > 0) {
member_out+= "<b>Squad-Member</b><br /><br />";
$.each (
sq.member,
function (rowIndex, m) {
member_out+= m.name+'<br />';
}
);
member_out += "<br><br>";
}
if (sq.push == 1) {
chat_out = "<b>Send a message:</b><br /><div class='ui-dialog-buttonset' style='text-align:left;margin-top:2px;'>";
chat_out+= "<input type='text' id='chatMsg' style='margin-right:1px;widht:100%;' /><input id='chatBtn' type='button' value='send' onclick='window.plugin.squadOP.sendChatMsg()' /><br />";
chat_out+= "</div>";
}
else {
chat_out = "<b>Squad does not receive push-notifications</b><br /><br />";
}
chat_out+= "<div id='sop_chat_out_"+squad_id+"' class='sop_chat_out'></div>";
timeStr = sq.lastCall;
if (sq.outdated == 1) {
timeStr = sq.lastCall + " <span style='color:red;font-weight:bold;' title='"+sq.last+" last location update'>[Location outdated]</span>";
}
else if (timeStr == 0) {
timeStr = "---";
}
var trafficIcon = walk_icon;
if (sq.type == 2) {
trafficIcon = bike_icon;
}
else if (sq.type == 3) {
trafficIcon = car_icon;
}
var scurl = SOP_SERVER_URL.replace(/connect/, "") + "key/" + sq.sc;
var win = '<table style="width:100%">'
+ '<tr><td width="350">'
+ '<table style="width:100%">'
+ '<tr><td align=right>'+soplng.squadName+':</td><td><b id="squad-info-name">'+sq.name+'</b> <small>[<a href="'+scurl+'" onclick="alert(\''+scurl+'\'); return false;">'+sq.sc+'</a>]</small></td></tr>';
if (sq.operator_id) {
win += '<tr><td align=right>'+soplng.squadOperator+':</td><td><a target="_new" href="https://plus.google.com/u/0/'+sq.operator_id+'">'+sq.operator+'</a></td></tr>';
}
win += '<tr><td align=right>'+soplng.lastPos+':</td><td id="squad-info-pos">'+window.plugin.roundPrecision(sq.lat,6)+','+window.plugin.roundPrecision(sq.lon,6)+'</td></tr>'
+ '<tr><td align=right>'+soplng.lastConnection+':</td><td id="squad-info-last">'+timeStr+'</td></tr>'
+ '<tr><td align=right>Status:</td><td id="squad-info-status">'+window.plugin.squadOP.statusList[sq.status]+'</td></tr>'
+ '</table>'
+ '</td>'
+ '<td width=80><img width="32" src="'+trafficIcon+'"></td>'
+ '<td>'
+ member_out
+ chat_out
+ '</td></tr>'
+ '</table>'
+ '';
if (sq.target && false) {
win+= '<br/><b>current target</b><br />'
+ '<table>'
+ "<tr><td>Portal:</td><td><a href='javascript:void(0)' "+window.plugin.drawPortalLinkHandler(sq.target.guid, sq.target.lat, sq.target.lng)+">"+sq.target.title+"</a></td></tr>"
+ '<tr><td>Location:</td><td>'+window.plugin.roundPrecision(sq.target.lat,4)+','+window.plugin.roundPrecision(sq.target.lng,4)+'</td></tr>'
+ '<tr><td>Action:</td><td>'+window.plugin.squadOP.actionList[sq.target.action]+'</td></tr>'
+ (sq.target.comment != "" ? '<tr><td>'+soplng.comment+':</td><td>'+sq.target.comment+'</td></tr>' : '' )
+ '</table>';
}
if (sq.targetAnzAll > 0 || sq.nmc > 0) { //sq.targetAnzAll > 1
win+= '<div id="sq_dialog_next_targets_'+squad_id+'">loading..</div>';
window.plugin.squadOP.saveData.push({
requestType: 'getSquadTargets',
squad_id: squad_id,
callback: window.plugin.squadOP.getSquadTargetsCallback
});
}
else {
win+= '<div id="sq_dialog_next_targets_'+squad_id+'"><div style="text-align:right;"><a href="javascript:void(0)" onclick="window.plugin.squadOP.openSquadDialogLoadSquads('+squad_id+')">click here to load chat messages</a></div></div>';
}
dialog({
text: win,
title: 'Squad: '+sq.name+'',
id: 'squad-info-dialog',
position: { my: "center-2 top+2", at: "center-20 top+20", of: $('#map') },
width: 700,
beforeClose: function( event, ui ) {
window.plugin.squadOP.openSquadDialogSquadId = 0;
},
buttons: [
{
text: soplng.directionsOpt,
click: function() {
window.plugin.squadOP.getSquadDirectionsForAllTargets(2);
}
},
{
text: soplng.directions,
click: function() {
window.plugin.squadOP.getSquadDirectionsForAllTargets(1);
}
},
{
text: soplng.refresh,
click: function() {
window.plugin.squadOP.openSquadDialogLoadSquads();
}
},
{
text: soplng.close,
click: function() {
$( this ).dialog( "close" );
}
}
]
});
}
window.plugin.squadOP.openSquadDialogLoadSquads = function(squad_id) {
$('#sq_dialog_next_targets_'+squad_id).html("loading..");
window.plugin.squadOP.saveData.push({
requestType: 'getSquadTargets',
squad_id: squad_id,
callback: window.plugin.squadOP.getSquadTargetsCallback
});
}
if (!String.prototype.trim) {
(function() {
// Make sure we trim BOM and NBSP
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
String.prototype.trim = function() {
return this.replace(rtrim, '');
};
})();
}
window.plugin.squadOP.sendChatMsg = function () {
var msg = $('#chatMsg').val().trim();
if (msg == "" || msg.lenght < 3) {
alert("Message to short!");
return;
}
window.plugin.squadOP.saveData.push({
requestType: 'chatMsg',
msg: encodeURIComponent(msg),
squad_id: window.plugin.squadOP.openSquadDialogSquadId,
callback: window.plugin.squadOP.sendChatMsgCallback
});
$('#chatMsg').val("");
}
window.plugin.squadOP.sendChatMsgCallback = function (sopData) {
var jdata = $.parseJSON(sopData);
if (jdata.ok == 1) {
var outMsg = window.plugin.squadOP.formatChatMsg(jdata.m, jdata.i*1000, 0);
$('#sop_chat_out_'+jdata.sq+' table').prepend(outMsg)
$('#chatMsg').val("");
}
else {
alert('Message not sent!');
}
}
window.plugin.squadOP.getSquadDirectionsForAllTargets = function(type) {
var routeType = "route";
var routeColor = "#FF0000";
if (type == 2) {
routeType = "optimizedroute";
routeColor = "#0AFFE1";
}
try {
var bike_icon = "data:image/png;base64,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";
var car_icon = "data:image/png;base64,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";
var walk_icon = "data:image/png;base64,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";
if (window.plugin.squadOP.openSquadDialogNextTargets.length > 0) {
window.plugin.squadOP.showLoader(true);
var squad_data = window.plugin.squadOP.getSquadById(window.plugin.squadOP.openSquadDialogSquadId);
var locationsArr = new Array();
var ajaxData = {
routeType: transportType,
fullShape: true,
locale: window.plugin.squadOP.locale,
from: squad_data.lat+','+squad_data.lon
};
locationsArr.push({
"latLng":{
"lat": squad_data.lat,
"lng": squad_data.lon,
}
});
$.each (
window.plugin.squadOP.openSquadDialogNextTargets,
function (rowIndex, ta) {
// ta.target_data.lat/10000, ta.target_data.lng/10000
// ta.target_data.title
if (window.plugin.squadOP.highlightPortals[ta.guid] == undefined) {
window.plugin.squadOP.highlightPortals[ta.guid] = {};
}
window.plugin.squadOP.highlightPortals[ta.guid]["1"] = true;
locationsArr.push({
"latLng":{
"lat": ta.target_data.lat/10000,
"lng": ta.target_data.lng/10000,
}
});
}
);
var transportType = "pedestrian";
var trafficIcon = walk_icon;
if (squad_data.type == 2) {
transportType = "bicycle";
trafficIcon = bike_icon;
}
else if (squad_data.type == 3) {
transportType = "fastest";
trafficIcon = car_icon;
}
var ajaxData = {
"locations":locationsArr,
"options":{
routeType: transportType,
fullShape: "true"
}
}
//alert(JSON.stringify(ajaxData));
// route
window.plugin.squadOP.xhrSquadDirections = $.ajax({
dataType: 'json',
url: 'https://open.mapquestapi.com/directions/v1/'+routeType+'?key=Fmjtd|luur2q62lu%2Crw%3Do5-9a2l1r&format=json&json='+encodeURIComponent(JSON.stringify(ajaxData)),
type: 'POST',
crossDomain:true,
success: function(sopData) {
window.plugin.squadOP.mapquest = sopData;
plugin.squadOP.drawnDirections.clearLayers();
try {
if (sopData.info.statuscode == 0) {
var out = "";
var from_address = "---";
var to_address = "---";
var route_maneuvers = false;
if (sopData.route.locations[0].geocodeQuality == "ADDRESS") {
from_address = sopData.route.locations[0].street + ", " + sopData.route.locations[0].postalCode + " " + sopData.route.locations[0].adminArea5;
}
if (sopData.route.locations[sopData.route.locations.length-1].geocodeQuality == "ADDRESS") {
to_address = sopData.route.locations[sopData.route.locations.length-1].street + ", " + sopData.route.locations[sopData.route.locations.length-1].postalCode + " " + sopData.route.locations[sopData.route.locations.length-1].adminArea5;
}
if (sopData.route.legs[0].maneuvers != undefined && sopData.route.legs[0].maneuvers.length > 0) {
route_maneuvers = "";
shape = [];
shape.push(L.latLng( sopData.route.locations[0].latLng.lat, sopData.route.locations[0].latLng.lng ));
$.each(sopData.route.legs, function( index, leg ) {
$.each(leg.maneuvers, function( index, ma ) {
shape.push(L.latLng( ma.startPoint.lat, ma.startPoint.lng));
});
});
route_maneuvers+= "<div id='sop_directions_maneuvers'><div style='margin-bottom:3px;margin-top:12px;text-align:center;' class='ui-dialog-title'>Directions</div><table style='margin-bottom:8px;width:100%;'>";
route_maneuvers+= "<tr><td align=right>from:</td><td>"+from_address+"</td><td rowspan=4><img width='32' src='"+trafficIcon+"' /></td></tr>";
route_maneuvers+= "<tr><td align=right>to:</td><td>"+to_address+"</td></tr>";
route_maneuvers+= "<tr><td align=right>distance:</td><td>"+window.plugin.roundPrecision(sopData.route.distance,2)+"&nbsp;km</td></tr>";
route_maneuvers+= "<tr><td align=right>ETA:</td><td>"+sopData.route.formattedTime+"</td></tr>";
route_maneuvers+= "</table>";
/*
route_maneuvers+= "<table>";
$.each(sopData.route.legs[0].maneuvers, function( index, v ) {
route_maneuvers += "<tr>";
route_maneuvers += "<td><img src='"+v.iconUrl+"' /></td>";
route_maneuvers += "<td><small>"+v.narrative+"</small></td>";
route_maneuvers += "<td align=right>"+window.plugin.roundPrecision(v.distance, 2)+"km</td>";
route_maneuvers += "<td>"+v.formattedTime+"</td>";
route_maneuvers += "</tr>";
});
route_maneuvers += "</table>";
*/
route_maneuvers+= "</div>";
}
if (route_maneuvers) {
$('#sop_directions_maneuvers').remove();
$('#sq_dialog_next_targets_'+window.plugin.squadOP.openSquadDialogSquadId).before(route_maneuvers);
}
//$('#sop_directions tr:last').after(out);
var routeShape = L.polyline(shape, { color: routeColor, weight: 8});
plugin.squadOP.drawnDirections.addLayer(routeShape);
//$('#sop_squad_directions_loader').hide();
}
else {
//$('#sop_squad_directions_loader').html("directions error");
}
}
catch (e) {
console.debug(e);
}
window.plugin.squadOP.showLoader(false);
}
});
}
}
catch (e) {
window.plugin.squadOP.showLoader(false);
}
}
window.plugin.squadOP.getSquadTargetsCallback = function(sopData) {
var order_down = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAI2SURBVHjazFe9agJBEF4vGmJE0qgklXBWViKBPIEgCHYBX8OXOLC11GfQYGHALmAjBtIqCII2JgRBgviHxs3MsTlEd73dO6IZ+ERudvf7uJudHw85tFvAI+ABEAHMAZSz7gJwJen/ArwBKoAP5vcD7nY3eAEGYMUO/AusGEcQoDMRFvnzHxLv44WJsMw4IfkvjN1vvjqDAOS81VjAXZLTG3I+aizaz2X3XnbVuKZpGtF1nQQCAfP/vm23W7Jer4nP5+P6F4sF6fV65jqB3eDPE+8b+f1+Wq/X6Xw+pzzD5/1+39bfbrfNswRx0EABVZ4zHo+7Jv/1JxIJkYCaUAC8VjoYDFyT4xl4lkBAVSgAkcvlXJGj4RlHruJxAYhms+mYHPfa5AJ7Aclkkk6nU2XyzWZj7pURULPLWoZhKAdkqVSSyYamgIbdwlAoRCeTiTQ5rg2HwzICnoR5YB/5fF46IHGtZD1o2MbA7rXsdDq25LjmyLWTzwM8pNNpOpvNhOSQcmkqlVKpiFUlAYhyuSwMyEqlolqS1QXEYjG6XC4PyDHwotGosgBNtX7C6yfFYvGg6hUKBTIcDh3V5JpqNxMMBuloNLICstVqmc8cdEVyeYCHbDZrvvZut0szmYzTtkw+D4gSVCQScdMXNrxsaHBk4/HYbUv2qbGJ5Vz2eva2/F8MJoSNSS8nJH9m46A1pepMxKmGU4vcw8jfMaHtjef3rG+/BiwB35wg8kj6P1nA7Y7npv0IMAC0nQaWZ83nPwAAAABJRU5ErkJggg==";
var order_up = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJnSURBVHjazFcxaypBEB43+nw+kGehEishioWNSOCBvSAIdgH/g5VWNpZa+k+SkCaQyqCNILxWRFGsNKSRIOqJPjc7lz25eHe6d6K+D75DnNn95taZdcYGWlwz3jH+YfQzzhmpjt8V409B+wfjX8Z7xjdudzEG1AvsjBXGJd/wFFxyDTfjDQ9iK/58QuFdvvIgtqicUVxhRf2bLy8QAGpeE55wP+D8QM07wrP9UrglvNQswe/3g9frPSaA34TXqWmk02mo1+vQ6/Ugk8lYDeAXPh7MJpDb7abNZpPO53OKGI1G8ncWEvGJWAk7l8tBLBYDl+vrHgkEAlAqlaxs9c/0CQSDQTqZTOguJEmioVDI7Ak8mD6BarUKHo9H8/1ms4FisWgpEYRPIJlMUiakeXvMhX6/T2ezGU2lUqZOAAN4EnF2OBy03W4biisJiT7oayaAFxHnfD5/UFwB+goG8Aj8sdfR5/NpEs9IHIG+7IISCeCFGDQT31Aul78l3mKxgPF4LJefUopqOJ1OKBQKIvknHUzCeDxO1+u10Jur7dPpVF4rkgN7A2g0GqbFFTuuPSqAbDZrWVwB7mEpACyl4XB4lDgC99hTlvJNeKWXHdFoFNi1ezDhDtnxLzscDhtmoZ23zhp0u11otVry/71VcbTXajVgp2Ckb7Mb9QO4OJFIQCQS0d0c7/7VagXseIEQomtnVzMMBgP5s1E/YOdDgy5wYafTOWVL9k74xHIptC7elv8XgwnwMen1jOLPvAK3U+oND+Jcw+lW3MbFx1h5O+P5LfbtvHWWlAZyt44F7e884dTjuYxPAQYASCbcQWMw2icAAAAASUVORK5CYII=";
var top_icon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAJdnBBZwAAACAAAAAgAIf6nJ0AAAH2SURBVEjHrVU9S8NQFH1DFQuNSnXooKIO/gA/QC3Bv+AiOCiOLkVBBzcn+wNEEB2k0F2pQrE42E0cXETBQZw6lIJT/SgF6/G8JE3z7EvE6L0N9L57z0nefSe5QjQtIVIiKwriRBy7ntPGGVYmLExUjNrgiEiLusAvvE6EQXjUhud/BW56kRSWpUPBpaftvddDE9RlL1Kh4dJTgp0PKOhHXzBBRvBgfNMrKOEGS0EEJ4I/bWoMl3jHEy/w35gfQUFQHm3LndhGzYVLq3GlU0eQ0xDM4YEQLxxWfAGzneD4G0EcR/jUwmX8yWw8iGAZFU85UMU6varQVVjlQ5BU7gbkMIhZ+gAOvz3NhEKQawamB17CPHpxgAZesYMeRiUPfVIhKHgJZPoFuzCwiLJLV2ZkcPXDiU29DkwrfYVJjOBc2Yy0c66O48yKTb0OkrjDGrqwhbc2uLRnrDK7wSc09TpIsGnTuFVa2aB741tWDLGt2lOIYV9TblO2nqbBqpiewFRk88ytRKz1CDZxr2wmGUwg4adsmVdxw05b7fxUsA6usaB981oHG6ADWzZ+b38v9vAYpIMbr0h9fIaHreog0wy6nab95B2sdKPsP3xU//xZ//NgERxQxVDwPIeiM2GNUMM1Yt/fmbDWeM/wUAuUVmug6+KsO95pXz3yglQA8uTuAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE0LTAxLTAzVDA3OjIyOjU4KzAwOjAwghfXwgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0wMS0wM1QwNzoyMjo1OCswMDowMPNKb34AAAAASUVORK5CYII=";
result = $.parseJSON(sopData);
var sq = window.plugin.squadOP.getSquadById(result.squad_id);
var nameStr = sq.name;
if (sq.outsync == 1) {
nameStr += " <span style='color:red;' title='last time in sync: "+sq.lastSync+"'>[out of sync]</span>";
}
$('#squad-info-name').html(nameStr);
$('#squad-info-pos').html(window.plugin.roundPrecision(sq.lat,6)+','+window.plugin.roundPrecision(sq.lon,6));
//$('#squad-info-pos-update').html(sq.last);
timeStr = sq.lastCall;
if (sq.outdated == 1) {
timeStr = sq.lastCall + " <span style='color:red;font-weight:bold;' title='"+sq.last+" last location update'>[Location outdated]</span>";
}
$('#squad-info-last').html(timeStr);
$('#squad-info-status').html(window.plugin.squadOP.statusList[sq.status]);
window.plugin.squadOP.openSquadDialogNextTargets = result.next;
window.plugin.squadOP.openSquadDialogPastTargets = result.last;
out = "";
out+= "<br /><b>"+soplng.curTargets+":</b><br /><table style='width:100%;'>";
show = false;
$.each (
result.next,
function (rowIndex, ta) {
if (true) { // ta.target_id != sq.target.target_id
var distance = roundPrecision(window.plugin.squadOP.getDistanceFromLatLonInKm(sq.lat, sq.lon, (ta.target_data.lat / 10000), (ta.target_data.lng / 10000) ),2);
if (distance > 999) {
distance = ">999";
}
out+= '<tr class="targetRow" style="border-bottom:1px solid black;background-color:'+defBgColor2+';">'
+ '<td align=right style="padding: 0 2px;">'+ (rowIndex+1) +'.</td>'
+ "<td style='vertical-align: middle;'><a href='javascript:void(0)' "
+ window.plugin.drawPortalLinkHandler(ta.target_data.guid, ta.target_data.lat/10000, ta.target_data.lng/10000)
+ "><b>"+ta.target_data.title+"</b></a></td>"
+ '<td align=center>'+window.plugin.squadOP.actionList[ta.target_data.action]+'</td>'
+ '<td>'+(ta.target_data.comment!=""?ta.target_data.comment:"---")+'</td>'
+ '<td style="text-align:center;">'+distance+'km</td>'
+ '<td align=center>'+ta.date+'<br/><small>'+ta.target_data.p+'</small></td>'
+ "<td style='width:24px;padding:0;'><div style='padding-top:3px;text-align:center;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.setSquadTargetDone(this, "+ta.target_id+", "+sq.dbid+")'><img width='16' src="+acceptIcon+"></a></div></td>"
+ "<td style='width:24px;padding:0;'><div style='padding-top:3px;text-align:center;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.setSquadTargetToIssue(this, "+ta.target_id+", "+sq.dbid+")'><img width='16' src="+resetIcon+"></a></div></td>"
+ "<td style='width:24px;padding:0;'><div style='padding-top:3px;text-align:center;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.delSquadTarget(this, "+ta.target_id+", "+sq.dbid+")'><img width='16' src="+deleteIcon+"></a></div></td>"
;
if (rowIndex < (result.next.length-1)) {
out+= "<td style='width:24px;padding:0;'><div style='padding-top:3px;text-align:center;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.moveSquadTargetUp(this, "+ta.target_id+","+sq.dbid+")'><img width='16' src="+order_down+"></a></div></td>";
}
else {
out+= "<td></td>";
}
if (rowIndex > 0) {
out+= "<td style='width:24px;padding:0;'><div style='padding-top:3px;text-align:center;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.moveSquadTargetDown(this, "+ta.target_id+","+sq.dbid+")'><img width='16' src="+order_up+"></a></div></td>";
out+= "<td style='width:24px;padding:0;'><div style='padding-top:3px;text-align:center;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.moveSquadTargetTop(this, "+ta.target_id+","+sq.dbid+")'><img width='16' src="+top_icon+"></a></div></td>";
}
else {
out+= "<td></td>";
}
out+= "</tr>";
show = true;
}
}
);
out+= "</table>";
if (result.next.length > 1) {
out += "<div style='padding: 3px 0'><button href='javascript:void(0)' onclick='window.plugin.squadOP.deleteAllSquadTargets(this, "+result.squad_id+")'>delete all targets</button></div>";
}
if (show == false) {
out = "";
}
show = false;
out2 = "";
out2+= "<br /><b>"+soplng.pastTargets+":</b><br /><table style='width:100%;'>";
out3 = "";
$.each (
result.last,
function (rowIndex, ta) {
if (sq && ta.target_id != sq.target.target_id) {
out3 += '<tr class="targetRow" style="border-bottom:1px solid black;background-color:'+(ta.status==1?'#016501':defBgColor2)+';">'
+ '<td align=right>'+(rowIndex+1)+'.</td>'
+ "<td><a href='javascript:void(0)' "
+ window.plugin.drawPortalLinkHandler(ta.target_data.guid, ta.target_data.lat/10000, ta.target_data.lng/10000)
+ ">"+ta.target_data.title+"</a></td>"
+ '<td align=center>'+window.plugin.squadOP.actionList[ta.target_data.action]+'</td>'
+ '<td>'+(ta.target_data.comment!=""?ta.target_data.comment:"--")+'</td>'
+ '<td align=center>'+ta.date+'<br/><small>'+ta.target_data.p+'</small></td>'
+ "<td style='text-align:center;color:#"+(ta.status==1?'03FE03':'CB600C')+"'>"+(ta.status==1?'done':'canceled')+"</td>"
+ "<td style='width:24px;padding:0;'><div style='padding-top:3px;text-align:center;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.setSquadTargetToIssue(this, "+ta.target_id+", "+sq.dbid+")'><img width='16' title='back to issues' src="+resetIcon+"></a></div></td>"
+ '</tr>';
show = true;
}
}
);
out2+= out3 + "</table>";
if (show == false) {
out2 = "";
}
$('#sq_dialog_next_targets_'+result.squad_id).html(out+out2);
if (result.chat != undefined) {
var chat_out = "<table style='width:100%;'>";
$.each( result.chat, function( key, chat ) {
var i = parseInt(chat.i)*1000;
var m = chat.m;
if (!! chat) {
chat_out += window.plugin.squadOP.formatChatMsg(m, i, chat.d);
}
});
chat_out += "</table>";
$('#sop_chat_out_'+result.squad_id).show();
$('#sop_chat_out_'+result.squad_id).html(chat_out);
}
}
window.plugin.squadOP.formatChatMsg = function(m, i, d) {
var timeConverter = function (UNIX_timestamp){
var a = new Date(UNIX_timestamp);
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var year = a.getFullYear();
var month = a.getMonth()+1;
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
var sec = a.getSeconds();
hour = hour < 10 ? "0"+hour : hour;
min = min < 10 ? "0"+min : min;
var time = date + '/' + month + '/' + year + ' ' + hour + ':' + min;
var ret = '<span title="'+time+'"><small>' + hour + ':' + min + '</small></span>';
return ret;
}
var ret = "";
if (d != 1) {
ret += "<tr>";
}
else {
ret += "<tr style='background-color:"+defColor3+";padding:1px;'>";
}
ret += "<td width=20>" + timeConverter(i) + "</td><td>" + m + "</td></tr>";
return ret;
}
window.plugin.squadOP.getSquadById = function(squad_id) {
var jdata = plugin.squadOP.JSONdata;
var ret = false;
$.each (
jdata.squads,
function (rowIndex, sq) {
if (sq.dbid == squad_id) {
ret = sq;
}
}
);
return ret;
}
window.plugin.squadOP.drawActionsOption = function() {
out = "";
$.each (
window.plugin.squadOP.actionList,
function (rowIndex, txt) {
out+= '<option value="'+rowIndex+'">'+txt+'</option>';
}
);
return out;
}
window.plugin.squadOP.drawIssueOption = function() {
out = "";
$.each (
window.plugin.squadOP.issueList,
function (rowIndex, txt) {
out+= '<option value="'+rowIndex+'">'+txt+'</option>';
}
);
return out;
}
window.plugin.squadOP.keySafe = {};
window.plugin.squadOP.drawKeyInput = function() {
var timeConverter = function (UNIX_timestamp){
var a = new Date(UNIX_timestamp);
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var year = a.getFullYear();
var month = a.getMonth()+1;
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
var sec = a.getSeconds();
hour = hour < 10 ? "0"+hour : hour;
min = min < 10 ? "0"+min : min;
var time = date + '/' + month + '/' + year + ' ' + hour + ':' + min;
return time;
}
var deleteIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMLSURBVHjaxFdNSBtBFH47m2hSkILYoFA8lILoSRFEYgrVeKrSXjzVHIrnFg96qK1QvGgPBoQcBU9681LQnoz2kBQpFD0pQikeCpUggpcmGtf0vc3MutnN7E+ryYMPlp3Z+d68ee97O8pyUxNYrBUxhuhDRBB/ECWwm4oIeRw/R3xHrCNO+HgY0RYwfUDPc4hpRAPcvr1CJBGLiI+IB4jfARP5J8QzuFujjb1DRBHPEXnGB+ZqQG62p4i39MD4mU9D7Y04WxlPuIY6OECcY4xnu9QeqSq8nJ2Fx6rqeWWam1ha0r91sV7GS01KHltdhfDkJMR2djw5QXNobmhiAp5sbMBDxpym32e8TqXkwaEhUBobIdDd7eqEIKe5pYsLUNvbIb656RSJe0wiItA/MwPB4WFQwuEboXBwwkpeyuVAiUQgODAA0WRS5kBBGp9vCwugHRzY5a2jA6JraxVOyMgpclf7+7A7NSWj0aQO/NA0yGD4aQFh+uKnpxAcHDQiYSPHcYN8bw8yOJfWklnAKUP0DzmZ2tlZXrylRT8WcRziaAzy5mZj57QBJ3IhRODmBO2imE4b5OacqAg7keO4Tu6yc7MDqhcnvo6Pg3Z4aBszyLlzfsiFAyEvE0UkKnIin785838gR1OkOuBm+s7Pzso7xzMvvyz5XUauA451TjsXYRfklBM9PRDb3vYj2wXmm9xSajad6Oqy6YSDaex/yOnMbTqBkQnG4557B/NNzsMuEk4kZkVCeuwdjg44nbk52w2dwLlChLz0Dlcd6McGYpBbwm4tNUMnjo6q9o4+bGy+dYAaSDGbrSg1pzqvqhN4bEWsil1sbL51gBZMj4yAdnzsWWTMTlDkiltbkEkk4Kf8G10HzmWjv66vITs6CoWVFc8KJ5zIp1Ju5GQ5BW9Gr/EhBfWxN4xfly7rQE6c64zf1Rbr4ABxnggdoLvalxqSf0Z8EGUY5hdFuqvN3/FxXHKOF4gr8UvWRrdUuigi3vOEpNtSL/23U6lQ16LGUa2OPY7n6D/Xcj3X7a8AAwAd5K3Nw/+quwAAAABJRU5ErkJggg==";
if ($('#sop_key')) {
server_name = SOP_SERVER_URL;
server_name = server_name.replace(/https:\/\//, "").replace(/http:\/\//, "").replace(/\/connect/, "");
out = "<div style='width:100%;border:1px solid "+defColor4+";margin-bottom:3px;'><h4 style='text-align:center;background-color:"+defBgColor2+";margin:0;'>Squad OP</h4></div>"
+ "<div style='text-align:center;margin-bottom:2px;'>Please enter your OP-Key for <i>" + server_name + "</i>:</div>"
+ "<input type='text' style='width:100%;' id='sop_key'>"
+ "<div class='ui-dialog-buttonset' style='text-align:center;'><button style='width:100%;margin: 3px 0 0 0' onclick='window.plugin.squadOP.setOpKey()' class='ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only'>ok</button></div>";
var keySafe = window.plugin.squadOP.keySafe;
if (Object.keys(keySafe).length > 0) {
out += "<div style='margin-top:23px;'><div style='width:100%;border:1px solid "+defColor4+";margin-bottom:3px;'><h4 style='text-align:center;background-color:"+defBgColor2+";margin:0;'>OP History</h4></div><div style='max-height:250px;overflow:auto;'><table width='100%'>";
var keySafeArr = new Array();
$.each( keySafe, function( key, op ) {
op.op_id = key;
keySafeArr.push(op);
});
function SortByLast(a, b){
var aName = a.last;
var bName = b.last;
return ((aName > bName) ? -1 : ((aName < bName) ? 1 : 0));
}
keySafeArr.sort(SortByLast);
$.each( keySafeArr, function( key, op ) {
var op_server_str = op.server.replace(/https:\/\//, "").replace(/http:\/\//, "").replace(/\/connect/, "");
out += "<tr><td><a href='javascript:void(0)' onclick='window.plugin.squadOP.setKeyFromHistory(\""+op.op_id+"\")' style='text-decoration:underline;'>" + op.name + "</a></td>";
out += "<td>" + op_server_str + "</td>";
out += "<td align='right'>" + timeConverter(op.last) + "</td>";
out += "<td width='14px;'><a href='javascript:void(0)' onclick='window.plugin.squadOP.deleteKeyFromHistory(\""+op.op_id+"\")'><img src='" + deleteIcon + "' width='14px;'></a></td>";
out += "</tr>";
});
out += "</table></div></div>";
}
$('#sop_out').html(out);
}
}
window.plugin.squadOP.setKeyFromHistory = function(key) {
var keySafe = window.plugin.squadOP.keySafe;
if (keySafe[key]) {
$('#sop_out .ui-dialog-buttonset').html("<div style='width:100%;text-align:center;'>please wait <a href='javascript:void(0)' onclick='window.plugin.squadOP.drawKeyInput()'>[retry]</a></div>");
window.plugin.squadOP.saveData.push({
requestType: 'setOpKeyHistory',
op_key: keySafe[key].key,
op_server: keySafe[key].server,
op_id: key,
callback: window.plugin.squadOP.setOpKeyCallback
});
}
}
window.plugin.squadOP.deleteKeyFromHistory = function(key) {
var keySafe = window.plugin.squadOP.keySafe;
if (keySafe[key]) {
$('#sop_out .ui-dialog-buttonset').html("<div style='width:100%;text-align:center;'>please wait <a href='javascript:void(0)' onclick='window.plugin.squadOP.drawKeyInput()'>[retry]</a></div>");
window.plugin.squadOP.saveData.push({
requestType: 'deleteOpKeyHistory',
op_id: key
});
}
}
window.plugin.squadOP.setOpKey = function() {
$('#sop_out .ui-dialog-buttonset').html("<div style='width:100%;text-align:center;'>please wait <a href='javascript:void(0)' onclick='window.plugin.squadOP.drawKeyInput()'>[retry]</a></div>");
window.plugin.squadOP.saveData.push({
requestType: 'setOpKey',
op_key: $('#sop_key').val(),
op_server: false,
callback: window.plugin.squadOP.setOpKeyCallback
});
}
window.plugin.squadOP.setOpKeyCallback = function() {
}
window.plugin.squadOP.delOpKey = function() {
window.plugin.squadOP.saveData.push({
requestType: 'delOpKey',
callback: window.plugin.squadOP.delOpKeyCallback
});
}
window.plugin.squadOP.delOpKeyCallback = function() {
$("#sop_logs").html("");
$("#squadSelect").html("");
$('#dialog-sop-import-window').parent().hide();
$('#dialog-sop-options-window').parent().hide();
$('#dialog-assign-squad-portal').parent().hide();
$('#dialog-issue-info-dialog').parent().hide();
$('#dialog-squad-info-dialog').parent().hide();
window.plugin.squadOP.JSONdata = undefined;
window.plugin.squadOP.drawKeyInput();
}
window.plugin.roundPrecision = function(number, precision)
{
precision = Math.abs(parseInt(precision)) || 0;
var coefficient = Math.pow(10, precision);
return Math.round(number*coefficient)/coefficient;
}
window.plugin.nl2br = function(str, is_xhtml) {
var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}
var setup = plugin.squadOP.setup;
// PLUGIN END //////////////////////////////////////////////////////////
setup.info = plugin_info; //add the script info data to the function as a property
if(!window.bootPlugins) window.bootPlugins = [];
window.bootPlugins.push(setup);
// if IITC has already booted, immediately run the 'setup' function
if(window.iitcLoaded && typeof setup === 'function') setup();
} // wrapper end
// inject code into site context
var script = document.createElement('script');
var info = {};
if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = { version: GM_info.script.version, name: GM_info.script.name, description: GM_info.script.description };
script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');'));
(document.body || document.head || document.documentElement).appendChild(script);
// BACKEND COMMUNICATION //////////////////////////////////////////////////////////
function loadSquads(){
var auth_key = GM_getValue("sop_cur_key");
if (auth_key == undefined || auth_key == "") {
unsafeWindow.sopHasNoKey = true;
return false;
}
if (unsafeWindow.sopIsSending) {
return false;
}
// clearInterval(asyncInt);
showLoader(true);
var postStr = "formData1=1&key="+auth_key+"&chksum="+contentMD5+"&last="+lastTimestamp+"&wp="+trackerWaypoints+"&s="+squadListSort+"&p="+encodeURIComponent(unsafeWindow.PLAYER.nickname)+"&f="+encodeURIComponent(sopSquadFilter);
if (isLoginRequest == true) {
postStr += "&isLogin=1&v="+sopScriptVersion;
}
GM_xmlhttpRequest ( {
method: "POST",
url: SOP_SERVER_URL,
data: postStr,
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function (response) {
//asyncInt = window.setInterval(sendUpdates, asyncIntTime);
//console.debug(response);
showLoader(false);
if (response.responseText == "0") {
clearInterval(squadInt);
squadInt = false;
GM_setValue("sop_cur_key", false);
unsafeWindow.alert("Key is invalid!");
unsafeWindow.plugin.squadOP.delOpKey();
}
unsafeWindow.$('#sop_err').hide();
try {
var jsonDataObject = $.parseJSON(response.responseText);
if (auth_key == undefined || auth_key == false || jsonDataObject == null) {
clearInterval(squadInt);
squadInt = false;
GM_setValue("sop_cur_key", false);
auth_key = "";
unsafeWindow.alert("OP-Key is invalid!");
unsafeWindow.plugin.squadOP.delOpKey();
}
else {
if (squadInt == false) {
squadInt = window.setInterval(loadSquads, squadIntTime);
}
}
}
catch (e) {
if (response.responseText.indexOf("Server too busy") > -1) {
var error_wait_time = 20000 + (Math.floor(Math.random() * 15000) + 5000);
unsafeWindow.$('#sop_err').html("connection error, please wait " + Math.floor(error_wait_time/1000) + "sec - don't reload");
unsafeWindow.$('#sop_err').show();
if (squadInt) clearInterval(squadInt);
squadInt = window.setInterval(loadSquads, error_wait_time);
return;
}
//console.debug("Error Data:"+response.responseText);
}
if (unsafeWindow.$ != undefined && unsafeWindow.$('#sop_out') && jsonDataObject != undefined && jsonDataObject.squads) {
unsafeWindow.plugin.squadOP.JSONdata = cloneInto(jsonDataObject, unsafeWindow);
if (unsafeWindow.plugin.squadOP.drawnTracesSquad != undefined) {
unsafeWindow.plugin.squadOP.drawnTracesSquad.clearLayers();
}
if (unsafeWindow.plugin.squadOP.drawSquadList()) {
contentMD5 = jsonDataObject.Md5
}
if (jsonDataObject.logs != false) {
unsafeWindow.plugin.squadOP.drawLogsTimeoff = cloneInto(jsonDataObject.toff, unsafeWindow);
for (var i = 0, j = jsonDataObject.logs.length; i < j; i++) {
unsafeWindow.plugin.squadOP.drawLogsdata[unsafeWindow.plugin.squadOP.drawLogsdata.length] = cloneInto(jsonDataObject.logs[i], unsafeWindow);
}
lastTimestamp = jsonDataObject.timestamp;
}
if (unsafeWindow.plugin.squadOP.drawLogs()) {
}
if (isLoginRequest == true) {
//unsafeWindow.console.log("isLoginRequest");
var keyMD5 = MD5(auth_key + SOP_SERVER_URL);
var keySafe = GM_getValue("sop_key_history", "");
if (keySafe != "") {
keySafe = $.parseJSON(keySafe);
}
else {
keySafe = {};
}
keySafe[keyMD5] = {
name: jsonDataObject.event_name,
key: auth_key,
server: SOP_SERVER_URL,
last: Math.floor(new Date().getTime())
};
unsafeWindow.plugin.squadOP.keySafe = cloneInto(keySafe, unsafeWindow);
GM_setValue("sop_key_history", JSON.stringify(keySafe));
isLoginRequest = false;
}
}
// response.responseText
}
} );
}
var currentSendData = false;
var isLoginRequest = true;
function sendUpdates(){
try {
if (unsafeWindow.sopIsSending) {
return false;
}
if (unsafeWindow.sop_docked != squadDocked) {
GM_setValue("sop_squad_dock", unsafeWindow.sop_docked);
squadDocked = unsafeWindow.sop_docked;
}
if (unsafeWindow.portalKeysOfSquadsLoaded != portalKeysOfSquadsLoaded) {
GM_setValue("sop_squad_portal_keys_loaded", unsafeWindow.portalKeysOfSquadsLoaded);
portalKeysOfSquadsLoaded = unsafeWindow.portalKeysOfSquadsLoaded;
}
showHidePrivacy('#dialog-sop-main-window');
//showHidePrivacy('#dialog-assign-squad-portal');
}
catch(e) {
return false;
}
if (unsafeWindow.plugin.squadOP != undefined && unsafeWindow.plugin.squadOP.saveData.length > 0) {
var auth_key = GM_getValue("sop_cur_key");
try {
showLoader(true);
unsafeWindow.sopIsSending = true;
currentSendData = unsafeWindow.plugin.squadOP.saveData.shift();
sendData = {};
switch(currentSendData.requestType)
{
case 'REST':
GM_xmlhttpRequest ( {
method: "GET",
url: SOP_SERVER_URL+'?rest=true&key='+GM_getValue("sop_cur_key")+'&'+currentSendData.url,
onload: function (response) {
unsafeWindow.sopIsSending = false;
showLoader(false);
if (currentSendData.callback) {
currentSendData.callback(response.responseText);
}
}
} );
return true;
break;
case 'saveKML':
sendData = {
requestType: currentSendData.requestType,
kml: currentSendData.kml,
loadSquads: false
};
break;
case 'setOpKey':
isLoginRequest = true;
auth_key = currentSendData.op_key || "";
if (auth_key.indexOf("@@") > -1) {
var st = auth_key.split("@@");
auth_key = st[0];
SOP_SERVER_URL = st[1] + "/connect";
unsafeWindow.SOP_SERVER_URL = cloneInto(SOP_SERVER_URL, unsafeWindow);
}
GM_setValue("sop_cur_key", auth_key);
currentSendData.callback();
unsafeWindow.sopIsSending = false;
loadSquads();
break;
case 'setOpKeyHistory':
isLoginRequest = true;
auth_key = currentSendData.op_key;
GM_setValue("sop_cur_key", auth_key);
if (currentSendData.op_server != false) {
SOP_SERVER_URL = currentSendData.op_server;
unsafeWindow.SOP_SERVER_URL = cloneInto(SOP_SERVER_URL, unsafeWindow);
GM_setValue("SOP_SERVER_URL", SOP_SERVER_URL);
}
keySafe[currentSendData.op_id].last = new Date().getTime();
unsafeWindow.plugin.squadOP.keySafe = cloneInto(keySafe, unsafeWindow);
GM_setValue("sop_key_history", JSON.stringify(keySafe));
currentSendData.callback();
unsafeWindow.sopIsSending = false;
loadSquads();
break;
case 'deleteOpKeyHistory':
delete keySafe[currentSendData.op_id];
unsafeWindow.plugin.squadOP.keySafe = cloneInto(keySafe, unsafeWindow);
GM_setValue("sop_key_history", JSON.stringify(keySafe));
unsafeWindow.plugin.squadOP.drawKeyInput();
break;
case 'delOpKey':
contentMD5 = "";
GM_setValue("sop_cur_key", "");
GM_setValue("sop_squad_filter", "");
unsafeWindow.sopSquadFilter = "";
sopSquadFilter = "";
lastTimestamp = 0;
unsafeWindow.plugin.squadOP.drawLogsdata = cloneInto(new Array(), unsafeWindow);
currentSendData.callback();
unsafeWindow.sopIsSending = false;
if (portalKeysOfSquadsLoaded) {
}
break;
case 'saveOptions':
var err = "";
if (currentSendData.squadIntTime >= 10000 && currentSendData.squadIntTime <= 30000) {
GM_setValue("sop_server_update_interval", currentSendData.squadIntTime);
squadIntTime = currentSendData.squadIntTime;
unsafeWindow.squadIntTime = currentSendData.squadIntTime;
}
else {
err += languageFile.errUpdateInterval + "<br />";
}
if (currentSendData.asyncIntTime >= 10 && currentSendData.asyncIntTime <= 1000) {
GM_setValue("sop_async_interval", currentSendData.asyncIntTime);
asyncIntTime = currentSendData.asyncIntTime;
unsafeWindow.asyncIntTime = currentSendData.asyncIntTime;
}
else {
if (err != "") err += "<br />";
err += languageFile.errTransferInterval + "<br />";
}
if (currentSendData.trackerWaypoints >= 0 && currentSendData.trackerWaypoints <= 1000) {
GM_setValue("sop_tracker_waypoints", currentSendData.trackerWaypoints);
trackerWaypoints = currentSendData.trackerWaypoints;
unsafeWindow.trackerWaypoints = trackerWaypoints;
}
else {
if (err != "") err += "<br />";
err += languageFile.errWaypoints + "<br />";
}
GM_setValue("sop_squad_list_sort", currentSendData.squadListSort);
GM_setValue("sop_map_marker_type", currentSendData.mapMarkerType);
GM_setValue("sop_selected_theme", currentSendData.sopSelectedTheme);
GM_setValue("sop_squad_filter", currentSendData.sopSquadFilter);
squadListSort = currentSendData.squadListSort;
unsafeWindow.squadListSort = squadListSort;
mapMarkerType = currentSendData.mapMarkerType;
unsafeWindow.mapMarkerType = mapMarkerType;
if (currentSendData.sopSelectedTheme != sopSelectedTheme) {
unsafeWindow.alert(languageFile.errReloadWindow);
}
sopSelectedTheme = currentSendData.sopSelectedTheme;
unsafeWindow.sopSelectedTheme = sopSelectedTheme;
sopSquadFilter = currentSendData.sopSquadFilter;
unsafeWindow.sopSquadFilter = sopSquadFilter;
clearInterval(squadInt);
squadInt = window.setInterval(loadSquads, squadIntTime);
clearInterval(asyncInt);
asyncInt = window.setInterval(sendUpdates, asyncIntTime);
currentSendData.callback(err);
unsafeWindow.sopIsSending = false;
//showLoader(false);
break;
case 'assignPortal':
sendData = {
requestType: currentSendData.requestType,
action: currentSendData.action,
comment: currentSendData.comment,
//link_target: currentSendData.link_target,
guid: currentSendData.guid,
squad: currentSendData.squad,
title: encodeURIComponent(currentSendData.portal.title.replace(/["]/g, "'")),
adress: "", // removed in case of IITC Update: currentSendData.details.descriptiveText.map.ADDRESS
level: currentSendData.portal.level,
image: currentSendData.portal.image,
lat: currentSendData.portal.latE6/100,
lng: currentSendData.portal.lngE6/100,
team: currentSendData.portal.team,
type: currentSendData.portal.type,
mods:currentSendData.portal.mods,
capturedTime: currentSendData.portal.captured ? currentSendData.portal.capturedTime : 0,
capturingPlayerId: currentSendData.portal.captured ? currentSendData.portal.capturingPlayerId : "",
resCount: currentSendData.portal.resCount,
health: currentSendData.portal.health,
loadSquads: true
};
break;
case 'chatMsg':
sendData = {
requestType: currentSendData.requestType,
msg: currentSendData.msg,
squad_id: currentSendData.squad_id,
loadSquads: false
};
break;
case 'assignIssue':
sendData = {
requestType: currentSendData.requestType,
action: currentSendData.action,
comment: currentSendData.comment,
guid: currentSendData.guid,
squad: currentSendData.squad,
title: encodeURIComponent(currentSendData.portal.title.replace(/["]/g, "'")),
adress: "", // removed in case of IITC Update: currentSendData.details.descriptiveText.map.ADDRESS
level: currentSendData.portal.level,
image: currentSendData.portal.image,
lat: currentSendData.portal.latE6/100,
lng: currentSendData.portal.lngE6/100,
team: currentSendData.portal.team,
type: currentSendData.portal.type,
capturedTime: currentSendData.details.captured ? currentSendData.details.captured.capturedTime : 0,
capturingPlayerId: currentSendData.details.captured ? currentSendData.details.captured.capturingPlayerId : "",
resCount: currentSendData.portal.resCount,
health: currentSendData.portal.health,
loadSquads: true
};
break;
case 'delAssignPortal':
sendData = {
requestType: currentSendData.requestType,
squad_id: currentSendData.squad_id,
target_id: currentSendData.target_id,
loadSquads: true
};
break;
case 'delIssue':
sendData = {
requestType: currentSendData.requestType,
target_id: currentSendData.target_id,
loadSquads: false
};
break;
case 'setPortalDone':
sendData = {
requestType: currentSendData.requestType,
squad_id: currentSendData.squad_id,
target_id: currentSendData.target_id,
loadSquads: true
};
break;
case 'setTargetToIssue':
sendData = {
requestType: currentSendData.requestType,
squad_id: currentSendData.squad_id,
target_id: currentSendData.target_id,
loadSquads: true
};
break;
case 'getSquadTargets':
sendData = {
requestType: currentSendData.requestType,
squad_id: currentSendData.squad_id,
loadSquads: false
};
break;
case 'getIssues':
sendData = {
requestType: currentSendData.requestType,
loadSquads: false
};
break;
case 'saveSquadToIssue':
sendData = {
requestType: currentSendData.requestType,
target_id: currentSendData.target_id,
squad_id: currentSendData.squad_id,
loadSquads: true
};
break;
case 'getOverlays':
case 'getBookmarks':
case 'getDrawTools':
case 'getPortalKeys':
case 'getPortalKeysOfSquads':
sendData = {
requestType: currentSendData.requestType,
loadSquads: false
};
break;
case 'getSquadsWithKey':
sendData = {
requestType: currentSendData.requestType,
guid: currentSendData.guid,
loadSquads: false
};
break;
}
if (sendData.requestType == undefined) {
return false;
}
sendData.p = unsafeWindow.PLAYER.nickname;
sendDataStr = JSON.stringify(sendData);
GM_xmlhttpRequest ( {
method: "POST",
url: SOP_SERVER_URL,
data: "key="+auth_key+"&update="+sendDataStr
,
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function (response) {
unsafeWindow.sopIsSending = false;
showLoader(false);
if (response.responseText.indexOf("Server too busy") > -1) {
unsafeWindow.$('#sop_err').html("command not sent, please wait and don't reload");
unsafeWindow.$('#sop_err').show();
return;
}
unsafeWindow.$('#sop_err').hide();
if (currentSendData.callback) {
currentSendData.callback(response.responseText);
}
if (sendData.loadSquads == true) {
loadSquads();
}
}
} );
}
catch (e) {
unsafeWindow.console.log("Error sendUpdates: l:"+err.lineNumber+" " + err.message);
unsafeWindow.sopIsSending = false;
}
}
}
function showLoader(state){
try {
if (state) {
unsafeWindow.$('#sop_loader').show();
}
else {
unsafeWindow.$('#sop_loader').hide();
}
}
catch (e) {}
}
function showHidePrivacy(sel){
if (!!$(sel)) {
if($(document.body).hasClass('privacy_active')) {
$(sel).parent().hide();
}
else {
$(sel).parent().show();
}
}
}
unsafeWindow.sopIsSending = false;
var isAuthed = false;
var isWaitingForKey=false;
var contentMD5 = false;
var lastTimestamp = 0;
try {
var squadDocked = GM_getValue("sop_squad_dock", "0");
var portalKeysOfSquadsLoaded = GM_getValue("sop_squad_portal_keys_loaded", "0");
var squadIntTime = GM_getValue("sop_server_update_interval", "10000");
var asyncIntTime = GM_getValue("sop_async_interval", "500");
var trackerWaypoints = GM_getValue("sop_tracker_waypoints", "3");
var squadListSort = GM_getValue("sop_squad_list_sort", "0");
var mapMarkerType = GM_getValue("sop_map_marker_type", "0");
var sopSelectedTheme = GM_getValue("sop_selected_theme", "0");
var sopSquadFilter = GM_getValue("sop_squad_filter", "");
var windowMainLeft = GM_getValue("sop_window_main_top", 30);
var windowMainTop = GM_getValue("sop_window_main_left", 50);
var windowLogLeft = GM_getValue("sop_window_log_top", 50);
var windowLogTop = GM_getValue("sop_window_log_left", 600);
var keySafe = GM_getValue("sop_key_history", "");
var sopScriptVersion = GM_info.script.version;
SOP_SERVER_URL = GM_getValue("SOP_SERVER_URL", SOP_SERVER_URL);
if (keySafe != "") {
keySafe = $.parseJSON(keySafe);
}
else {
keySafe = {};
}
}
catch (e) {
unsafeWindow.alert("Please install Tampermonkey!");
}
try {
unsafeWindow.trackerWaypoints = cloneInto(trackerWaypoints, unsafeWindow);
unsafeWindow.squadIntTime = cloneInto(squadIntTime, unsafeWindow);
unsafeWindow.asyncIntTime = cloneInto(asyncIntTime, unsafeWindow);
unsafeWindow.squadListSort = cloneInto(squadListSort, unsafeWindow);
unsafeWindow.mapMarkerType = cloneInto(mapMarkerType, unsafeWindow);
unsafeWindow.sopSelectedTheme = cloneInto(sopSelectedTheme, unsafeWindow);
unsafeWindow.sopSquadFilter = cloneInto(sopSquadFilter, unsafeWindow);
unsafeWindow.windowMainTop = cloneInto(windowMainTop, unsafeWindow);
unsafeWindow.windowMainLeft = cloneInto(windowMainLeft, unsafeWindow);
unsafeWindow.windowLogLeft = cloneInto(windowLogLeft, unsafeWindow);
unsafeWindow.windowLogTop = cloneInto(windowLogTop, unsafeWindow);
unsafeWindow.SOP_SERVER_URL = cloneInto(SOP_SERVER_URL, unsafeWindow);
unsafeWindow.sop_docked = cloneInto(squadDocked==1?true:false, unsafeWindow);
unsafeWindow.portalKeysOfSquadsLoaded = cloneInto(portalKeysOfSquadsLoaded==1?true:false, unsafeWindow);
unsafeWindow.plugin.squadOP.keySafe = cloneInto(keySafe, unsafeWindow);
unsafeWindow.plugin.squadOP.sopScriptVersion = cloneInto(sopScriptVersion, unsafeWindow);
//unsafeWindow.$ = cloneInto($, unsafeWindow);
loadSquads();
var squadInt = false;
var asyncInt = window.setInterval(sendUpdates, asyncIntTime);
var language = unsafeWindow.navigator.language;
var languageFile = false;
var lang_de = {
newIssue: 'neue<br />Aufgabe',
waitingIssue: 'offene Aufgaben',
assignSquad: 'Squad zuweisen',
squadSelErr: 'Bitte ein Squad auswählen',
team: 'Team',
targetportal: 'Zielportal',
task: 'Aufgabe',
comment: 'Kommentar',
save: 'speichern',
issueInfo: 'Bitte ordne die Aufgabe/n einem Team zu',
issueOverview: 'Aufgaben-Übersicht',
createIssue: 'Aufgabe für ein Portal erstellen',
squadName: 'Squad-Name',
squadOperator: 'Squad-Operator',
lastPos: 'letzte Position',
lastUpdate: 'Update der Position',
lastConnection: 'letzte Verbindung',
status0: '---',
status1: 'unterwegs zum Zielort',
status2: 'am Zielort eingetroffen',
status3: 'warten auf Anweisung',
status4: 'keine Verbindung zum Server',
status5: 'Zielportal, aber keine Verbindung!',
status6: 'keine aktuelle Position',
status7: 'Zielportal und keine aktuelle Position!',
errUpdateInterval : 'Das Update-Interval muss zwischen 10000 (10s) und 30000ms (30s) liegen.',
errTransferInterval : 'Das Transfer-Interval muss zwischen 10 und 1000ms liegen.',
errWaypoints : 'Mindestens 0 bis 1000',
errReloadWindow: 'Bitte Fenster neu laden, um Theme zu Übernehmen',
curTargets: 'aktuelle Ziele',
pastTargets: 'letzte Ziele',
logoff: 'ABMELDEN',
options: 'Optionen',
cancel: 'abbrechen',
refresh: 'aktualisieren',
close: 'schließen',
directions: 'Route anzeigen',
directionsOpt: 'Route anzeigen (opt.)',
assignbookmarkstopool: "Lesezeichen dem SOP Pool zuweisen",
assignbookmarkstoteam: "Lesezeichen dem SOP Team zuweisen",
importdialog: "Daten Importieren / Exportieren",
importWarning: "Achtung! Vorhandene Daten werden beim Import überschrieben.",
linktohelp: "Bitte selektiere jetzt das Zielportal zu welchem du gerne linken möchtest. Schliesse den Dialog damit die Portaldetails in das Kommentarfeld übernommen werden. Das Zielportal muss sich vom aktuell gewählten Portal unterscheiden: ",
linktodlgtitle: "Wähle das Link Ziel Portal"
}
var lang_en = {
newIssue: 'add<br />new task',
waitingIssue: 'waiting tasks',
squadSelErr: 'Please select squad',
assignSquad: 'assign squad',
team: 'Team',
targetportal: 'Target',
task: 'Action',
comment: 'Comment',
save: 'save',
issueInfo: 'please assign tasks to teams',
issueOverview: 'task overview',
createIssue: 'create task for portal',
squadName: 'Squad-Name',
squadOperator: 'Squad-Operator',
lastPos: 'last location',
lastUpdate: 'last location update',
lastConnection: 'last connection',
status0: '---',
status1: 'on way to target',
status2: 'at target location',
status3: 'waiting for advice',
status4: 'no connection to server',
status5: 'Target, but no connection!',
status6: 'location is not fresh',
status7: 'Target, but outdated location!',
errUpdateInterval : 'Update-Interval must be between 10000 (10s) and 30000ms (30s)',
errTransferInterval : 'Transfer-Interval must be between 10 and 1000ms.',
errWaypoints : 'at least 0 to 1000',
errReloadWindow: 'Please reload window to apply theme.',
curTargets: 'open targets',
pastTargets: 'past targets',
logoff: 'LOGOFF',
options: 'Settings',
cancel: 'cancel',
refresh: 'refresh',
close: 'close',
directions: 'show directions',
directionsOpt: 'show directions (opt.)',
assignbookmarkstopool: "Assign bookmarks to SOP Pool",
assignbookmarkstoteam: "Assing boomarks to SOP Team",
importdialog: "Import/Export data",
importWarning: "Attention! Existing data will be overwritten on import.",
linktohelp: "Please select the target portal you wish to link to. Close the dialog to load detailed portal data into the comment field.<br><br>The target portal have to be different from the currently selected portal: ",
linktodlgtitle: "select link target portal"
}
if (language.indexOf("de") === 0) {
languageFile = lang_de;
unsafeWindow.plugin.squadOP.locale = "de_DE";
}
else {
languageFile = lang_en;
unsafeWindow.plugin.squadOP.locale = "en_US";
//alert("EN ("+language+")");
}
unsafeWindow.soplng = cloneInto(languageFile, unsafeWindow);
/*document.addEventListener('keydown', function(e) {
if (e.keyCode == 83 && !e.shiftKey && !e.ctrlKey && e.altKey && !e.metaKey) {
unsafeWindow.plugin.squadOP.undockSquadListDialog.toggle();
}
}, false);*/
// SOP THEME STUFF
var defBgColor1 = "rgba(8, 48, 78, 0.9)";
var defBgColor2 = "#083C4E";
var defColor1 = "#FFCE00"; // Font Color
var defColor2 = "";
var defColor3 = "#000"; //chat msg bg
var defColor4 = "#20A8B1"; // Border Color
if (sopSelectedTheme > 0) {
if (sopSelectedTheme == 1) { // enlightened
defBgColor1 = "rgba(0, 0, 0, 0.98)";
defBgColor2 = "#002600";
defColor1 = "#EEEEEE";
defColor2 = "";
defColor3 = "";
defColor4 = "#03D402";
}
else if (sopSelectedTheme == 2) { // greyscale
defBgColor1 = "rgba(66, 66, 66, 0.98)";
defBgColor2 = "#666666";
defColor1 = "#ECECEC";
defColor2 = "";
defColor3 = "";
defColor4 = "#c6c6c6";
}
else if (sopSelectedTheme == 3) { // darker
defBgColor1 = "rgba(2, 7, 13, 0.98)";
defBgColor2 = "#1f1f1f";
defColor1 = "#CECECE";
defColor2 = "";
defColor3 = "";
defColor4 = "#08140A";
}
else if (sopSelectedTheme == 4) { // gossip
defBgColor1 = "rgba(64, 40, 60, 0.98)";
defBgColor2 = "#402921";
defColor1 = "#FAD2AE";
defColor2 = "";
defColor3 = "";
defColor4 = "#BFAAB2";
}
else if (sopSelectedTheme == 5) { // fresh
defBgColor1 = "rgba(2, 38, 1, 0.98)";
defBgColor2 = "#55A603";
defColor1 = "#C8EC44";
defColor2 = "";
defColor3 = "";
defColor4 = "#EDF257";
}
document.getElementsByTagName('head')[0].innerHTML = ''
+ '<style>/* general rules ******************************************************/\n\nhtml, body, #map {\n height: 100%;\n width: 100%;\n overflow: hidden; /* workaround for #373 */\n background: #0e3d4e;\n}\n\nbody {\n font-size: 14px;\n font-family: "Roboto", "Helvetica Neue", Helvetica, sans-serif;\n margin: 0;\n}\n\n#scrollwrapper {\n overflow-x: hidden;\n overflow-y: auto;\n position: fixed;\n right: -38px;\n top: 0;\n width: 340px;\n bottom: 45px;\n z-index: 1001;\n pointer-events: none;\n}\n\n#sidebar {\n background-color: '+defBgColor1+';\n border-left: 1px solid '+defColor4+';\n color: #888;\n position: relative;\n left: 0;\n top: 0;\n max-height: 100%;\n overflow-y:scroll;\n overflow-x:hidden;\n z-index: 3000;\n pointer-events: auto;\n}\n\n#sidebartoggle {\n display: block;\n padding: 20px 5px;\n margin-top: -31px; /* -(toggle height / 2) */\n line-height: 10px;\n position: absolute;\n top: 108px;\n z-index: 3001;\n background-color: '+defBgColor1+';\n color: '+defColor1+';\n border: 1px solid '+defColor4+';\n border-right: none;\n border-radius: 5px 0 0 5px;\n text-decoration: none;\n right: -50px; /* overwritten later by the script with SIDEBAR_WIDTH */\n}\n\n.enl {\n color: #03fe03 !important;\n}\n\n.res {\n color: #00c5ff !important;\n}\n\n.none {\n color: #fff;\n}\n\n.nickname {\n cursor: pointer !important;\n}\n\na {\n color: '+defColor1+';\n cursor: pointer;\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/* map display, required because GMaps uses a high z-index which is\n * normally above Leaflet�s vector pane */\n.leaflet-map-pane {\n z-index: 1000;\n}\n\n/* leaflet layer chooser, when opened, is above other panels */\n/* doesn\'t actually work :( - left commented out for reference\n.leaflet-control-layers-expanded {\n z-index: 9999 !important;\n}\n*/\n\n\n.leaflet-control-layers-overlays label.disabled {\n text-decoration: line-through;\n cursor: help;\n}\n\n\n/* base layer selection - first column */\n.leaflet-control-layers-base {\n float: left;\n}\n\n/* overlays layer selection - 2nd column */\n.leaflet-control-layers-overlays {\n float: left;\n margin-left: 8px;\n border-left: 1px solid #DDDDDD;\n padding-left: 8px;\n}\n\n/* hide the usual separator */\n.leaflet-control-layers-separator {\n display: none;\n}\n\n\n\n.help {\n cursor: help;\n}\n\n.toggle {\n display: block;\n height: 0;\n width: 0;\n}\n\n/* field mu count */\n.fieldmu {\n color: '+defColor1+';\n font-size: 13px;\n font-family: Roboto, "Helvetica Neue", Helvetica, sans-serif; /*override leaflet-container */\n text-align: center;\n text-shadow: 0 0 0.2em black, 0 0 0.2em black, 0 0 0.2em black;\n pointer-events: none;\n}\n\n\n/* chat ***************************************************************/\n\n#chatcontrols {\n color: '+defColor1+';\n background: '+defBgColor1+';\n position: absolute;\n left: 0;\n z-index: 3000;\n height: 26px;\n padding-left:1px;\n}\n\n#chatcontrols.expand {\n top: 0;\n bottom: auto;\n}\n\n#chatcontrols a {\n margin-left: -1px;\n display: inline-block;\n width: 94px;\n text-align: center;\n height: 24px;\n line-height: 24px;\n border: 1px solid '+defColor4+';\n vertical-align: top;\n}\n\n#chatcontrols a:first-child {\n letter-spacing:-1px;\n text-decoration: none !important;\n}\n\n#chatcontrols a.active {\n border-color: '+defColor1+';\n border-bottom-width:0px;\n font-weight:bold\n}\n\n#chatcontrols a.active + a {\n border-left-color: '+defColor1+'\n}\n\n\n#chatcontrols .toggle {\n border-left: 10px solid transparent;\n border-right: 10px solid transparent;\n margin: 6px auto auto;\n}\n\n#chatcontrols .expand {\n border-bottom: 10px solid '+defColor1+';\n}\n\n#chatcontrols .shrink {\n border-top: 10px solid '+defColor1+';\n}\n\n\n#chat {\n position: absolute;\n width: 708px;\n bottom: 23px;\n left: 0;\n z-index: 3000;\n background: '+defBgColor1+';\n font-size: 12.6px;\n line-height: 15px;\n color: #eee;\n border: 1px solid '+defColor4+';\n border-bottom: 0;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\nem {\n color: red;\n font-style: normal;\n}\n\n#chat.expand {\n height:auto;\n top: 25px;\n}\n\n#chatpublic, #chatfull, #chatcompact {\n display: none;\n}\n\n#chat > div {\n overflow-x:hidden;\n overflow-y:scroll;\n height: 100%;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 2px;\n position:relative;\n}\n\n#chat table, #chatinput table {\n width: 100%;\n table-layout: fixed;\n border-spacing: 0m;\n border-collapse: collapse;\n}\n\n#chatinput table {\n height: 100%;\n}\n\n#chat td, #chatinput td {\n font-size: 12.6px;\n vertical-align: top;\n padding-bottom: 3px;\n}\n\n/* time */\n#chat td:first-child, #chatinput td:first-child {\n width: 44px;\n overflow: hidden;\n padding-left: 2px;\n color: #bbb;\n white-space: nowrap;\n}\n\n#chat time {\n cursor: help;\n}\n\n/* nick */\n#chat td:nth-child(2), #chatinput td:nth-child(2) {\n width: 91px;\n overflow: hidden;\n padding-left: 2px;\n white-space: nowrap;\n}\n\n#chat td .system_narrowcast {\n color: #f66 !important;\n}\n\nmark {\n background: transparent;\n}\n\n.invisep {\n display: inline-block;\n width: 1px;\n height: 1px;\n overflow:hidden;\n color: transparent;\n}\n\n/* divider */\nsummary {\n color: #bbb;\n display: inline-block;\n height: 16px;\n overflow: hidden;\n padding: 0 2px;\n white-space: nowrap;\n width: 100%;\n}\n\n#chatinput {\n position: absolute;\n bottom: 0;\n left: 0;\n padding: 0 2px;\n background: '+defBgColor1+';\n width: 708px;\n border: 1px solid '+defColor4+';\n z-index: 3001;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n#chatinput td {\n padding-bottom: 1px;\n vertical-align: middle;\n}\n\n\n#chatinput input {\n background: transparent;\n font-size: 12.6px;\n color: #EEEEEE;\n width: 100%;\n height: 100%;\n padding:3px 4px 1px 4px;\n}\n\n\n\n/* sidebar ************************************************************/\n\n#sidebar > * {\n border-bottom: 1px solid '+defColor4+';\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n\n\n#sidebartoggle .toggle {\n border-bottom: 10px solid transparent;\n border-top: 10px solid transparent;\n}\n\n#sidebartoggle .open {\n border-right: 10px solid '+defColor1+';\n}\n\n#sidebartoggle .close {\n border-left: 10px solid '+defColor1+';\n}\n\n/* player stats */\n#playerstat {\n height: 30px;\n}\n\nh2 {\n color: '+defColor1+';\n font-size: 21px;\n padding: 0 4px;\n margin: 0;\n cursor:help;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n}\n\nh2 #name {\n font-weight: 300;\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: top;\n white-space: nowrap;\n width: 205px;\n position: relative;\n}\n\nh2 #stats {\n float: right;\n height: 100%;\n overflow: hidden;\n}\n\n#signout {\n font-size: 12px;\n font-weight: normal;\n line-height: 29px;\n padding: 0 4px;\n position: absolute;\n top: 0;\n right: 0;\n background-color: rgba(87, 87, 87, 0.5);\n display: none; /* starts hidden */\n}\n#name:hover #signout {\n display: block;\n}\n\nh2 sup, h2 sub {\n display: block;\n font-size: 11px;\n margin-bottom: -2px;\n}\n\n\n/* gamestats */\n#gamestat {\n height: 22px;\n}\n\n#gamestat span {\n display: block;\n float: left;\n font-weight: bold;\n cursor:help;\n height: 21px;\n line-height: 22px;\n}\n\n#gamestat .res {\n background: #005684;\n text-align: right;\n}\n\n#gamestat .enl {\n background: #017f01;\n}\n\n\n/* geosearch input, and others */\ninput {\n background-color: rgba(0, 0, 0, 0.3);\n color: '+defColor1+';\n height: 24px;\n padding:0px 4px 0px 4px;\n font-size: 12px;\n border:0;\n font-family:inherit;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n#geosearch{\n width:272px;\n background-color: transparent;\n}\n#geosearchwrapper {\n height:25px; \n background-color: rgba(0, 0, 0, 0.3);\n}\n#geosearchwrapper img{\n vertical-align: bottom;\n margin-bottom: 2px;\n cursor: pointer;\n}\n\n.search_not_found{\n color:red;\n font-style: italic;\n}\n\n::-webkit-input-placeholder {\n font-style: italic;\n}\n\n:-moz-placeholder {\n font-style: italic;\n}\n\n::-moz-placeholder {\n font-style: italic;\n}\n\n.leaflet-control-layers input {\n height: auto;\n padding: 0;\n}\n\n\n/* portal title and image */\nh3 {\n font-size: 16px;\n padding: 0 4px;\n margin:0;\n height: 23px;\n width: 100%;\n overflow:hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n.imgpreview {\n height: 190px;\n background: no-repeat center center;\n background-size: contain;\n cursor: help;\n overflow: hidden;\n position: relative;\n}\n\n.imgpreview img.hide {\n display: none;\n}\n\n.imgpreview .portalDetails {\n display: none;\n}\n\n#level {\n font-size: 40px;\n text-shadow: -1px -1px #000, 1px -1px #000, -1px 1px #000, 1px 1px #000, 0 0 5px #fff;\n display: block;\n margin-right: 15px;\n text-align:right;\n float: right;\n}\n\n/* portal mods */\n.mods {\n margin: 3px auto 1px auto;\n width: 296px;\n height: 67px;\n text-align: center;\n}\n\n.mods span {\n background-color: rgba(0, 0, 0, 0.3);\n /* can�t use inline-block because Webkit\'s implementation is buggy and\n * introduces additional margins in random cases. No clear necessary,\n * as that�s solved by setting height on .mods. */\n display: block;\n float:left;\n height: 63px;\n margin: 0 2px;\n overflow: hidden;\n padding: 2px;\n text-align: center;\n width: 63px;\n cursor:help;\n border: 1px solid #666;\n}\n\n.mods span:not([title]) {\n cursor: auto;\n}\n\n.res .mods span, .res .meter {\n border: 1px solid #0076b6;\n}\n.enl .mods span, .enl .meter {\n border: 1px solid #017f01;\n}\n\n/* random details, resonator details */\n#randdetails, #resodetails {\n width: 100%;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0 4px;\n table-layout: fixed;\n border-spacing: 0m;\n border-collapse: collapse;\n}\n\n#randdetails td, #resodetails td {\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: top;\n white-space: nowrap;\n width: 50%;\n width: calc(50% - 62px);\n}\n\n#randdetails th, #resodetails th {\n font-weight: normal;\n text-align: right;\n width: 62px;\n padding:0px;\n padding-right:4px;\n padding-left:4px;\n}\n\n#randdetails th + th, #resodetails th + th {\n text-align: left;\n padding-right: 4px;\n padding-left: 4px;\n}\n\n#randdetails td:first-child, #resodetails td:first-child {\n text-align: right;\n padding-left: 2px;\n}\n\n#randdetails td:last-child, #resodetails td:last-child {\n text-align: left;\n padding-right: 2px;\n}\n\n\n#randdetails {\n margin-top: 4px;\n margin-bottom: 5px;\n}\n\n\n#randdetails tt {\n font-family: inherit;\n cursor: help;\n}\n\n/* resonators */\n#resodetails {\n margin-bottom: 0px;\n}\n\n.meter {\n background: #000;\n cursor: help;\n display: inline-block;\n height: 18px;\n padding: 1px;\n width: 100%;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n position: relative;\n left: 0;\n top: 0;\n}\n\n.meter.north {\n overflow: hidden;\n}\n.meter.north:before {\n content: "";\n background-color: red;\n border: 1px solid #000000;\n border-radius: 100%;\n display: block;\n height: 6px;\n width: 6px;\n left: 50%;\n top: -3px;\n margin-left: -4px;\n position: absolute;\n}\n\n.meter span {\n display: block;\n height: 14px;\n}\n\n.meter-level {\n position: absolute;\n left: 0;\n right: 0;\n top: -2px;\n text-shadow: 0.0em 0.0em 0.3em #808080;\n text-align: center;\n word-spacing: 4px; /* to leave some space for the north indicator */\n}\n\n/* links below resos */\n\n.linkdetails {\n margin-bottom: 0px;\n text-align: center;\n}\n\n.linkdetails aside {\n display: inline-block;\n white-space: nowrap;\n font-size: 12px;\n margin-left: 5px;\n margin-right: 5px;\n}\n\n#toolbox {\n font-size: 12px;\n text-align: left; /* centre didn\'t look as nice here as it did above in .linkdetails */\n}\n\n#toolbox > a {\n margin-left: 5px;\n margin-right: 5px;\n white-space: nowrap;\n display: inline-block;\n}\n\n/* a common portal display takes this much space (prevents moving\n * content when first selecting a portal) */\n\n#portaldetails {\n min-height: 63px;\n position: relative; /* so the below \'#portaldetails .close\' is relative to this */\n}\n\n#portaldetails .close {\n position: absolute;\n top: -2px;\n right: 2px;\n cursor: pointer;\n color: '+defColor1+';\n font-size: 16px;\n}\n\n/* update status */\n#updatestatus {\n background-color: '+defBgColor1+';\n border-bottom: 0;\n border-top: 1px solid '+defColor4+';\n border-left: 1px solid '+defColor4+';\n bottom: 0;\n color: '+defColor1+';\n font-size:13px;\n padding: 4px;\n position: fixed;\n right: 0;\n z-index: 3002;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n#updatestatus .map {\n margin-left: 8px;\n}\n\n#loadlevel {\n background: #FFF;\n color: #000000;\n display: inline-block;\n min-width: 1.8em;\n border: 1px solid '+defColor4+';\n border-width: 0 1px;\n margin: -4px 0;\n padding: 4px 0.2em;\n}\n\n/* Dialogs\n */\n.ui-tooltip, .ui-dialog {\n position: absolute;\n z-index: 9999;\n background-color: '+defBgColor1+';\n border: 1px solid '+defColor4+';\n color: #eee;\n font-size: 13px;\n line-height: 15px;\n padding: 2px 4px;\n}\n\n.ui-tooltip {\n max-width: 300px;\n}\n\n.ui-widget-overlay {\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 10000;\n background: #444;\n opacity: 0.6;\n}\n\n.ui-modal {\n z-index: 10001 !important;\n}\n\n.ui-tooltip {\n z-index: 10002 !important;\n}\n\n.ui-tooltip, .ui-dialog a {\n color: '+defColor1+';\n}\n\n.ui-dialog {\n padding: 0;\n border-radius: 2px;\n}\n\n.ui-dialog-modal .ui-dialog-titlebar-close {\n display: none;\n}\n\n.ui-dialog-titlebar {\n font-size: 15px;\n line-height: 17px;\n text-align: center;\n padding: 4px;\n background-color: '+defBgColor1+';\n border-bottom: 1px solid '+defColor4+';\n min-width: 250px;\n}\n\n.ui-dialog-title {\n padding: 2px;\n font-weight: bold;\n}\n\n.ui-dialog-title-active {\n color: '+defColor1+';\n}\n\n.ui-dialog-title-inactive {\n color: #ffffff;\n}\n\n.ui-dialog-titlebar-button {\n position: absolute;\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n width: 17px;\n height: 17px;\n top: 3px;\n cursor: pointer;\n border: 1px solid rgb(32, 168, 177);\n background-color: rgba(0, 0, 0, 0);\n}\n\n.ui-dialog-titlebar-button:active {\n background-color: rgb(32, 168, 177);\n}\n\n.ui-dialog-titlebar-button-close {\n right: 4px;\n}\n\n.ui-dialog-titlebar-button-collapse {\n right: 25px;\n}\n\n.ui-dialog-titlebar-button-collapse-expanded {\n /* For future changes */\n}\n\n.ui-dialog-titlebar-button-collapse-collapsed {\n background-color: rgb(32, 168, 177);\n}\n\n.ui-dialog-content {\n padding: 12px;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 600px !important;\n max-width: 700px !important;\n position: relative;\n}\n\n.ui-dialog-content-hidden {\n display: none !important;\n}\n\n.ui-dialog-buttonpane {\n padding: 6px;\n border-top: 1px solid '+defColor4+';\n}\n\n.ui-dialog-buttonset {\n text-align: right;\n}\n\n.ui-dialog-buttonset button,\n.ui-dialog-content button {\n padding: 2px;\n min-width: 40px;\n color: '+defColor1+';\n border: 1px solid '+defColor1+';\n background-color: '+defBgColor1+';\n border-radius: 4px;\n}\n\n.ui-dialog-buttonset button:hover {\n text-decoration: underline;\n}\n\n.ui-dialog-aboutIITC {\n width: auto !important;\n min-width: 400px !important;\n max-width: 600px !important;\n}\n\ntd {\n padding: 0;\n vertical-align: top;\n}\n\ntd + td {\n padding-left: 4px;\n}\n\n#qrcode > canvas {\n border: 8px solid white;\n}\n\n/* redeem results *****************************************************/\n.redeem-result-table {\n font-size: 14px;\n table-layout: fixed;\n}\n\n.redeem-result tr > td:first-child {\n width: 50px;\n text-align: right;\n}\n\n.redeem-result-html {\n font-family: Inconsolata, Consolas, Menlo, "Courier New", monospace;\n}\n\n.pl_nudge_date {\n background-color: #724510;\n border-left: 1px solid #ffd652;\n border-bottom: 1px solid #ffd652;\n border-top: 1px solid #ffd652;\n color: #ffd652;\n display: inline-block;\n float: left;\n font-size: 12px;\n height: 18px;\n text-align: center;\n}\n\n.pl_nudge_pointy_spacer {\n background: no-repeat url(//commondatastorage.googleapis.com/ingress.com/img/nudge_pointy.png);\n display: inline-block;\n float: left;\n height: 20px;\n left: 47px;\n width: 5px;\n}\n\n.pl_nudge_player {\n cursor: pointer;\n}\n\n.pl_nudge_me {\n color: #ffd652;\n}\n\n.RESISTANCE {\n color: #00c2ff;\n}\n\n.ALIENS, .ENLIGHTENED {\n color: #28f428;\n}\n\n#portal_highlight_select {\n position: absolute;\n top:5px;\n left:10px;\n z-index: 2500;\n font-size:11px;\n background-color:#0E3C46;\n color:'+defColor1+';\n \n}\n\n\n\n.portal_details th, .portal_details td {\n vertical-align: top;\n text-align: left;\n}\n\n.portal_details th {\n white-space: nowrap;\n padding-right: 1em;\n}\n\n.portal_details tr.padding-top th, .portal_details tr.padding-top td {\n padding-top: 0.7em;\n}\n\n#play_button {\n display: none;\n}\n\n\n/** artifact dialog *****************/\ntable.artifact tr > * {\n background: '+defBgColor1+';\n}\n\ntable.artifact td.info {\n min-width: 110px;\n}\n\n\n/* leaflet popups - restyle to match the theme of IITC */\n#map .leaflet-popup {\n pointer-events: none;\n}\n\n#map .leaflet-popup-content-wrapper {\n border-radius: 0px;\n -webkit-border-radius: 0px;\n border: 1px solid '+defColor4+';\n background: #0e3d4e;\n pointer-events: auto;\n}\n\n#map .leaflet-popup-content {\n color: '+defColor1+';\n margin: 5px 8px;\n}\n\n#map .leaflet-popup-close-button {\n padding: 2px 1px 0 0;\n font-size: 12px;\n line-height: 8px;\n width: 10px;\n height: 10px;\n pointer-events: auto;\n}\n\n\n#map .leaflet-popup-tip {\n /* change the tip from an arrow to a simple line */\n background: '+defColor4+';\n width: 1px;\n height: 20px;\n padding: 0;\n margin: 0 0 0 20px;\n -webkit-transform: none;\n -moz-transform: none;\n -ms-transform: none;\n -o-transform: none;\n transform: none;\n}\n\n\n/* misc */\n\n.no-pointer-events {\n pointer-events: none;\n}\n\n\n.layer_off_warning {\n color: '+defColor1+';\n margin: 8px;\n text-align: center;\n}\n</style>'
+ '<style>/* required styles */\n\n.leaflet-map-pane,\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow,\n.leaflet-tile-pane,\n.leaflet-tile-container,\n.leaflet-overlay-pane,\n.leaflet-shadow-pane,\n.leaflet-marker-pane,\n.leaflet-popup-pane,\n.leaflet-overlay-pane svg,\n.leaflet-zoom-box,\n.leaflet-image-layer,\n.leaflet-layer {\n position: absolute;\n left: 0;\n top: 0;\n }\n.leaflet-container {\n overflow: hidden;\n -ms-touch-action: none;\n }\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -webkit-user-drag: none;\n }\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n display: block;\n }\n/* map is broken in FF if you have max-width: 100% on tiles */\n.leaflet-container img {\n max-width: none !important;\n }\n/* stupid Android 2 doesn\'t understand "max-width: none" properly */\n.leaflet-container img.leaflet-image-layer {\n max-width: 15000px !important;\n }\n.leaflet-tile {\n filter: inherit;\n visibility: hidden;\n }\n.leaflet-tile-loaded {\n visibility: inherit;\n }\n.leaflet-zoom-box {\n width: 0;\n height: 0;\n }\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\n.leaflet-overlay-pane svg {\n -moz-user-select: none;\n }\n\n.leaflet-tile-pane { z-index: 2; }\n.leaflet-objects-pane { z-index: 3; }\n.leaflet-overlay-pane { z-index: 4; }\n.leaflet-shadow-pane { z-index: 5; }\n.leaflet-marker-pane { z-index: 6; }\n.leaflet-popup-pane { z-index: 7; }\n\n.leaflet-vml-shape {\n width: 1px;\n height: 1px;\n }\n.lvml {\n behavior: url(#default#VML);\n display: inline-block;\n position: absolute;\n }\n\n\n/* control positioning */\n\n.leaflet-control {\n position: relative;\n z-index: 7;\n pointer-events: auto;\n }\n.leaflet-top,\n.leaflet-bottom {\n position: absolute;\n z-index: 1000;\n pointer-events: none;\n }\n.leaflet-top {\n top: 0;\n }\n.leaflet-right {\n right: 0;\n }\n.leaflet-bottom {\n bottom: 0;\n }\n.leaflet-left {\n left: 0;\n }\n.leaflet-control {\n float: left;\n clear: both;\n }\n.leaflet-right .leaflet-control {\n float: right;\n }\n.leaflet-top .leaflet-control {\n margin-top: 10px;\n }\n.leaflet-bottom .leaflet-control {\n margin-bottom: 10px;\n }\n.leaflet-left .leaflet-control {\n margin-left: 10px;\n }\n.leaflet-right .leaflet-control {\n margin-right: 10px;\n }\n\n\n/* zoom and fade animations */\n\n.leaflet-fade-anim .leaflet-tile,\n.leaflet-fade-anim .leaflet-popup {\n opacity: 0;\n -webkit-transition: opacity 0.2s linear;\n -moz-transition: opacity 0.2s linear;\n -o-transition: opacity 0.2s linear;\n transition: opacity 0.2s linear;\n }\n.leaflet-fade-anim .leaflet-tile-loaded,\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\n opacity: 1;\n }\n\n.leaflet-zoom-anim .leaflet-zoom-animated {\n -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\n -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\n -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);\n transition: transform 0.25s cubic-bezier(0,0,0.25,1);\n }\n.leaflet-zoom-anim .leaflet-tile,\n.leaflet-pan-anim .leaflet-tile,\n.leaflet-touching .leaflet-zoom-animated {\n -webkit-transition: none;\n -moz-transition: none;\n -o-transition: none;\n transition: none;\n }\n\n.leaflet-zoom-anim .leaflet-zoom-hide {\n visibility: hidden;\n }\n\n\n/* cursors */\n\n.leaflet-clickable {\n cursor: pointer;\n }\n.leaflet-container {\n cursor: -webkit-grab;\n cursor: -moz-grab;\n }\n.leaflet-popup-pane,\n.leaflet-control {\n cursor: auto;\n }\n.leaflet-dragging .leaflet-container,\n.leaflet-dragging .leaflet-clickable {\n cursor: move;\n cursor: -webkit-grabbing;\n cursor: -moz-grabbing;\n }\n\n\n/* visual tweaks */\n\n.leaflet-container {\n background: #ddd;\n outline: 0;\n }\n.leaflet-container a {\n color: #0078A8;\n }\n.leaflet-container a.leaflet-active {\n outline: 2px solid orange;\n }\n.leaflet-zoom-box {\n border: 2px dotted #38f;\n background: rgba(255,255,255,0.5);\n }\n\n\n/* general typography */\n.leaflet-container {\n font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;\n }\n\n\n/* general toolbar styles */\n\n.leaflet-bar {\n box-shadow: 0 1px 5px rgba(0,0,0,0.65);\n border-radius: 4px;\n }\n.leaflet-bar a,\n.leaflet-bar a:hover {\n background-color: #fff;\n border-bottom: 1px solid #ccc;\n width: 26px;\n height: 26px;\n line-height: 26px;\n display: block;\n text-align: center;\n text-decoration: none;\n color: black;\n }\n.leaflet-bar a,\n.leaflet-control-layers-toggle {\n background-position: 50% 50%;\n background-repeat: no-repeat;\n display: block;\n }\n.leaflet-bar a:hover {\n background-color: #f4f4f4;\n }\n.leaflet-bar a:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n }\n.leaflet-bar a:last-child {\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom: none;\n }\n.leaflet-bar a.leaflet-disabled {\n cursor: default;\n background-color: #f4f4f4;\n color: #bbb;\n }\n\n.leaflet-touch .leaflet-bar a {\n width: 30px;\n height: 30px;\n line-height: 30px;\n }\n\n\n/* zoom control */\n\n.leaflet-control-zoom-in,\n.leaflet-control-zoom-out {\n font: bold 18px \'Lucida Console\', Monaco, monospace;\n text-indent: 1px;\n }\n.leaflet-control-zoom-out {\n font-size: 20px;\n }\n\n.leaflet-touch .leaflet-control-zoom-in {\n font-size: 22px;\n }\n.leaflet-touch .leaflet-control-zoom-out {\n font-size: 24px;\n }\n\n\n/* layers control */\n\n.leaflet-control-layers {\n box-shadow: 0 1px 5px rgba(0,0,0,0.4);\n background: #fff;\n border-radius: 5px;\n }\n.leaflet-control-layers-toggle {\n background-image: url(data:image/png;base64,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);\n width: 36px;\n height: 36px;\n }\n.leaflet-retina .leaflet-control-layers-toggle {\n background-image: url(data:image/png;base64,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);\n background-size: 26px 26px;\n }\n.leaflet-touch .leaflet-control-layers-toggle {\n width: 44px;\n height: 44px;\n }\n.leaflet-control-layers .leaflet-control-layers-list,\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\n display: none;\n }\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\n display: block;\n position: relative;\n }\n.leaflet-control-layers-expanded {\n padding: 6px 10px 6px 6px;\n color: #333;\n background: #fff;\n }\n.leaflet-control-layers-selector {\n margin-top: 2px;\n position: relative;\n top: 1px;\n }\n.leaflet-control-layers label {\n display: block;\n }\n.leaflet-control-layers-separator {\n height: 0;\n border-top: 1px solid #ddd;\n margin: 5px -10px 5px -6px;\n }\n\n\n/* attribution and scale controls */\n\n.leaflet-container .leaflet-control-attribution {\n background: #fff;\n background: rgba(255, 255, 255, 0.7);\n margin: 0;\n }\n.leaflet-control-attribution,\n.leaflet-control-scale-line {\n padding: 0 5px;\n color: #333;\n }\n.leaflet-control-attribution a {\n text-decoration: none;\n }\n.leaflet-control-attribution a:hover {\n text-decoration: underline;\n }\n.leaflet-container .leaflet-control-attribution,\n.leaflet-container .leaflet-control-scale {\n font-size: 11px;\n }\n.leaflet-left .leaflet-control-scale {\n margin-left: 5px;\n }\n.leaflet-bottom .leaflet-control-scale {\n margin-bottom: 5px;\n }\n.leaflet-control-scale-line {\n border: 2px solid #777;\n border-top: none;\n line-height: 1.1;\n padding: 2px 5px 1px;\n font-size: 11px;\n white-space: nowrap;\n overflow: hidden;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n\n background: #fff;\n background: rgba(255, 255, 255, 0.5);\n }\n.leaflet-control-scale-line:not(:first-child) {\n border-top: 2px solid #777;\n border-bottom: none;\n margin-top: -2px;\n }\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\n border-bottom: 2px solid #777;\n }\n\n.leaflet-touch .leaflet-control-attribution,\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n box-shadow: none;\n }\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n border: 2px solid rgba(0,0,0,0.2);\n background-clip: padding-box;\n }\n\n\n/* popup */\n\n.leaflet-popup {\n position: absolute;\n text-align: center;\n }\n.leaflet-popup-content-wrapper {\n padding: 1px;\n text-align: left;\n border-radius: 12px;\n }\n.leaflet-popup-content {\n margin: 13px 19px;\n line-height: 1.4;\n }\n.leaflet-popup-content p {\n margin: 18px 0;\n }\n.leaflet-popup-tip-container {\n margin: 0 auto;\n width: 40px;\n height: 20px;\n position: relative;\n overflow: hidden;\n }\n.leaflet-popup-tip {\n width: 17px;\n height: 17px;\n padding: 1px;\n\n margin: -10px auto 0;\n\n -webkit-transform: rotate(45deg);\n -moz-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n -o-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n.leaflet-popup-content-wrapper,\n.leaflet-popup-tip {\n background: white;\n\n box-shadow: 0 3px 14px rgba(0,0,0,0.4);\n }\n.leaflet-container a.leaflet-popup-close-button {\n position: absolute;\n top: 0;\n right: 0;\n padding: 4px 4px 0 0;\n text-align: center;\n width: 18px;\n height: 14px;\n font: 16px/14px Tahoma, Verdana, sans-serif;\n color: #c3c3c3;\n text-decoration: none;\n font-weight: bold;\n background: transparent;\n }\n.leaflet-container a.leaflet-popup-close-button:hover {\n color: #999;\n }\n.leaflet-popup-scrolled {\n overflow: auto;\n border-bottom: 1px solid #ddd;\n border-top: 1px solid #ddd;\n }\n\n.leaflet-oldie .leaflet-popup-content-wrapper {\n zoom: 1;\n }\n.leaflet-oldie .leaflet-popup-tip {\n width: 24px;\n margin: 0 auto;\n\n -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";\n filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\n }\n.leaflet-oldie .leaflet-popup-tip-container {\n margin-top: -1px;\n }\n\n.leaflet-oldie .leaflet-control-zoom,\n.leaflet-oldie .leaflet-control-layers,\n.leaflet-oldie .leaflet-popup-content-wrapper,\n.leaflet-oldie .leaflet-popup-tip {\n border: 1px solid #999;\n }\n\n\n/* div icon */\n\n.leaflet-div-icon {\n background: #fff;\n border: 1px solid #666;\n }\n</style>'
//note: smartphone.css injection moved into code/smartphone.js
+ '<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Roboto:100,100italic,300,300italic,400,400italic,500,500italic,700,700italic&subset=latin,cyrillic-ext,greek-ext,greek,vietnamese,latin-ext,cyrillic"/>';
}
unsafeWindow.defBgColor1 = cloneInto(defBgColor1, unsafeWindow);
unsafeWindow.defBgColor2 = cloneInto(defBgColor2, unsafeWindow);
unsafeWindow.defColor1 = cloneInto(defColor1, unsafeWindow);
unsafeWindow.defColor2 = cloneInto(defColor2, unsafeWindow);
unsafeWindow.defColor3 = cloneInto(defColor3, unsafeWindow);
unsafeWindow.defColor4 = cloneInto(defColor4, unsafeWindow);
}
catch (e) {
unsafeWindow.alert("Please sign in and open Ingress Intel Map.\n\n"+e);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment