var gAjaxURL = 'aj_query.php?';
var gZoomToLevel = 13;
var gCountryZoom = 7;

var gSlides, gSlideIndex, gNextSlideIdx, gAnimating, gSlideShow;

var gMap, gGeocoder;
var gDefaultLatLng;
var gMapIcons, gAbc;
var gHiDealerId = -1;
var gMarkers;

YAHOO.util.Event.onDOMReady(init);

function init() {
	var div, href;
	
	seriesTabInit();
	// initialize gallery
	gSlideShow = new vsGallery();
	
	// initialize Google Maps
	if (!GBrowserIsCompatible())
		return;
	gMap = new GMap2(document.getElementById("map_canvas"));
	gDefaultLatLng = new GLatLng(23.69781, 120.96052);
	gMap.setCenter(gDefaultLatLng, gCountryZoom);
	gMap.setUIToDefault();
	gGeocoder = new GClientGeocoder();
	gGeocoder.setBaseCountryCode('tw');
	// creating icons for maps
	gMapIcons = new Array();
	gAbc = new Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
	for (var i = 0; i <= 10; i++) {
		var icon = new GIcon(G_DEFAULT_ICON);
		icon.image = 'images/marker_' + gAbc[i] + '.png';
		gMapIcons.push(icon);
	}
	getASPs();
}

function getASPs() {
	YAHOO.util.Connect.asyncRequest("GET", gAjaxURL + 'rt=service', getASPsCBs);
}

var getASPsCBs = {
	success: function(o) {
		// parse the response
		var res = YAHOO.lang.JSON.parse(o.responseText);
		var div = document.getElementById('resultPane');
		if (res.asp.length == 0) {
			// if no asp found, 
			gMap.setCenter(gDefaultLatLng, gCountryZoom);
			var listHtml = '在附近沒有 NetBook 快修中心！';
		} else {
			delete gMarkers;
			gMarkers = new Array(res.asp.length);
			var listHtml = '';
			for (var i = 0; i < res.asp.length; i++) {
				var pt = new GLatLng(parseFloat(res.asp[i].lat),
									 parseFloat(res.asp[i].lng));
				var marker = new GMarker(pt, gMapIcons[i]);
				marker.data = res.asp[i];
				var func = new Function('i', 'zoomToAsp(' + i + ');');
				GEvent.addListener(marker, "click", func);
				gMap.addOverlay(marker);
				gMarkers[i] = marker;
				// now generate divs for asp list
				listHtml += '<div class="asp" id="asp' + i + '" onclick="zoomToAsp(' + i + ')">' +
							'<img src="images/marker_' + gAbc[i] + '.png" class="pin">' +
							'<div class="info"><b>' + res.asp[i].company + res.asp[i].label +
							'</b><br/>' + res.asp[i].addr + '<br/>' + res.asp[i].tel + '<br/>' +
							res.asp[i].serv_hours + '</div></div>';
			}
			div.innerHTML = listHtml;
		}
	},
	failure: function(o) {
	},
	argument: null
}

function zoomToAsp(i) {
	var theZoom = gMap.getZoom();
	if (theZoom < gZoomToLevel) {
		var theZoom = gZoomToLevel;
		gMap.setCenter(gMarkers[i].getLatLng(), theZoom);
	} else
		gMap.panTo(gMarkers[i].getLatLng());
	var div = document.getElementById('asp' + i);
	if (gHiDealerId != -1) {
		document.getElementById('asp' + gHiDealerId).className = 'asp';
	}
	div.className = 'aspHi';
	gHiDealerId = i;
	var theData = gMarkers[i].data;
	gMarkers[i].openInfoWindowHtml('<p class="info"><b>' + theData.company + theData.label +
								   '</b><br/>地址：' + theData.addr + '<br/>電話：' + theData.tel +
								   '<br/>營業時間：' + theData.serv_hours + '<br/>服務產品：' +
								   theData.serv_products, {maxWidth: 300});
}
