//Takes raw xml from initial web service and returns array in following format
//[polygon,Points[Lat,Lon]]
function zoneXMLStringToGPolygon(zoneString)
{
    alert(zoneString);
    
    var startPos = zoneString.indexOf('>',zoneString.indexOf('>')+1)+1; //End of 2nd XML tag
   
    var endPos = zoneString.lastIndexOf('</string>');
    var sAll = zoneString.substr(startPos,endPos-startPos);
    //alert (sAll);
    var firstLine = sAll.substr(0,sAll.indexOf('\n'));
    //var points = sAll.split(sAll.substr(sAll.indexOf('\n')),',');
    var points = sAll.substr(firstLine.length + 1);
    //alert(firstLine);
    //alert(points);
    return new Array(firstLine,points);
}

function zoneXMLStringToJSONPolylineArray(zoneString)
{
    //alert(zoneString);
    
    var startPos = zoneString.indexOf('>',zoneString.indexOf('>')+1)+1; //End of 2nd XML tag
   
    var endPos = zoneString.lastIndexOf('</string>');
    var sAll = zoneString.substr(startPos,endPos-startPos);
    alert(sAll);
    return sAll;
}
function arrayFromXML(xml,tag)
{
    var sEndTag = tag.substr(0,1) + '/' + tag.substr(1);
    var iStart = xml.indexOf(tag);
    var iEnd = 0;
    var aryRet = new Array();
    while(iStart > -1)
    {
        iEnd = xml.indexOf(sEndTag,iStart);
        aryRet.push(xml.substring(iStart + tag.length,iEnd));
        iStart = xml.indexOf(tag, iEnd);
    }
    return aryRet;
}
function addPolyOverlayFromJSONPolylineArray(map, polyData, encodedArray, polyColor, polyOpacity)
{
//debugger;
    //var evalStr = "new GPolygon.fromEncoded ({" + polylinesDecl + ",fill:true, outline:true, color:" + polyColor + "opacity:" + polyOpacity + "});"
    //var newPoly = eval(evalStr);
    var newPoly = new GPolygon.fromEncoded(
    {
      polylines:[
      {points: encodedArray[0],
        levels: encodedArray[1],
        color: polyColor,
        opacity: polyOpacity,
        weight: 3,
        numLevels: 18,
      zoomFactor: 2}
      ],
      fill: true,
      color: polyColor,
      opacity: polyOpacity,
      outline: true
  });
    
    
    map.addOverlay(newPoly);
    __polys.push(newPoly);
    __polyData.push(polyData);
    return newPoly;

}
function addPolyOverlayFromEncoded(map, encodedPoints, lineColor, lineOpacity, lineWeight, numberLevels, zoomFac, polyColor, polyOpacity)
{
  var newPoly = new GPolygon.fromEncoded(
    {
      polylines:polyLinesArrayFromEncodedPointsArray(encodedPoints,lineColor,lineOpacity,lineWeight,numberLevels,zoomFac),
      fill: true,
      color: polyColor,
      opacity: polyOpacity,
      outline: true
  });
  map.addOverlay(newPoly);
  //Add name/value data
  addPolyCustomFields(newPoly,encodedPoints);
  //__polyData.push(polyData);
  return newPoly;
}
function isAWZone(encodedPoints){
//debugger;
    for(var i in encodedPoints){
        if(encodedPoints[i].toLowerCase() == 'awowned') return encodedPoints[Number(i) + 1].toLowerCase() == 'true';
    }
    return false;
}
function addPolyCustomFields(polygon, encodedPoints)
{
//debugger;

    var json = '{';
    for(i = 1;i<Number(encodedPoints[0]);i+=2)
    {
        json += encodedPoints[i] +':"' + encodedPoints[i+1] + '",';
    }
    json = json.substr(0,json.length - 1) + '}'; 
    eval ('polygon.customFields = ' + json + ";");
}
function polyLinesArrayFromEncodedPointsArray(encodedPoints, lineColor,lineOpacity, lineWeight,numberLevels,zoomFac)
{
//debugger;
    aryRet = new Array();
    for(i = Number(encodedPoints[0]);i<encodedPoints.length;i+=2)
    {
        aryRet.push({points:encodedPoints[i],levels:encodedPoints[i+1],color: lineColor,opacity: lineOpacity,weight: lineWeight,numLevels: numberLevels,zoomFactor: zoomFac});
    }
    return aryRet;
}
function addPolyOverlayFromPoints(map, polyData, pointsArray, lineColor, lineOpacity, lineWeight, polyColor, polyOpacity)
{
  var newPoly = new GPolygon(
    
      pointsArray,
      lineColor,
      lineWeight,
      lineOpacity,
       polyColor,
       polyOpacity
  );
  map.addOverlay(newPoly);
  __polys.push(newPoly);
  __polyData.push(polyData);
  return newPoly;
}