<!--

//(c) 2007 Zonum Solutions

//Last modified: May 26, 2007

//Color your Map







function initMap()

  {

     NShapes=0;

     map = new GMap2(document.getElementById("map"));

     //map.addControl(new GMapTypeControl());    

     map.addControl(omc);       

     //map.addControl(smc);

     map.addControl(szc);

     //map.addControl(sc);



       //map.setCenter(new GLatLng(32.231857, -110.953474), 16);

      map.enableContinuousZoom();

     map.enableScrollWheelZoom();

    

    app_start();

    app_setIcon(zIconId);

    app_zoomin();

  }



 function app_zoomin()

 {

   var Dx = lonmax-lonmin;

   var Dy = latmax - latmin;

   var Cx = (lonmax+lonmin)/2;

   var Cy = (latmax+latmin)/2;

   map.setCenter(new GLatLng(Cy, Cx), 12);

   var bounds = new GLatLngBounds();

   bounds.extend(new GLatLng(latmin,lonmin));

   bounds.extend(new GLatLng(latmax,lonmax));

   map.setZoom(map.getBoundsZoomLevel(bounds));

 }





 function closeframewin()

 {

  hide_box(true);

 }



 function hide_box(como)

 {

   var fr=document.getElementById('divframewin');

   if(como==true) {

      fr.style.visibility="hidden";

      window.frames['framewin'].location ="colorit_box.html";

    }

    else {fr.style.visibility="visible";}

 }



 function color_html2kml(color)

 {

   var newcolor ="ffffff";

   if(color.length==7) {

    newcolor = color.substring(5,7)+color.substring(3,5)+color.substring(1,3);

   }



   //newcolor = FColor.substring(5,7)+"-"+FColor.substring(3,5)+"-"+FColor.substring(1,3);

   //alert("Colors: "+FColor + " --> "+newcolor); 

   return newcolor

 }





 function hex_opacity(id)

 {

   var opa = "05|19|32|48|64|7D|96|AF|C8|E1|FF|FF";

    opa= opa.split('|');

  

  return opa[id+1]

 }





 function prepare_box()

 {



  var mytable = document.getElementById("TableData");

  var mytablebody = mytable.getElementsByTagName("tbody")[0];

  var check_shape="";

  var FColor="";

  var ColorList="";

  var CheckList="";

 

  

  for (var i=1;i<=NShapes; i++) {

    check_shape = document.getElementById("zcheck"+i);



    if(check_shape.checked==true) {

     FColor = getcolor_row(mytablebody,i);

     CheckList +="1,";

    } else {

      FColor="#ffffff";

      CheckList +="0,";

    }

    

    ColorList += color_html2kml(FColor)+",";  

  }

 



  hide_box(false);

  var xfr= window.frames['framewin'].document;

  xfr.forma.co_dset.value = NDataset;

  xfr.forma.co_color.value = ColorList;

  xfr.forma.co_check.value = CheckList;

  

  xfr.forma.co_opacity.value=""+hex_opacity(zweb_listIndex(document.form1.opacity));



  var xval = document.form1.zOutline.checked;

  if(xval==true) {

   xval = zweb_listIndex(document.form1.zwidth)+1;

   xfr.forma.co_lwidth.value=""+xval;

  } else {xfr.forma.co_lwidth.value="0";}



  xfr.forma.co_lcolor.value=color_html2kml(zLineColor);



  if(document.form1.zIcon.checked==true) {xfr.forma.co_icon.value=GE_Icon_GetUrl(zIconId);}

   else {xfr.forma.co_icon.value="";}  

 }





