<!--
//(c) 2007 Zonum Solutions
//Last modified: May 26, 2007
//Color your Map


 function initMap()
  {  
     map = new GMap2(document.getElementById("map"));
     map.addControl(new GMapTypeControl());
     map.addControl(new GSmallMapControl());
     map.setCenter(new GLatLng(-14, -60.73),2);
     map.enableContinuousZoom();
     map.enableScrollWheelZoom();
  } 


 function prepare_app()
 {	
   table_colors();
   
   var myTable = document.getElementById("TblRamp");
   var row = KMLaddRow(myTable,"10");
   for(var j=0; j<27; j++) {KMLaddcellColor(row,j,j,j);}
   
   app_setColor1(RampC1);
   app_setColor2(RampC2);
   initMap();
   app_SetColor(zcolor);
  }

 function KMLRGB(R,G,B)
 {
  var hex = "00|0A|14|1E|28|32|3C|46|50|5A|64|6E|78|82|8C|96|A0|AA|B4|BE|C8|D2|DC|E6|F0|FA|FF";
  
   //var hex = "00|14|28|3C|50|64|78|8C|A0|B4|C8|DC|F0|FF";
   //var hex = "00|28|50|78|A0|C8|F0|FF";
  
    var color = "#"+hex.split("|")[R]+hex.split("|")[G]+hex.split("|")[B];
 // color = ""+R+"-"+G+"-"+B;
  return color
 }

  function app_SetColor(bgColor)
 {
  bgColor=bgColor.toUpperCase();
  zcolor=bgColor;
  var obj = zdoc_get("KMLCOLOR"); 
  obj.style.backgroundColor = bgColor;
  document.frform1.htmlc.value=""+bgColor;
  var txtopacity =zopacity.toString(16);
  document.frform1.kmlc.value=txtopacity+color_html2kml(""+bgColor);
  document.frform1.rgbc.value= color_html2rgb(""+bgColor);
  app_addline();
 }
 
 function KMLSetCellColor()
 { app_SetColor(this.bgColor);
 }


 function KMLaddcellColor(row,R,G,B)
 {
   cell = document.createElement("td");
   cell.setAttribute("Width",10);
   cadena = KMLRGB(R,G,B);
   cell.setAttribute("bgColor",cadena);
   cell.onclick=KMLSetCellColor; 
   row.appendChild(cell);
 }

 function KMLaddcellColor2(row,R,G,B)
 {
   cell = document.createElement("td");
   cell.setAttribute("Width",10);
   cadena = "#"+R+G+B;
   cell.setAttribute("bgColor",cadena);
   cell.onclick=KMLSetCellColor; 
   row.appendChild(cell);
 }

 function KMLaddRow(myTable,height)
 {
   lastRow = myTable.rows.length;
   row = myTable.insertRow(lastRow);
   row.setAttribute("height",height);
   //row.height = parseInt(height);
   return row
 }


 function table_colors()
 {
 
  var hex27 = "00|0A|14|1E|28|32|3C|46|50|5A|64|6E|78|82|8C|96|A0|AA|B4|BE|C8|D2|DC|E6|F0|FA|FF";
  var hex14 = "00|14|28|3C|50|64|78|8C|A0|B4|C8|DC|F0|FF";
	 
  hex27 = hex27.split('|');
  hex14 = hex14.split('|');
	 
  var myTable = document.getElementById("TblKMLColors");
  var c=27;
  //for(i=1; i<=5; i++) {

   row = KMLaddRow(myTable,"10");
   for(j=0; j<c; j++) {KMLaddcellColor(row,j,j,j);}

  for(i=0; i<5; i++) { 
     row = KMLaddRow(myTable,"10");
    for(j=0; j<c; j++) {KMLaddcellColor2(row,hex27[j],hex14[i*3],hex14[1]);}
   }

  // row = GE_addRow(myTable,"10");
  // for(j=0; j<14; j++) {GE_addcellColor(row,j,0,0);}

  // row = GE_addRow(myTable,"10");
  // for(j=0; j<14; j++) {GE_addcellColor(row,j,j,0);}

   

   //row = GE_addRow(myTable,"10");
   //for(j=0; j<14; j++) {GE_addcellColor(row,0,j,0);}

  // row = GE_addRow(myTable,"10");
  // for(j=0; j<14; j++) {GE_addcellColor(row,0,j,j);}

  // row = GE_addRow(myTable,"10");
  // for(j=0; j<14; j++) {GE_addcellColor(row,0,0,j);}

  // row = GE_addRow(myTable,"10");
  // for(j=0; j<14; j++) {GE_addcellColor(row,j,0,j);}

  
   for(i=0; i<5; i++) { 
     row = KMLaddRow(myTable,"10");
    for(j=0; j<c; j++) {KMLaddcellColor2(row,hex14[i*3],hex27[j],hex14[6]);}
   }

   for(i=0; i<5; i++) { 
     row = KMLaddRow(myTable,"10");
    for(j=0; j<c; j++) {KMLaddcellColor2(row,hex14[i*3],hex14[6],hex27[j]);}
   }

  for(i=0; i<5; i++) { 
     row = KMLaddRow(myTable,"10");
    for(j=0; j<c; j++) {KMLaddcellColor2(row,hex14[1],hex27[j],hex14[i*3]);}
   }
  }


 function app_setColor1(Color)
 { RampC1 = Color;
   var obj = zdoc_get("Ramp_C1"); 
   obj.style.backgroundColor =RampC1;
   
   updateRamp();
 } 
 
 function app_setColor2(Color)
 { RampC2 = Color;
   var obj = zdoc_get("Ramp_C2"); 
   obj.style.backgroundColor =RampC2;
   
  updateRamp();
 }
 
 function rule3(Xmin, Ymin, Dx,Dy,xb)
 {
  var yb = Dy;

  if(Dx>0) { 
  xb = xb-Xmin;
  yb = (xb*Dy/Dx)+Ymin;
  yb = ""+yb;
  yb = parseInt(yb);
  
 if(yb<0) {yb=0;}
 if(yb>255) {yb=255;}
  } else {yb=Ymin;}
  return yb
 }


 function updateRamp()
 {
  var myTable = document.getElementById("TblRamp");
  var myrow  = myTable.getElementsByTagName("tr")[0];
  var c=27;
  
  // for(j=0; j<c; j++) {GE_addcellColor(row,j,j,j);}
   
   var obj = zdoc_get("Ramp_C1"); 
   var MinColor = new zRGBColor(RampC1); //obj.style.backgroundColor);
   
   var obj = zdoc_get("Ramp_C2"); 
   var MaxColor = new zRGBColor(RampC2); //obj.style.backgroundColor);
   
   var DR = MaxColor.r-MinColor.r;
   var DG = MaxColor.g-MinColor.g;
   var DB = MaxColor.b-MinColor.b;

   var xColor = new zRGBColor("#ffffff");
 
   var data = "";
   var mycel="";
   
   //var mycel = myrow.getElementsByTagName("TD")[0];
  //Color = mycel.bgColor;  
   data += "Min Color = "+MinColor.r+" "+MinColor.g+ " "+MinColor.b;
   data += "Msx Color = "+MaxColor.r+" "+MaxColor.g+ " "+MaxColor.b;
   data += "\nDelta Color = "+DR +" " + DG + " " + DB+"\n";
  
   /////////// alert(""+color_rgh2html(250,250,250));
    for(var i=0; i<c; i++) {
        xColor.r = rule3(0,MinColor.r,c,DR,i);
        xColor.g = rule3(0,MinColor.g,c,DG,i);
        xColor.b = rule3(0,MinColor.b,c,DB,i);
        data += "\n " + xColor.r +" "+ xColor.g + " " + xColor.b;
        mycel = myrow.getElementsByTagName("TD")[i];
        mycel.bgColor=color_rgh2html(xColor.r,xColor.g,xColor.b);
        data += " "+color_rgh2html(xColor.r,xColor.g,xColor.b);
      }  
      //alert(data);
 }

 function color_html2kml(color)
 {
   var newcolor ="ffffff";
   if(color.length==7) {
    newcolor = color.substring(5,7)+color.substring(3,5)+color.substring(1,3);
   }
   return newcolor
 }

 function zRGBColor(color)
  {
   this.r = parseInt(color.substring(5,7),16);
	 this.g = parseInt(color.substring(3,5),16);
	 this.b = parseInt(color.substring(1,3),16);
  }

 function color_rgh2html(r,g,b)
  {
    Rx=r.toString(16);
    if(Rx.length<2) {Rx="0"+Rx;}
    
    Gx=g.toString(16);
    if(Gx.length<2) {Gx="0"+Gx;}
    
    Bx=b.toString(16);
    if(Bx.length<2) {Bx="0"+Bx;}
    
    Bx="#"+Bx+Gx+Rx;
    
    return Bx.toUpperCase();
  }

  function color_html2rgb(color)
 {
   var newcolor ="";
   if(color.length==7) {
    newcolor = parseInt(color.substring(5,7),16)+","+parseInt(color.substring(3,5),16)+","+parseInt(color.substring(1,3),16);
   }
   
   return newcolor
 } 

 function changeopa(id)
  {
	 zopacity = id*5;
	 var obj = zdoc_get("opa");
	 obj.innerHTML=""+zopacity+" %"; 
	 app_SetColor(zcolor);
  }
 
 function myrgb(bits){
                return [
                    parseInt(bits[1]),
                    parseInt(bits[2]),
                    parseInt(bits[3])
                ];
            }

