var hexcase=0,b64pad="",chrsz=8;function hex_md5(a){return binl2hex(core_md5(str2binl(a),a.length*chrsz))}function b64_md5(a){return binl2b64(core_md5(str2binl(a),a.length*chrsz))}function str_md5(a){return binl2str(core_md5(str2binl(a),a.length*chrsz))}function hex_hmac_md5(a,f){return binl2hex(core_hmac_md5(a,f))}function b64_hmac_md5(a,f){return binl2b64(core_hmac_md5(a,f))}function str_hmac_md5(a,f){return binl2str(core_hmac_md5(a,f))} function md5_vm_test(){return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72"} function core_md5(a,f){a[f>>5]|=128<>>9<<4)+14]=f;for(var b=1732584193,c=-271733879,e=-1732584194,d=271733878,g=0;g16)b=core_md5(b,a.length*chrsz);for(var c=Array(16),e=Array(16),d=0;d<16;d++){c[d]=b[d]^909522486;e[d]=b[d]^1549556828}b=core_md5(c.concat(str2binl(f)),512+f.length*chrsz);return core_md5(e.concat(b),640)}function safe_add(a,f){var b=(a&65535)+(f&65535);return(a>>16)+(f>>16)+(b>>16)<<16|b&65535} function bit_rol(a,f){return a<>>32-f}function str2binl(a){for(var f=[],b=(1<>5]|=(a.charCodeAt(c/chrsz)&b)<>5]>>>c%32&b);return f}function binl2hex(a){for(var f=hexcase?"0123456789ABCDEF":"0123456789abcdef",b="",c=0;c>2]>>c%4*8+4&15)+f.charAt(a[c>>2]>>c%4*8&15);return b} function binl2b64(a){for(var f="",b=0;b>2]>>8*(b%4)&255)<<16|(a[b+1>>2]>>8*((b+1)%4)&255)<<8|a[b+2>>2]>>8*((b+2)%4)&255,e=0;e<4;e++)f+=b*8+e*6>a.length*32?b64pad:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(c>>6*(3-e)&63);return f};var map=null,map_extent=null,extent_timeout=null,documents={},extents={},properties={},has_filereader=1; function sm_init(){has_filereader=typeof FileReader!=="undefined"?1:0;if(navigator.userAgent.toLowerCase().indexOf("chrome")!==-1)has_filereader=0;if(!has_filereader){var a=document.getElementById("load_file");a.setAttribute("type","text");a.setAttribute("value","disabled (by your browser)");a.setAttribute("disabled","disabled");a.setAttribute("style","font-style:italic;background-color:transparent;border:none;")}a=org.polymaps.svg("svg");a=document.getElementById("map").appendChild(a);map=org.polymaps.map(); map.container(a);map.zoomRange([1,17]);a=org.polymaps.image();a.url("http://spaceclaw.stamen.com/toner/{Z}/{X}/{Y}.png");map.add(a);a=org.polymaps.interact();map.add(a);a=org.polymaps.compass();a.zoom("small");a.pan("none");map.add(a);sm_extents_jumpto()};function sm_form_handler(){var a=document.getElementById("load_uri"),f=document.getElementById("load_file"),b=0;if(a.value){b=1;if(a.value.indexOf("http")==0){sm_load_uri(a.value);a.value=""}else alert("Invalid URL!")}if(has_filereader&&f.files.length){b=1;sm_load_files(f.files);f.value=""}b==0&&alert("Unable to find anything to show!")} function sm_form_toggle(a){document.getElementById("load_header").style.display=a?"block":"none";document.getElementById("load_form").style.display=a?"none":"block"};function sm_load_uri(a){if(!extents[a]){var f=org.polymaps.geoJson();f.url(a);var b=sm_onload(a);f.on("load",b);map.add(f);documents[a]=f;sm_extents_set_onload(a);sm_form_toggle("close")}}function sm_load_features(a,f){f||(f=hex_md5(JSON.stringify(a)));if(!extents[f]){var b=org.polymaps.geoJson();b.features(a);var c=sm_onload(f);b.on("load",c);map.add(b);documents[f]=b;sm_extents_set_onload(f);sm_form_toggle("close")}}function sm_load_files(a){for(var f=a.length,b=0;b1){b=document.createElement("li");c=document.createElement("a");d=document.createTextNode("show all");c.appendChild(d);c.setAttribute("onclick","sm_extents_jumpto();");b.appendChild(c);f.appendChild(b)}b= document.createElement("h2");b.appendChild(document.createTextNode("Documents"));a.appendChild(b);a.appendChild(f)}}function sm_documents_remove(a){if(documents[a]){map.remove(documents[a]);delete documents[a];delete extents[a];sm_extents_set();sm_documents_list()}};function sm_clipboard_copyto(a){var f=a.split("#");a=f[0];f=f[1];if(properties[a]){var b=properties[a][f];if(b){b=sm_properties_endomify(b);var c=document.getElementById("clipboard"),e=document.getElementById("clipbody");e.innerHTML="";var d=document.createElement("h3");d.appendChild(document.createTextNode(a+", item #"+(Number(f)+1)));e.appendChild(d);e.appendChild(b);c.style.display="block"}else alert("This feature has no properties!")}} function sm_clipboard_close(){var a=document.getElementById("clipboard");document.getElementById("clipbody").innerHTML="";a.style.display="none";sm_properties_hide()};