function app_about()

 {

   var MSG = "<center><b>ColorIt</b><br>Color your Map";

   MSG+="<br>Build: 1-6.04.07<br><br>(c) 2006-2007 Zonum Solutions</center>";

   zwin_msgbox("About",300,110,"","",MSG);

 }



 function app_checkall(xcheck)

 {

  for(i=1; i<=NShapes; i++) {

   var check_shape = document.getElementById("zcheck"+i);

   check_shape.checked = xcheck;

  }

 }



 function app_samecolor()

 {

   GE_SelectColor('app_setsamecolor','#C8D89A');

 }



 function app_setsamecolor(Color)

 {

   var mytable = document.getElementById("TableData");

   var mytablebody = mytable.getElementsByTagName("tbody")[0];



   for(i=1; i<=NShapes; i++) {

     setcolor_row(mytablebody,i,Color);

   }



 }



 function app_changeicon()

 {

  document.getElementById("message").innerHTML ="Retrieving Icons List...";

  GE_SelectIcon('app_setIcon',zIconId);

  document.getElementById("message").innerHTML ="";

 }



 function app_setIcon(Id)

 { zIconId = parseInt(""+Id);

   zIconName = GE_Icon_GetUrl(zIconId);

  var obj = zdoc_get("GE_Symbol");

  obj.innerHTML = '<img border="0"  width="24px" height="24px" src="'+GE_Icon_GetUrl(zIconId)+'" alt="Click here to change Icon" />';

 }



 function app_setColor(Color)

 { zLineColor = Color;

   var obj = zdoc_get("GE_LineColor"); 

   obj.style.backgroundColor =zLineColor;

 }



function app_setColorR1(Color)

 { zRampC1 = Color;

   var obj = zdoc_get("Ramp_C1"); 

   obj.style.backgroundColor =zRampC1;

   update_rampcolor();

 }



function app_setColorR2(Color)

 { zRampC2 = Color;

   var obj = zdoc_get("Ramp_C2"); 

   obj.style.backgroundColor =zRampC2;

   update_rampcolor();

 }





function app_rowcolor_prep(rowindex)

 {

  tmpRowColor = rowindex;

  var mytable = document.getElementById("TableData");

  var mytablebody = mytable.getElementsByTagName("tbody")[0];

  var myrow       = mytablebody.getElementsByTagName("tr")[rowindex];

  var mycel = myrow.getElementsByTagName("TD")[0];

  

  Color = mycel.bgColor;

  GE_SelectColor('app_rowColor',Color);

 }





function getcolor_row(mytablebody,indexrow)

 {

   var myrow = mytablebody.getElementsByTagName("tr")[indexrow];

   var mycel = myrow.getElementsByTagName("TD")[0];



   color =  mycel.bgColor;



  return color

 }



function setcolor_row(mytablebody,indexrow,color)

 {

   var myrow = mytablebody.getElementsByTagName("tr")[indexrow];

   var mycel = myrow.getElementsByTagName("TD")[0];



   mycel.bgColor=color;

 }





function app_rowColor(Color)

 {



  var mytable = document.getElementById("TableData");

  var mytablebody = mytable.getElementsByTagName("tbody")[0];

//  var myrow       = mytablebody.getElementsByTagName("tr")[tmpRowColor];

//  var mycel = myrow.getElementsByTagName("TD")[0];

//  mycel.bgColor = Color;

  setcolor_row(mytablebody,tmpRowColor,Color)



 }





 function draw_shape(LatLonList, FColor,LColor,LWidth,Opacity)

 {
   LatLonList=LatLonList.replace(/\n/g, "");
   var vertices = LatLonList.split(" ");

   var PtsList = [];



   for (i=0; i<vertices.length; i++) {

    Pt = vertices[i].split(',');
    if(Pt.length>1) {PtsList.push(new GLatLng(Pt[0],Pt[1]));}

   }



  var Polygon=new GPolygon(PtsList,LColor, LWidth, 1,FColor,Opacity);

  map.addOverlay(Polygon); 



  return PtsList.length    

 }





function loadXMLDoc(dname) 

{

var xmlDoc;

// code for IE

if (window.ActiveXObject)

  {

  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

  }

// code for Mozilla, Firefox, Opera, etc.

else if (document.implementation && document.implementation.createDocument)

  {

  xmlDoc=document.implementation.createDocument("","",null);

  }

else

  {

  alert('Your browser cannot handle this script');

  }

xmlDoc.async=false;

xmlDoc.load(dname);

return(xmlDoc);

}





function update_zmap()

 {

  document.getElementById("message").innerHTML = "Drawing map...";



  if(isRamp==true) {update_rampcolor();}



  var LWidth = zweb_listIndex(document.form1.zwidth)+1;

  var Opacity = (zweb_listIndex(document.form1.opacity)+1)/10;



  

  drawfile(zLineColor,LWidth,Opacity);

  document.getElementById("message").innerHTML = "";

 }