function app_about()
 {
   var MSG = "<center><b>KML Color</b><br>";
   MSG+="<br>Build: 11.29.07<br><br>(c) 2006-2007 Zonum Solutions</center>";
   zwin_msgbox("About",300,110,"","",MSG);
 }

function app_comments()
 {
  zfr_comments('KML_COLOR');
 }

 function app_addshape(isLine,LatLonList)
 {
   var vertices = LatLonList.split(" ");
   var PtsList=[];
   
   for (i=0; i<vertices.length; i++) {
    Pt = vertices[i].split(',');
    PtsList.push(new GLatLng(Pt[0],Pt[1]));
   }
   if(isLine==false) {
     var Polygon=new GPolygon(PtsList,zcolor, 3, 1,zcolor,zopacity/100);
      map.addOverlay(Polygon);  
   } else {
      var polyline = new GPolyline(PtsList, zcolor, 4,zopacity/100);
      map.addOverlay(polyline);
  }

 }
 


 function app_addline()
  { map.clearOverlays();
    var PtsList="6.83917,-74.355469 -0.087891,-72.070312 -6.315299,-76.992187 -12.897489,-72.861328 -16.720385,-64.248047 -31.578535,-64.160156";
    app_addshape(true,PtsList);  

    var PtsList="5.790897,-62.138672 -4.039618,-52.294922 -7.188101,-38.408203 -26.037042,-54.755859 -14.689881,-55.107422 -7.275292,-67.587891 5.790897,-62.138672";
    app_addshape(false,PtsList);
 }

 


-->