// tag for Google Maps with correct location. ///// If LocaPoint is already in tag, it will NOT be converted. ///// ///// Copyright 2005-2006 Locazing Inc. ///// /////////////////////////////////////////////////////////////////////////// AutoLinkify = true; //Add Event to onload (not overwrite) if (AutoLinkify) { //Attach LinkifyLocaPoint to Window.Onload if (window.addEventListener) {// W3C DOM window.addEventListener("load", LinkifyLocaPoint, false); }else if (window.attachEvent) {// Internet Explorer window.attachEvent("onload", LinkifyLocaPoint); } } //LinkifyLocaPoint function LinkifyLocaPoint(){ var d = document; var mapURL = "http://maps.google.com/?q="; d.body.normalize(); F(d.body); function F(n){ var u,A,M,R,c,x,location, replaceflag; if(n.nodeType==3){ u=n.data.search(/([A-Z]{2}\d\.){3}[A-Z]{2}\d/); if(u>=0) { M=n.splitText(u); location = Locapoint2LatLon(M.data); if(M.data.length>15){ //append replaceflag=false; R=M.splitText(15); }else{ replaceflag=true; R = d.createElement("span");//dummy M.parentNode.replaceChild(R, M); } A=d.createElement("A"); A.setAttribute("href", mapURL + location.latitude + "," + location.longitude + "(" + M.data + ")" ); A.setAttribute("title", "lat,lon= " + location.latitude + "," + location.longitude); A.appendChild(M); if(replaceflag==true){ R.parentNode.replaceChild(A,R) }else{ R.parentNode.insertBefore(A,R); } } }else if(n.tagName!="STYLE" && n.tagName!="SCRIPT" && n.tagName!="A"){ for(c=0;x=n.childNodes[c];++c){ F(x); } } } } //common functions //Locapoint2LatLon function Locapoint2LatLon (locapoint){ var location = new Object(); location.latitude =( ((locapoint.charCodeAt(0)-65)*1757600 +(locapoint.charCodeAt(1)-65)*67600 +(locapoint.charCodeAt(2)-48)*6760 +(locapoint.charCodeAt(8)-65)*260 +(locapoint.charCodeAt(9)-65)*10 +(locapoint.charCodeAt(10)-48)) *180/45697600-90).toFixed(6); location.longitude = ( ((locapoint.charCodeAt(4)-65)*1757600 +(locapoint.charCodeAt(5)-65)*67600 +(locapoint.charCodeAt(6)-48)*6760 +(locapoint.charCodeAt(12)-65)*260 +(locapoint.charCodeAt(13)-65)*10 +(locapoint.charCodeAt(14)-48) ) *360/45697600-180).toFixed(6); return(location); } //LatLon2Locapoint function LatLon2Locapoint(lat, lon){ var latstep=Math.floor(((lat-(-90))*45697600/180)); var lngstep=Math.floor(((lon-(-180))*45697600/360)); var locapoint=String.fromCharCode( Math.floor(latstep/1757600%26)+65, Math.floor(latstep/67600%26)+65, Math.floor(latstep/6760%10)+48, 46, Math.floor(lngstep/1757600%26)+65, Math.floor(lngstep/67600%26)+65, Math.floor(lngstep/6760%10)+48, 46, Math.floor(latstep/260%26)+65, Math.floor(latstep/10%26)+65, Math.floor(latstep%10)+48, 46, Math.floor(lngstep/260%26)+65, Math.floor(lngstep/10%26)+65, Math.floor(lngstep%10)+48 ); return(locapoint); } //]]>