﻿
function clearTextBox(obj) {
    var val = obj.value;
    var componentId = obj.id;
    if (val == "Type a Keyword" || val == "Enter a City or ZipCode")
        document.getElementById(componentId).value = '';
}

// Method to calculate distance between two latitudes and longitudes
function distance(lat1, lon1, lat2, lon2) {
    // var RinKm = 6371; // km (change this constant to get miles)
    var R = 3949.903; // miles (change this constant to get km)

    var dLat = (lat2 - lat1) * Math.PI / 180;
    var dLon = (lon2 - lon1) * Math.PI / 180;
    var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
      		Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
      		Math.sin(dLon / 2) * Math.sin(dLon / 2);
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    var d = R * c;
    d = d.toFixed(1);
    return d;
}

function CloseModelPopup(ModalId) {
    var popup = $find(ModalId);
    popup.hide()
}


var lat = 0;
var longi = 0;
var newLat = 0;
var newLongi = 0;
var map;
var geocoder;
function OpenModalPopup(ModalId, xParam, yParam, divID, latitude, longitude) {
    document.getElementById('Main_LogoAndSearch1_googleMapHideDiv').style.display = 'block';
    lat = latitude;
    longi = longitude;
    var popup = $find(ModalId);
    popup.show();
    load(xParam, yParam, divID);
}
function load() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.setCenter(new GLatLng(lat, longi), 13);

        document.getElementById('Main_LogoAndSearch1_LatitudeHiddenField').value = lat;
        document.getElementById('Main_LogoAndSearch1_LongitudeHiddenField').value = longi;

        // Create new geocoding object
        geocoder = new GClientGeocoder();
        
        // Create our "tiny" marker icon
        var blueIcon = new GIcon(G_DEFAULT_ICON);
        //blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
        blueIcon.image = "Search/Images/home.gif";

        // Set up our GMarkerOptions object
        markerOptions = { icon: blueIcon };

        var point = new GLatLng(lat, longi);
        map.addOverlay(new GMarker(point, markerOptions));

        GEvent.addListener(map, "click", function (overlay, latlng, overlaylatlng) {
            if (latlng != null) {
                newlat = latlng.y;
                newlongi = latlng.x;
                // Use the Click Event’s GLatLng
                var point = new GLatLng(newlat, newlongi);
                map.addOverlay(new GMarker(point));
                map.setCenter(point, 13);
                var bounds1 = map.getBounds();
                var southWest1 = bounds1.getSouthWest();
                var northEast1 = bounds1.getNorthEast();
                var distance1 = distance(northEast1.lat(), northEast1.lng(), southWest1.lat(), southWest1.lng());
                //alert(distance1);

                document.getElementById('Main_LogoAndSearch1_RadiusHiddenField').value = distance1;
                document.getElementById('Main_LogoAndSearch1_LatitudeHiddenField').value = newlat;
                document.getElementById('Main_LogoAndSearch1_LongitudeHiddenField').value = newlongi;

                // Retrieve location information
                geocoder.getLocations(latlng, function (response) {
                    if (response.Status.code == 200) {

                        var address = response.Placemark[0].address;
                        //alert('Complete Address: ' + address);
                        document.getElementById('Main_LogoAndSearch1_HomeAddressTextBox').value = address;

                        var countryNameCode = response.Placemark[0].AddressDetails.Country.CountryNameCode;
                        //alert('Country Code: ' + countryNameCode);
                        document.getElementById('Main_LogoAndSearch1_CountryCodeHiddenField').value = countryNameCode;

                        var administrativeAreaName = response.Placemark[0].AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
                        //alert('State Code: ' + administrativeAreaName);
                        document.getElementById('Main_LogoAndSearch1_StateCodeHiddenField').value = administrativeAreaName;

                        var localityName = response.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
                        //alert('City Name: ' + localityName);
                        document.getElementById('Main_LogoAndSearch1_CityNameHiddenField').value = localityName;

                        var thoroughfareName = response.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;
                        //alert('Address: ' + thoroughfareName);
                        document.getElementById('Main_LogoAndSearch1_AddressHiddenField').value = thoroughfareName;

                        var postalCodeNumber = response.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.PostalCode.PostalCodeNumber;
                        //alert('Postal Code Number: ' + postalCodeNumber);
                        document.getElementById('Main_LogoAndSearch1_PostalCodeHiddenField').value = postalCodeNumber;

                    }
                    else {
                        alert("No placemark at the latlng provided. Please check again");
                    }
                });
            }

        });


        GEvent.addListener(map, "zoomend", function (oldZoomLevel, newZoomLevel) {
            var bounds1 = map.getBounds();
            var southWest1 = bounds1.getSouthWest();
            var northEast1 = bounds1.getNorthEast();
            var distance1 = distance(northEast1.lat(), northEast1.lng(), southWest1.lat(), southWest1.lng());
            //alert(distance1);
            document.getElementById('Main_LogoAndSearch1_RadiusHiddenField').value = distance1;
            if (lat == newLat && longi == newLongi) {
                document.getElementById('Main_LogoAndSearch1_CountryCodeHiddenField').value = '';
                document.getElementById('Main_LogoAndSearch1_StateCodeHiddenField').value = '';
                document.getElementById('Main_LogoAndSearch1_CityNameHiddenField').value = '';
                document.getElementById('Main_LogoAndSearch1_AddressHiddenField').value = '';
                document.getElementById('Main_LogoAndSearch1_PostalCodeHiddenField').value = '';
            }
        });

        var mapItButton = document.getElementById('MapIt');
        mapItButton.onclick = function () {
            var addresslocation = document.getElementById('Main_LogoAndSearch1_MapItTextBox').value;

            //var addresslocation = '1051 Santa Cruz Ave, Menlo Park, CA 94025, USA';
            geocoder.getLocations(addresslocation, function (response) {
                if (response.Status.code == 200) {
                    // Retrieve the object
                    place = response.Placemark[0];

                    // Retrieve the latitude and longitude
                    point = new GLatLng(place.Point.coordinates[1],
							  place.Point.coordinates[0]);

                    // Center the map on this point
                    map.setCenter(point, 13);

                    // Create a marker
                    marker = new GMarker(point);

                    // Add the marker to map
                    map.addOverlay(marker);

                    // Add address information to marker
                    marker.openInfoWindowHtml(place.address + place.Point.coordinates[1] +
							  place.Point.coordinates[0]);
                }
                else {
                    alert("No placemark at the latlng provided. Please check again");
                }
            });
        
        }
    }
}

