<!--
//(c) 2009 Zonum Solutions
//Last modified: January 21, 2009
//IP-Mapper library 

function appAbout()
 {
   var MSG = "<br><center><b>IP-Mapper</b>";
   MSG+='<br>Get Coordinates, Map and Export your IPs<br> <br>';
   MSG+='<br>Last update: March 21, 2009';
   MSG+='<br>&copy; 2006-2009 Zonum Solutions</center>';
   showMyWinCenter("About",300,150,"",MSG);
 }
  
 function appForum()
  {
   //zopen_window("http://forums.zonums.com/epanet","forum","");
  } 
 
 function appExport(xf)
  {
   //Get Elevations if needed then...
   zopen_window("ipmapper.php?action=export&id="+xf,"result","");
  } 


 function appOptions()
 {
  var cad ='<div style="position:absolute; left:2px; top:10px; width:390px; font-family: Arial, Helvetica, sans-serif; font-size: 9pt;overflow:auto;"/>';
   cad+='<center><form name="frCoo">';
   cad+='<fieldset style="width:355px"><Legend> Coordinate System</Legend>';
   cad+='<table><tr><td><select name="Geosystem" onchange="enabledUTM()" style="width:165px">';
   cad+='<option value="item">UTM (meters)</option> <option value="item">Latitude/Longitude</option></select>';
   cad+='&nbsp;&nbsp;&nbsp;&nbsp;';
   cad+='<input type="checkbox" name="checkElev" '+zif(AddElevation,"checked","")+' > Elevation&nbsp;<select name="Elev">';
   cad+='<option value="item">Meters</option> <option value="item">Feet</option></select></td></tr>';
   cad+='<tr><td><select name="UTMZone" style="width:80px"></select>';
   cad+='<input type="button" name="btUTMGrid" value="?" onclick="zhelp_UTM()" style="width:30px"/>';
   cad+='&nbsp;&nbsp;<select name="Hemisp" style="width:200px">';
   cad+='<option value="item">Northern Hemisphere</option> <option value="item">Southern Hemisphere</option></select>';
   cad+='</td></tr></table></fieldset>';
  
  // cadena +='<div style="position:absolute; left:3px; top:60px;">';   
   cad +='<br>&nbsp;&nbsp;&nbsp;';
   cad +='<input type="button" name="btAccept" value="Accept" onClick="appAccept_Export()"/>';
   cad +='&nbsp;&nbsp;&nbsp;<input type="button" name="btCancel" value="Cancel" onClick="MyWinClose(\'\')"/></form></center></div>';
   showMyWinCenter("Export Options",395,170,"",cad);
   
   AddUTMZones();
   var fr=document.frCoo;
   zset_selIndex(fr.UTMZone,UTMZoneOpt-1);
   zset_selIndex(fr.Geosystem,LatLonOpt-1);
   zset_selIndex(fr.Hemisp,HemispOpt-1);
   zset_selIndex(fr.Elev,ElevUnits);
   enabledUTM();
 }

 function appAccept_Export()
 {var fr=document.frCoo;
  if(fr) {
   UTMZoneOpt = zget_selIndex(fr.UTMZone) +1;
   LatLonOpt = zget_selIndex(fr.Geosystem) +1;
   HemispOpt = zget_selIndex(fr.Hemisp) +1 ;
   ElevUnits = zget_selIndex(fr.Elev);
   AddElevation = fr.checkElev.checked;
   }
	 MyWinClose("");
  }
  
 function AddUTMZones()
 {
  var UTMList = document.frCoo.UTMZone;
  for (i=1; i<61; i++){
  UTMList.options[UTMList.options.length]=new Option("Zone "+i,"Zone");
  }
  UTMList.options.selectedIndex = 11;
 }

 function enabledUTM()
 {
  var fr=document.frCoo;
	if(fr) {
   var index = zget_selIndex(fr.Geosystem);
   var showUTM = false;
   if(index==1) {showUTM = true;}
  
   fr.UTMZone.disabled = showUTM;
   fr.btUTMGrid.disabled = showUTM;
   fr.Hemisp.disabled = showUTM;
	} 
 }
 
 function Link_Parent_data(FormatOut,sp)
 {
   var dout="";
   if(FormatOut=="SHP") {
	  dout=prepareSHP("|");
	  Link_Child_data(dout);
	 } else {
	  dout=web_resultado(FormatOut,sp);
    Link_Child_data(dout);
   } 
 }
  
 function Link_Child_data(data)
  {
    var myfr =myWin.document.getElementById("frOut");
    if (myfr) {myfr.datamemo.value=data;
		  myfr.btn1.disabled=false;
		} else {alert("An Error Ocurred \n\nPlease try Again");}
  }
  
 function web_resultado(FormatOut,sp)
 {
   var data = document.frdata.data.value;
   var modo = get_Modo(FormatOut);
   var SendUTM= get_SendUTM(FormatOut,LatLonOpt);
   if(FormatOut=="DXF") {sp ="\n20\n";}

   UTMZone = UTMZoneOpt;
   var line = "";
   var line2 =""; //extra-information
   var Pt_Name ="";
   var Elevation = "";
   var isCoordFormat=get_isCoordFormat(FormatOut);
   
   var dout=get_header("IP-Mapper",AddElevation,sp,FormatOut,UTMZone,SendUTM,HemispOpt,"IP",sp+"Country"+sp+"Region"+sp+"City");
   
   data=data.split("\n");

   for (i=0; i<data.length; i++){
      line = data[i];
      line= line.split("|");
      
      Pt_Name = line[0]; //ip
      if(line.length>2) {
        if(AddElevation==false) {Elevation = "";}  //else {Elevation = line;}
        if(isCoordFormat==true) {
          //Country, Region, City, 
					line2=sp+line[3]+sp+line[4]+sp+line[5];
        } else { 
				  line2="";
				  if(FormatOut=="DXF") {
				   //Build Balllon info
				  }
				}
        line = getcoords(line[2],line[1],sp,SendUTM,i,modo);
			  dout+=get_point(Pt_Name,FormatOut,sp,AddElevation,Elevation,line,line2);
			} else {
			  if(isCoordFormat==true) {dout+=get_point(Pt_Name,FormatOut,sp,false,"",line,"");}
      }		
   }

   dout+=get_EndFile(FormatOut);
   
  return dout
 }


 function prepareSHP(sp)
 {
  var data = document.frdata.data.value;
  UTMZone = UTMZoneOpt;
  SendUTM = (LatLonOpt==1);

   var Pt_Name ="";
   var Elevation = "";
   var line = "";
   var memodata = "";
   var coox="";
   var NRecords=0;

   for (i=0; i<data.length; i++){
      line = data[i];
      line= line.split("|");
      
      if(line.length>2) {
        NRecords+=1;
        Pt_Name = line[0];
        coox = getcoords(line[2],line[1],sp,SendUTM,i,1);
      
        if(AddElevation==true) {
           Elevation="0";
				   Elevation = getElevConv(Elevation,ElevUnits);
				 } else {Elevation = "0.0";}

        line = Pt_Name+sp+coox+sp+Elevation+sp+line[3]+sp+line[4]+sp+line[5];;

        memodata += "\n"+line;
     }   
   }

  var metax=get_SHPMeta(SendUTM,UTMZone,HemispOpt,NRecords,1); 
   
  return metax+memodata
 }
 
 
 function appClear()
 {
  document.frIP.datamemo.value="";
 }
 
 function checkIP(ip)
  { var isOK=true;
    ip=mystr_filter(ip,"0123456789.");
    var ip4=ip.split(".");
    if(ip4.length==4) {
        for(var i=0; i<4; i++) {
         if(parseInt(ip4[i])>255) {isOK=false;}
        }
    } else {isOK=false;}
   if (isOK==true) {return ip;} else {return "";}
  }
 
 function checkform()
 { var isOK=true;
   var data=document.frIP.datamemo.value;
   
   if(data.length>8) {
     data=data.split("\n");
     var n=data.length;
     var i=0;
     var line_error=0;
     var data2="";
     var mycount=0;
     while(i<n && isOK==true) {
       line=checkIP(data[i]);
       i+=1;
       if(line=="") {
         isOK=false;
         line_error=i;
       } else {
        if(data2=="") {data2=line;} else {
				 mycount+=1;
				 if(mycount<=50) {data2+="\n"+line;}
				}
       }
     }
    if(isOK==true) {document.frIP.datamemo.value=data2;} else {alert("There is an error at line #"+line_error);} 
  } else { 
    isOK=false;
    alert("There is not information to Map");
   }
   
  return isOK; 
 }


  function doGetElevation(lat,lon)
 { var Url = '';
   var path = '/XMLWebServices2/elevation_service.asmx/getElevation?';
   path  +='X_Value='+lon+'&Y_Value='+lat+'&Elevation_Units=METERS&Source_Layer=-1&Elevation_Only=TRUE';
  //Url =  'http://www.zonums.com/gmaps/elevserver2.php?yws_path=' + encodeURIComponent(path);
   Url =  'elevserver2.php?yws_path=' + encodeURIComponent(path);
   zRequest(Url);
 }

-->