﻿//<![CDATA[
if (GBrowserIsCompatible())
{
 
var map;
var firstTabName = 'Summary';
var markers = [];
var List = [];
var overlays = [];
var html1s = [];
var html2s = [];
var html3s = [];
var toolTip;

var _number = 0;
var _id = -1;
var _long = 0;
var _lat = 0;
var _innerHTML = "";
var tilelayer;
var tilelayerOverlay = [];

var search = 1;
var initial_zoom = 0;
var zoom = ZOOM_FACTOR_VERIFIED;
var records;
var clusterer;
var MapZoom;

//pageLoad -- Start --
function pageLoad()
{  
     SetVariables();
     
    _innerHTML = document.getElementById('mapLoad').innerHTML; // MAP Loading Image
         
    map = new GMap2(document.getElementById("map"));    
    clusterer = new Clusterer( map ); 
    clusterer.SetMaxVisibleMarkers(1000);
    map.addControl(new GLargeMapControl());
    map.addControl(new GScaleControl());                
    CreateCustomControls();     
      
    GEvent.addListener(map, "moveend", function(){         
        document.getElementById('mapLoad').innerHTML = _innerHTML; // show MAP loading img   
        
        DisplayMap(''); 
        
                
    });     
    
   point = new GPoint2(LONGITUDE, LATITUDE);
   
    zoom =  ZOOM_FACTOR_VERIFIED;
    map.setCenter(point, ZOOM_FACTOR_VERIFIED);
   
   ///////////// Tooltip ////////////////////////////////
    
   toolTip = document.getElementById('dhtmltooltip');        
   map.getPane(G_MAP_FLOAT_PANE).appendChild(toolTip);
   toolTip.style.visibility="hidden";
    CreateMapLegend();
}
//pageLoad -- End --

function checkOverlay(ctrl,index)
{
    
    if(ctrl.checked == true)
        return true;
    else
    {        
        //map.removeOverlay(tilelayerOverlay[index]);   
        clusterer.RemoveMarker(tilelayerOverlay[index]);     
    }    
    
}

// HTML Bubble for marker

function GenerateOverlayHtml(type,address, imageName,description)
{
    var div = GenerateWindowSize();
    var html = div;
	    
    html = html + '<table align=center class="BubbleTable">';
    html = html + '<tr>';
    html = html + '<td align=center valign=top>';
    html = html + '<img src=' + OverlayImagesPath + imageName + ' width=77 height=77 border=1>';
    html = html + '</td>';
    html = html + '<td>';
    html = html + '<table align=center class="BubbleTable">';

    if(type != '')
    {
        html = html + '<tr>';
        html = html + '<td align=center>';
        html = html + '<b>'+ type +'</b>';
        html = html + '</td>';
        html = html + '</tr>';
    }
    
    html = html + '<tr>';
    html = html + '<td align=center>';
    html = html + 'Address: ' + address;
    html = html + '</td>';
    html = html + '</tr>';
    html = html + '<tr>';
    html = html + '<td align=center>';
    html = html + '--------------';
    html = html + '</td>';
    html = html + '</tr>';
    html = html + '<tr>';
    html = html + '<td align=center>';
    html = html + description;
    html = html + '</td>';
    html = html + '</tr>';
    html = html + '</table>';
    html = html + '</td>';
    html = html + '</tr>';    
    html = html + '</table>';
    html = html + '</div>';

    return html;
}

function CreateOverlayMarker(point,toolTipText,overlayHtml,icon)
{
    var infoTabs = [
    new GInfoWindowTab(firstTabName, overlayHtml)    
    ]; 

    var marker = new GMarker(point, icon);
    marker.tooltip = toolTipText;
    
    GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowTabsHtml(infoTabs);
    toolTip.style.visibility="hidden"
    });

    clusterer.AddMarker( marker, '' )
    overlays.push(marker);

    GEvent.addListener(marker,"mouseover", function() {
    ShowToolTip(marker);
    });
    
    GEvent.addListener(marker,"mouseout", function() {
    toolTip.style.visibility="hidden"
    });
}