function mapIt() {
    var addresslocation = document.getElementById('Main_LogoAndSearch1_MapItTextBox').value;
                
    //var addresslocation = '1051 Santa Cruz Ave, Menlo Park, CA 94025, USA';
    geocoder.getLocations(addresslocation, function (response) {
        if (response.Status.code == 200) {
            // Retrieve the object
            place = response.Placemark[0];

            // Retrieve the latitude and longitude
            point = new GLatLng(place.Point.coordinates[1],
							  place.Point.coordinates[0]);

            // Center the map on this point
            map.setCenter(point, 13);

            // Create a marker
            marker = new GMarker(point);

            // Add the marker to map
            map.addOverlay(marker);

            // Add address information to marker
            marker.openInfoWindowHtml(place.address + place.Point.coordinates[1] +
							  place.Point.coordinates[0]);
        }
        else {
            alert("No placemark at the latlng provided. Please check again");
        }
    });
}

function abc() {
    alert('hi');
}
function emptyTextBoxOnTabClick(tabObject) {
    var timeToHide = null;
    var tabName = tabObject.id;
    document.getElementById('Main_LogoAndSearch1_Image3').style.display = 'block';
    if (tabName == "Main_Home") {
        timeToHide = 5000;
    }
    else if (tabName == "Main_HotSales") {
        timeToHide = 15000;
    }
    else if (tabName == "Main_CoolBrands") {
        timeToHide = 4000;
    }
    else if (tabName == "Main_Categories") {
        timeToHide = 15000;
    }
    else {
        timeToHide = 500;
    }

    setTimeout("document.getElementById('Main_LogoAndSearch1_Image3').style.display = 'none'", timeToHide);


    var textBoxVal = document.getElementById('Main_LogoAndSearch1_txtSearchString').value;
    if (textBoxVal != "Type a Keyword")
        document.getElementById('Main_LogoAndSearch1_txtSearchString').value = '';
}
function showHide() {
    document.getElementById('Main_LogoAndSearch1_Image3').style.display = 'block';
}

// JScript File

// finds a control that had the given server id, of a the given type
// in the given parent.
//
function findControl(parent, tagName, serverId) {
    //alert('find control1');
    var items = parent.getElementsByTagName(tagName);
    //alert('ITEMS: ' + items.length);
    // walk the items looking for the right guy
    for (var i = 0; i < items.length; i++) {
        var ctl = items[i];
        if (ctl && ctl.id) {
            // check the end of the name.
            //
            var subId = ctl.id.substring(ctl.id.length - serverId.length);
            if (subId == serverId) {
                return ctl;
            }
        }
    }
    return null;
}

function loadTabPanel(sender, e) {
    //alert('loadTabPanel');
    var tabContainer = sender;
    //alert('tabContainer.get_activeTabIndex(): ' + tabContainer.get_activeTabIndex());
    if (tabContainer) {
        var updateControlId = "TabButton" + tabContainer.get_activeTabIndex();
        // get the active tab and find our button
        //
        var activeTab = tabContainer.get_activeTab();
        //alert('activeTab.get_element(): ' + activeTab.get_element());

        // check to see if we've already loaded
        //
        //if (findControl(activeTab.get_element(), "div", "TabContent" + tabContainer.get_activeTabIndex())) return;


        var updateControl = findControl(activeTab.get_element(), "input", updateControlId);

        if (updateControl) {

            // fire the update
            //
            updateControl.click();
        }

    }

}