function drawfile(LColor,LWidth,Opacity)

 { 

  map.clearOverlays();

  xmlDoc = loadXMLDoc('colorit_maps/'+NDataset+'.xml'); 

  var zShapes = xmlDoc.getElementsByTagName("shp");

  

  var mytable = document.getElementById("TableData");

  var mytablebody = mytable.getElementsByTagName("tbody")[0];

  





  var data = "";

  var check_shape="";



  //data = "No Shapes = "+zShapes.length+'\n';

  

  for (var i=0;i<zShapes.length; i++) {

    var shpId = zShapes[i].getAttribute("id");

    check_shape = document.getElementById("zcheck"+shpId);



    if(check_shape.checked==true) {

      var ShapeParts = zShapes[i].getElementsByTagName("llc");



     // data += " " + i + ": Id = "+ shpId +" parts= "+ ShapeParts.length + '\n' ;

      var FColor = getcolor_row(mytablebody,i+1);



      for (var j=0;j<ShapeParts.length; j++) {

        var n = draw_shape(ShapeParts[j].firstChild.nodeValue,FColor,LColor,LWidth,Opacity);

        //data += "   idpart="+ j +" vertex="+ n +'\n' ;

      }

    }   

  }

 

  //document.toclist.datamemo.value = data;

 }

 



 function table_color_default(cindex)

 {



   //Minerales

   var xcolors="F3898B,7BFECD,B3B07B,49BA85,00DBFE,847FBA,FEA869,17BCC4,DC686D,28803C,C09B43,746FC0,9C9C9C,EDFEA5,00E04D,86A9CE,";

   xcolors +="B37B9D,9FD8B3,FEB676,C09671,87CFFE,00A7C7,B6A6D5,D258DC,5A7383";



   //Harvest

   if(cindex==1) {

   var xcolors="C06549,FFD700,BDB76B,F7B567,CEC395,CD9B1D,F0E68C,A7AF5E,C09058,8B4513,AC9600,698B69,8B6914,8B8B00,FFFBC3,BDB056,";

   xcolors +="DCCE00,FEEAC6,FFC7AE,A6B655,DB6700,E5A100,F7D3B3,738325,B1BA84";}



   //Pastels

   if(cindex==2) {

   var xcolors="D2D2D2,9DC0C0,DFC7AA,A1D197,E2A6A6,CBA6CB,FEA4A4,A8ACD1,C8D89A,F3C4D8,E9E15E,EEEEEE,C0AB79,E2E17F,B4E1FE,E8DDFE,";

   xcolors +="E1FEEB,FEF782,C3FFC3,CEFE87,8CFEB3";}



   //Rainforest

   if(cindex==3) {

   var xcolors="97FE00,738325,02DC00,7DBA5A,37A95E,3DA900,00FF00,E3FE5F,61FE60,00E09C,B2D600,8EFE4F,4A5900,D3FE00,50FE8C,A6B655,";

   xcolors +="C3FFC3,48762E,016400,7F8755,908700,DFD200,B1BA84";}



   //The High Seas

   if(cindex==4) {

   var xcolors="00FEED,004754,00A7C7,0099FE,87CFFE,004287,0064A5,AFFEE6,0040FE,007ED1,008A81,4E91D8,00D5FE,E1FEEB,007CFE,539B85,";

   xcolors +="86A9CE,9FD8B3,003AE5";}



   //Fruits & vegetables

   if(cindex==5) {

   var xcolors="EF0000,FEF500,FEAD00,00FE76,FEBC87,FE6969,02C200,00FEB1,EDFEA5,AFFEAF,FEA0A0,FE7200,FEBF00,FFFBC3,B8860B";}



   //Cool Tones

   if(cindex==6) {

   var xcolors="F8C3FE,69FEFE,D2D2FE,69FED1,F7A5FE,A5A6FE,00EAA3,00C2C2,EEACCE,AFFEDD,D2FEFE,AFDDFE,E4FEB4";}



    //Warm Tones

   if(cindex==7) {

   var xcolors="FE7200,FE4646,FEE769,FE8828,D15D00,D1B100,FEF5C3,FECDA5,FEE24B,C70000,BAA563,F1FE00,FED269,8B4513,8B6914";}



   //Autumn Leaves

   if(cindex==8) {

   var xcolors="FE7800,E50000,EEC900,AE5200,DB6700,FE0000,E5A100,E57C1F,C09671,573414,FEF450,B37E50,6F2828";}



   xcolors2 = xcolors.split(",");

   var mytable = document.getElementById("TableData");

   var mytablebody = mytable.getElementsByTagName("tbody")[0];



   var colorid = 1;



   for(i=1; i<=NShapes; i++) {

     if(colorid>xcolors2.length) {colorid=1;}

     setcolor_row(mytablebody,i,"#"+xcolors2[colorid-1]);



     colorid += 1;

   }

  }



 function change_ramp()

 {

   var option = zweb_listIndex(document.form1.selRamp);

   table_color_default(option);

 }





 function getmimax()

 {



  var editV ="";

  var check_shape="";

  var Nvalues=0;

   

  for(i=1; i<=NShapes; i++)

  {

    editV =document.getElementById("zedit"+i).value;

    check_shape = document.getElementById("zcheck"+i);



    if(editV.length>0 && check_shape.checked==true) {

      Nvalues = Nvalues +1;

      xvalue = parseFloat(editV);

      if(Nvalues==1) {

        VMin = xvalue;

        VMax = xvalue;

      } else {

        if(xvalue>VMax) {VMax=xvalue;}

        if(xvalue<VMin) {VMin=xvalue;} 

      }     

    } 

   

  }



  return Nvalues

 }



 function app_colors()

 { //como usar RBG colores

  var color = new RGBColor('darkblue');

   if (color.ok) { // 'ok' is true when the parsing was a success

    // alert channels

    alert(color.r + ', ' + color.g + ', ' + color.b);

    // alert HEX and RGB

    alert(color.toHex());

    alert(color.toRGB());

}

 }







 function rule3(Xmin, Ymin, Dx,Dy,xb)

 {

  var yb = Dy;



  xb = xb-Xmin;

  yb = (xb*Dy/Dx)+Ymin;

  yb = ""+yb;

  yb = parseInt(yb);

  

 if(yb<0) {yb=0;}

 if(yb>255) {yb=255;}



  return yb

 }



 



 function populate_minmaxcolor()

 {

   var mytable = document.getElementById("TableData");

   var mytablebody = mytable.getElementsByTagName("tbody")[0];



   var obj = zdoc_get("Ramp_C1"); 

   //setcolor_row(mytablebody,1,obj.style.backgroundColor);

   var MinColor = new RGBColor(obj.style.backgroundColor);

   



   var obj = zdoc_get("Ramp_C2"); 

 //  setcolor_row(mytablebody,NShapes,obj.style.backgroundColor);

   var MaxColor = new RGBColor(obj.style.backgroundColor);

   

  

   var DR = MaxColor.r-MinColor.r;

   var DG = MaxColor.g-MinColor.g;

   var DB = MaxColor.b-MinColor.b;



   

   var DV = VMax-VMin;



   var xColor = new RGBColor("white");

   var editV="";

   var data = "";

 //  data +="Min value = "+VMin+"\n";

 //  data +="Max value = "+VMax+"\n";

 //  data += "Min Color = "+MinColor.r+" "+MinColor.g+ " "+MinColor.b;



//   data += "\nDelta Color = "+DR +" " + DG + " " + DB+"\n";

   

   

    for(i=1; i<=NShapes; i++) {

      editV =document.getElementById("zedit"+i).value;

      check_shape = document.getElementById("zcheck"+i);

      if(check_shape.checked && editV.length>0) {

        editV = parseFloat(editV);

        xColor.r = rule3(VMin,MinColor.r,DV,DR,editV);

        xColor.g = rule3(VMin,MinColor.g,DV,DG,editV);

        xColor.b = rule3(VMin,MinColor.b,DV,DB,editV);

       // data += "\n " + xColor.r +" "+ xColor.g + " " + xColor.b;

        setcolor_row(mytablebody,i,xColor.toHex());

      } else {setcolor_row(mytablebody,i,"white");} 

    }

     



  //document.toclist.datamemo.value = data;

 }





 function update_rampcolor()

 {

  if(getmimax()>2) {

     populate_minmaxcolor();

  } else {

    alert("At least two values are needed to create a rampcolor!");

  }



 }







-->
