<SCRIPT type="text/javascript" SRC="http://www.WhereCall.com/js/cc44.js"></SCRIPT>


var ndivs = 0;
var ukloaded = 0;
var curstate = -1;

var ndv = 0;
var dvx = [];
var dvy = [];


function getY( id )
{
 var iReturnValue = 0;
 while( id != null ) 
 {
  iReturnValue += id.offsetTop;
  id = id.offsetParent;
 }

 return iReturnValue;
}

function getX( id )
{
 var iReturnValue = 0; 
 while( id != null ) 
 {
  iReturnValue += id.offsetLeft;
  id = id.offsetParent;
 }

 return iReturnValue;
}

function LocInit( item )
{
 dv = document.getElementById( item );
 dvx[ ndv ]= getX( dv );
 dvy[ ndv ]= getY( dv );
 ndv++;
 return ( ndv - 1 );
}

function AddLoc( lat, lon, text )
{
 AddLocEx( lat, lon, text, 1, "dot", 0.10, 0 );
}

function AddLocEx( lat, lon, text, zoom, color, opac, idx )
{
 var semiquot = "'";
 var dv = document.createElement('div');
 dv.id = 'divno'+ndivs;
 dv.innerHTML="X";
 document.body.appendChild(dv);
 ndivs++;

 var mawestlat = 42.887438;
 var manorthlon = -73.508027;
 var maxdist = 1474;
 var maydist = 918;

 x = 27 + ( ( ( lon - manorthlon ) / 3.581486 ) * maxdist );
 y = 20 + ( ( ( mawestlat - lat ) / 1.648587 ) * maydist );
 x /= 2; y /= 2; x -= 8;	y -= 8;	// Account for 50% size, help account for height/width of 'X'

 x /= zoom;
 y /= zoom;

 if ( zoom > 1 )
 {
  zoom /= 2;
 }

 if ( text.substr(0,1) == "*" )
 {
  text='<IMG SRC="http://www.WhereCall.com/img/'+color+'.gif" width='+(16/zoom)+' height='+(16/zoom)+' onMouseOver="ShowPopup(this,'+x+','+y+','+semiquot+text.substr(1)+semiquot+');" onMouseOut="HidePopup();">';
 }


 dv.innerHTML = text;
 dv.style.position = "absolute";
 dv.style.opacity = opac;
 dv.style.left = dvx[ idx ] + x;
 dv.style.top = dvy[ idx ] + y;

 return;
}


function ShowPopup(id,x,y,text)
{
 p = document.getElementById("popup");
 p.innerHTML = text;
 p.style.left = dvx[ ndv ] + x + 20;	//id.style.left;
 p.style.top = dvy[ ndv ] + y - 50;		//id.style.top;
 p.style.visibility = "Visible";
}

function HidePopup()
{
 p = document.getElementById("popup");
 p.style.visibility = "Hidden";
}

function CheckInput( id )
{
 var numstr = "";
 txt = document.getElementById(id).value;

 // Get the numbers out

 for ( i = 0; i < txt.length; i++ )
 {
  if ( ( txt.charAt( i ) >= '0' ) && ( txt.charAt( i ) <= '9' ) )
  {
   numstr = numstr + txt.charAt( i );
  }
 }

 // Remove default country code +1

 if ( numstr.substr(0,1) == '1' )
 {
  numstr = numstr.substr(1);
 }

 // UK?

 if ( ( numstr.substr(0,1) == '0' ) || ( ( txt.substr(0,1) == '+' ) && ( numstr.substr(0,2) == '44' ) ) )
 {
  if ( !ukloaded )
  {
   var e = document.createElement("script");
   e.src = "http://www.WhereCall.com/js/cc44.js";
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);
   ukloaded = 1;
  }

  CheckInputUK( id );
  return;
 }

 // No, NANPA

 dv = document.getElementById("formdiv");

 if ( numstr.length < 3 )
 {
  dv.innerHTML = "";
 }

 if ( numstr.length >= 3 )
 {
  dv.innerHTML = "<B>+1 "+numstr.substr(0,3)+"-NXX-XXXX<BR>";

  for ( i = 0; i < npatostate.length; i++ )
  {
   if ( npatostate[ i ].substr(0,3) == numstr.substr(0,3) )
   {
    loaded = 0;
    eval("if ( typeof npa"+ numstr.substr(0,3) + "tocity != 'undefined' ) { loaded = 1; }" );			// if npaXXXtocity exists, don't load

    if ( !loaded )
    {
     dv.innerHTML += npatostate[i].substr(3);
     // Load the NPA data...
     var e = document.createElement("script");
     e.src = "http://www.WhereCall.com/js/NPA"+numstr.substr(0,3)+".js";
     e.type="text/javascript";
     document.getElementsByTagName("head")[0].appendChild(e);
    }

    curstate = i;
   }
  }

  dv.innerHTML += "</B>";
 }

 if ( numstr.length >= 6 )
 {
  dv.innerHTML = "<B>+1 "+numstr.substr(0,3)+"-"+numstr.substr(3,3)+"-XXXX<BR>";
  eval("npatocity=npa"+numstr.substr(0,3)+"tocity;");			// npatocity[]=npa508tocity[]

  for ( i = 0, j = 0; i < npatocity.length; i++ )
  {
   if ( npatocity[ i ].substr(0,6) == numstr.substr(0,6) )
   {
    if ( curstate >= 0 )
    {
     dv.innerHTML += " " + npatocity[ i ].substr(7) + " " + npatostate[ curstate ].substr(3,2);
    }
    else
    {
     dv.innerHTML += " " + npatocity[ i ].substr(7);
    }

    j = 1;
    i = 9999;
   }
  }

  if ( j == 0 )
  {
   dv.innerHTML += " Appears to be unused";
  }
  
  dv.innerHTML += "</B>";
 }

 return;
}




function CheckInputUK( id )
{
 var numstr = "";
 txt = document.getElementById(id).value;

 // Get the numbers out

 for ( i = 0; i < txt.length; i++ )
 {
  if ( ( txt.charAt( i ) >= '0' ) && ( txt.charAt( i ) <= '9' ) )
  {
   numstr = numstr + txt.charAt( i );
  }
 }

 // Remove default country code +44

 if ( numstr.substr(0,2) == '44' )
 {
  numstr = numstr.substr(2);
 }

 // Remove default dialing code 0

 if ( numstr.substr(0,1) == '0' )
 {
  numstr = numstr.substr(1);
 }

 numstr = "44"+numstr;

 dv = document.getElementById("formdiv");

 if ( numstr.length < 1 )
 {
  dv.innerHTML = "";
 }

 for ( i = 0; i < cc44tocity.length; i++ )
 {
  len = cc44tocity[ i ].indexOf("*");

  if ( ( len > 0 ) && ( cc44tocity[ i ].substr(0,len) == numstr.substr(0,len) ) )
  {
   if ( len == 4 )
   {
    dv.innerHTML = "<B>+44 " + numstr.substr(2) + " XXXX XXXX</B>" + "<BR>";
    dv.innerHTML += "(0" + numstr.substr(2) + ") XXXX XXXX<BR>";
    dv.innerHTML += cc44tocity[i].substr(len+1);
   }
else
{
dv.innerHTML = len;
}
  }
 }

 return;
}