//DisplayMap -- Start --
function DisplayMap(isSearch)
{   
    if(legendStatus=='visible')
    {         
        document.getElementById("mapLegend").style.display='';
    }
    else 
    {      
        document.getElementById("mapLegend").style.display='none';        
    }
    
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        
        var longmin = southWest.lng();
        var longmax = northEast.lng();
    
        var latmin = southWest.lat();
        var latmax = northEast.lat();   

  
       if(map.getZoom()!=MapZoom)
    {
    
        for(var i=0;i<markers.length;i++)
            clusterer.RemoveMarker(markers[i]);  
        
        map.clearOverlays(markers);        
        markers = [];
        List = [];
        overlays = [];
        html1s = [];
        html2s = [];
        html3s = [];
        MapZoom=map.getZoom();
    }
    
    if(isSearch == '1')
    {                 
        this.toolTip = document.getElementById('dhtmltooltip');        
        this.toolTip.style.visibility="hidden";
        for(var i=0;i<markers.length;i++)
            clusterer.RemoveMarker(markers[i]);  
        
        map.clearOverlays(markers);        
        markers = [];
        List = [];
        overlays = [];
        html1s = [];
        html2s = [];
        html3s = [];
        _number = 0;
        _long = 0;
        _lat = 0;
        search = 1;
        initial_zoom = 0;
   }
   
          
   var txtAPI = document.getElementById("ctl00_ContentPlaceHolder1_txtAPI");
   var txtWellNo = document.getElementById("ctl00_ContentPlaceHolder1_txtWellNo");
   var txtOperator = document.getElementById("ctl00_ContentPlaceHolder1_txtOperator");
   var txtLease = document.getElementById("ctl00_ContentPlaceHolder1_txtLease");
      var txtField = document.getElementById("ctl00_ContentPlaceHolder1_txtField");

    var Field;
    if(SLB_Domain.toLowerCase() == window.location.hostname.toLowerCase()) // slb subdomain    
    {            
        Field="Kern River";
    }
    else if(WET_Domain.toLowerCase() == window.location.hostname.toLowerCase()) // wet subdomain    
    {
        Field="Midway-Sunset";
    }
        else
        Field = txtField.value;
    
   var txtSection = document.getElementById("ctl00_ContentPlaceHolder1_txtSection");
   var txtTownShip = document.getElementById("ctl00_ContentPlaceHolder1_txtTownShip");
   var txtRange = document.getElementById("ctl00_ContentPlaceHolder1_txtRange");   
   
   var Section;
   if(txtSection.value == '' || txtSection.value == "")      
   {
       Section = 0; 
   }
   else
   {
        Section = txtSection.value;
   }
   
    var lblListingID = document.getElementById("ctl00_ContentPlaceHolder1_lblCompanyId");
    MapData.OilWellDataTable(txtAPI.value,"","","","",txtWellNo.value,txtOperator.value,txtLease.value,Field,Section,txtTownShip.value,txtRange.value,lblListingID.value,longmin,latmin,longmax,latmax, DisplayMap_CallBack);         

}
//DisplayMap -- End --

//DisplayBubble -- Start --
function DisplayBubble(id,longitude,latitude)
{
    _id = id;
    _number = List.indexOf(id);
    
    if(_number != -1)
    {    
        var infoTabs = [
        new GInfoWindowTab(firstTabName, html1s[_number])        
        ]; 
    
        markers[_number].openInfoWindowTabsHtml(infoTabs); 
        
         _long = longitude;
        _lat = latitude;
        point = new GPoint2(longitude, latitude);
        
        map.setCenter(point, map.getZoom());
                
    } // if
    else
    {
        _long = longitude;
        _lat = latitude;
        point = new GPoint2(longitude, latitude);        
        
        map.setCenter(point, ZOOM_FACTOR_VERIFIED);
               
    }    
}
//DisplayBubble -- End --

//DisplayMap_CallBack -- Start --
function DisplayMap_CallBack(res_array)
{   
    var res = res_array[0];
    var length = res.get_length(); 
    
    if(legendStatus=='visible')
    {         
        document.getElementById("mapLegend").style.display='';
    }
    else 
    {      
        document.getElementById("mapLegend").style.display='none';        
    }

    var initialLongitude = 0;
    var initialLatitude = 0;
    var icons_count = 0;
    var city;
    
    if(res_array[1])
    {
        if(res_array[1].get_length() >0)
        {
            initialLongitude = res_array[1].getItem(0).getProperty('initialLongitude');
            initialLatitude = res_array[1].getItem(0).getProperty('initialLatitude');
            icons_count = res_array[1].getItem(0).getProperty('records');
        }
    }

    var point;
    
  if(search == 1)
  {
        if(icons_count > 0)
        {   
            var a= length;            
               
            point = new GPoint2(initialLongitude, initialLatitude);
            
            if(initial_zoom == 0)
            {
                zoom = ZOOM_FACTOR_VERIFIED;
                 map.setCenter(point, ZOOM_FACTOR_VERIFIED);
                
                initial_zoom = 1;
                return;
            }
            
            if(icons_count <= MAP_ICONS_THRESHOLD && a < icons_count/2)
            {   
                zoom = zoom -1;
                if(zoom >= 0)           
                { 
                    map.setZoom(zoom);
                }
                  
                return;
            }
            else if(a < MAP_ICONS_THRESHOLD && a < icons_count/2)
            { 
                zoom = zoom -1;
                if(zoom >=0 )           
                {   
                    map.setZoom(zoom);
                }
                  
                return;
            }
        }
  }

search = 0;
    
    for (i = 0; i < length; i++)
    {
        var commPropId = res.getItem(i).getProperty('WellID');
    
        if(List.length > 0)
        {
            if(List.indexOf(commPropId) != -1)
                continue;
        }
    
        List.push(commPropId);
        
        var x = res.getItem(i).getProperty('Longitude');
        var y = res.getItem(i).getProperty('Latitude');
        var no = res.getItem(i).getProperty('No');             
                
        var APINumber = res.getItem(i).getProperty('APINumber');
        var Operator = res.getItem(i).getProperty('Operator');
        var Lease = res.getItem(i).getProperty('Lease');
        var WellNo = res.getItem(i).getProperty('WellNo');
        var Field = res.getItem(i).getProperty('Field');
        var SEC = res.getItem(i).getProperty('SEC');
        var TWN = res.getItem(i).getProperty('TWN');
        var RGE = res.getItem(i).getProperty('RGE');
                
        var toolTipText = APINumber;
                
        var html1 = GenerateHtml1(APINumber,Operator, Lease, WellNo, Field, SEC, TWN, RGE);

        var point = new GPoint2(x, y);

        var icon = GetIconPath('', OIL_WELL);
        
        CreateMarker(point, toolTipText, html1, '', '', no, icon);
    }
    
    if(_number == -1) // if exception or marker not exists while open bubble. then get new location & display bubble
    {
        DisplayBubble(_id,_long,_lat);
        _number = 0;
        _long = 0;
        _lat = 0;
    } 
    
    
    
    document.getElementById('mapLoad').innerHTML = ""; // HIDE MAP Loading img
}
//DisplayMap_CallBack -- End --
function NextRealtor()
{
    var realtor = document.getElementById('RealtorTable');
    var secondaryRealtor= document.getElementById('SecondaryRealtorTable');
    var button = document.getElementById('RealtorButton');
    
    if(realtor.style.display == 'block')
    {
        secondaryRealtor.style.display='block';
        realtor.style.display='none';
        button.innerHTML="<< Previous";
    }
    else
    {
        secondaryRealtor.style.display='none';
        realtor.style.display='block';
        button.innerHTML="Next >>";
    }    
}

