/*global  window: true, document: true, alert: true, GBrowserIsCompatible: false, GMap2: true, GLatLng: true,
          GSmallMapControl: true, MarkerManager: true, GIcon: true, G_DEFAULT_ICON: false, GSize: true, GPoint: true,
		  markerOptions: true, GClientGeocoder: true, GMarker: true, GEvent: true, GUnload: false  */

"use strict";
var imgs, ccMarker;

function BusinessAddress()
{
    this.name = '';
    this.address = '';
    this.city = '';
    this.state = '';
    this.zip = '';
    this.bizPage = '';
}

function setAddress(ba, inputField)
{
    switch (inputField.className) {
    case 'businessName':
        ba.name = inputField.innerHTML;
        break;
    case 'address1':
        ba.address = inputField.innerHTML;
        break;
    case 'city':
        ba.city = inputField.innerHTML;
        break;
    case 'state':
        ba.state = inputField.innerHTML;
        break;
    case 'zip':
        ba.zip = inputField.innerHTML;
        break;
    }
}

function addMapLocation(map, ba)
{
    var address, geocoder, marker;
    if (ba.address === 'Medical Marijuana Dilivery Service') {
        //alert('We Diliver');
        address = ba.city + ', ' + ba.state;
    } else {
        address = ba.address + ', ' + ba.city + ', ' + ba.state + ' ' + ba.zip;
    }
    geocoder = new GClientGeocoder();

    geocoder.getLatLng(address, function (point) {
        if (!point) {
            alert(address + " not found");
        } else {
            marker = new GMarker(point, ccMarker);
            GEvent.addListener(marker, "click", function () {
                marker.openInfoWindowHtml('<strong>' + ba.name + '</strong><br />' + ba.address + '<br />' + ba.city + ', ' + ba.state + ' ' + ba.zip);
            });
            map.addOverlay(marker);
        }
    });
}

function init()
{
	imgs = document.images;
	var siteLoc = 'http://www.inlandempirecannabisclubs.com/images/', bizAddies = [], addresses = [], spanNode = [], map, mgr, i, ba, j;

	if (new GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("club_map"));
		map.setCenter(new GLatLng(34.0100, -116.9700), 9);
		map.addControl(new GSmallMapControl());
		mgr = new MarkerManager(map);
		ccMarker = new GIcon(G_DEFAULT_ICON);
		ccMarker.image = siteLoc + 'marker.gif';
		ccMarker.shadow = null;
		ccMarker.iconSize = new GSize(19, 24);
		ccMarker.iconAnchor = new GPoint(4, 19);

		// Set up our GMarkerOptions object
		markerOptions = { icon: ccMarker };
	}

	addresses = document.getElementsByTagName('address');

    for (i in addresses) {
        if (addresses.hasOwnProperty(i)) {
            ba = new BusinessAddress();
            if (addresses[i].className === 'goldListing' || addresses[i].className === 'silverListing') {
                spanNode = addresses[i].childNodes;
                for (j in spanNode) {
                    if (spanNode.hasOwnProperty(j)) {
                        setAddress(ba, spanNode[j]);
                    }
                }
                bizAddies.push(ba);
            }
        }
    }
	addMapLocation(map, bizAddies[0]);
}

//http://maps.google.com/maps/geo?q=Riverside,+CA&output=json&oe=utf8&sensor=false&key=ABQIAAAAOw0LOoqkOJabPPINb__1EhTnBdBvxySm3Qvp63YKrSQhJFUJMBTYqvDBSZM4fQqBQobgEqEGwFjxzw

function swapOn(img)
{
    this.src = this.src.replace("a.jpg", "b.jpg");
}

function swapOff(img)
{
    this.src = this.src.replace("b.jpg", "a.jpg");
}

window.onload = init;
window.onunload = GUnload;