//GenerateWindowSize -- Start --
function GenerateWindowSize()
{
    var div;
    div = '<div id=\'bubbleDiv\' class="BubbleDiv">';
    return div;
}
//GenerateWindowSize -- End --

//GenerateHtml1 -- Start --
function GenerateHtml1(APINumber,Operator, Lease, WellNo, Field, SEC, TWN, RGE)
{
    var div = GenerateWindowSize();
    var html = div;
	    
    html = html + '<table id ="tbl1" align=center class="BubbleTable">';
    html = html + '<tr>';
    html = html + '<td>';
    html = html + '<table align=center class="BubbleTable">';
    html = html + '<tr>';
    html = html + '<td align=left>';
    
    if(APINumber!='#') // properties other than commercial Lease
    {
        html = html + '<b>APINumber: </b>' + APINumber + '';
    }
    if(WellNo !='#') // commercial lease
    {
        html = html + '</br><b>WellNo: </b>' + WellNo + '';
    }
    if(Operator !='#') // commercial lease
    {
        html = html + '<br><b>Operator: </b>' + Operator + '';
    }
    if(Lease !='#') // commercial lease
    {
        html = html + '<br><b>Lease: </b>' + Lease + '';
    }
    if(Field !='#') // commercial lease
    {
        html = html + '<br><b>Field: </b>' + Field + '';
    }
    if(SEC !=0) // commercial lease
    {
        html = html + '<br><b>Section: </b>' + SEC + '';
    }
    if(TWN !='#') // commercial lease
    {
        html = html + '<br><b>Township: </b>' + TWN + '';
    }
    if(RGE !='#') // commercial lease
    {
        html = html + '<br><b>Range: </b>' + RGE + '';
    }
    
    html = html + '</td>';
    html = html + '</tr>';
    html = html + '<tr>';
    html = html + '<td align=center>';
    html = html + '</td>';
    html = html + '</tr>';
    html = html + '</table>';
    html = html + '</td>';
    html = html + '</tr>';
    html = html + '<tr>';
    html = html + '<td align=center>';
    html = html + '</td>';
    html = html + '<td align=center>';    
    
    html = html + '</td>';
    html = html + '</tr>';
    html = html + '</table>';
    html = html + '</div>';

    return html;
}
//GenerateHtml1 -- End --

//CreateMarker -- Start --
function CreateMarker(point, toolTipText, html1, html2, html3, i, icon)
{
    var infoTabs = [
    new GInfoWindowTab(firstTabName, html1)    
    ]; 

    var marker = new GMarker(point, icon);    
    GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowTabsHtml(infoTabs);
    });

    marker.tooltip = toolTipText;
   
   clusterer.AddMarker( marker, '');

    GEvent.addListener(marker,"mouseover", function() {         
    ShowToolTip(marker);
    });
    
    GEvent.addListener(marker,"mouseout", function() {
    toolTip.style.visibility="hidden"
    });
    
    GEvent.addListener(marker,"click", function() {    
    toolTip.style.visibility="hidden"
    });
        
    markers.push(marker);
    html1s.push(html1);
    html2s.push(html2);
    html3s.push(html3);
}
//CreateMarker -- End --

}
//]]>
