var map;
var geocoder;
var bounds;
var markers = new Object();
var mySlider;
var geocodes;
var lastFilteringActionBySlider;
var pushpinOptions;

var detailCssClasses = new Array();
detailCssClasses[1] = new Array('.shop_name', '.shop_address');
detailCssClasses[2] = new Array('.shop_discount', '.shop_product', '.shop_scndata');

function initialize(maxDiscount) {
	/*var ajaxRequest = new AjaxRequest("../tgc", cb);
	ajaxRequest.queryString="q=" + settlementList;
	ajaxRequest.sendRequest();
	*/
	mySlider = new Bs_Slider();
	mySlider.attachOnChange(bsSliderChange);
	mySlider.width         = 120;
	mySlider.height        = 15;
	mySlider.minVal        = 0;
	mySlider.maxVal        = maxDiscount;
	mySlider.valueInterval = 1;
	mySlider.arrowAmount   = 5;
	mySlider.valueDefault  = 0;
	mySlider.setSliderIcon('horizontal_knob.gif', 15, 19);
	mySlider.setBackgroundImage('horizontal_background.gif', 'repeat');
	mySlider.imgDir        = './img/';
	mySlider.setArrowIconLeft('horizontal_backgroundLeft.gif', 2, 19);
	mySlider.setArrowIconRight('horizontal_backgroundRight.gif', 2, 19);
	mySlider.useInputField = 2;
	mySlider.styleValueFieldClass = 'sliderInput';
	mySlider.colorbar = new Object();
	mySlider.colorbar['color']           = '#95CF1A';
	mySlider.colorbar['height']          = 3;
	mySlider.colorbar['widthDifference'] = 0;
	mySlider.colorbar['offsetLeft']      = -1;
	mySlider.colorbar['offsetTop']       = 6;
	mySlider.drawInto('sliderDiv1');
	//discountFilterValue = mySlider.getValue();
	//categoryFilterValue = document.getElementById('catFilter').value;
	initMap();
}

function cb(response) {
	geocodes = eval("(" + response.getHtmlResponse() + ")");
	if (geocodes.length > 1) {
		headLoc = document.getElementsByTagName("body").item(0);
		scriptObj = document.createElement("script");
		scriptObj.setAttribute("type", "text/javascript");
		scriptObj.setAttribute("src", "http://maps.google.com/maps?file=api&v=2&sensor=false&async=2&callback=initMap&key=" + geocodes[0]);
		headLoc.appendChild(scriptObj);
	}
}

function initMap() {
		if (GBrowserIsCompatible() && document.getElementById("map") != null) {
			map = new GMap2(document.getElementById("map"));
			ui = map.getDefaultUI();
			ui.maptypes.satellite = false;
			ui.maptypes.hybrid = false;
			ui.maptypes.physical = false;
			map.setUI(ui);

			var pushpinIcon = new GIcon(G_DEFAULT_ICON);
			pushpinIcon.image = "img/talalati_ikon.gif";
			pushpinIcon.iconSize = new GSize(20,32);
			pushpinOptions = { icon:pushpinIcon};

			//map.setUIToDefault();
			bounds = new GLatLngBounds();
			addMarkers();
			/*for (var i = 1; i < geocodes.length; i++) {
				createMarker(geocodes[i].settlement, new GLatLng(geocodes[i].latitude, geocodes[i].longitude));
			}*/
			newzoom = map.getBoundsZoomLevel(bounds);
			newcenter = bounds.getCenter();
			map.setCenter(newcenter,newzoom);
		}
}

function createMarker(s, point) {
	bounds.extend(point);
	markers[s] = new GMarker(point, pushpinOptions);
	map.addOverlay(markers[s]);
	GEvent.addListener(markers[s], "click", function() {
		/*
		document.getElementById('query').value=s;
		document.getElementById('queryform').submit();
		*/
		location.hash=s;
	});
	GEvent.addListener(markers[s], "mouseover", function() {
		/*markers[s].openExtInfoWindow(
              map,
              "custom_info_window_bubble",
              "<p>" + s + "</p>",
              {beakOffset: 2}
            );
			*/
		markers[s].openInfoWindowHtml(s);
	});
	GEvent.addListener(markers[s], "mouseout", function() {
		markers[s].closeInfoWindow();
	});
}

function createUzletMarker(s, point, name, address) {
	bounds.extend(point);
	markers[s] = new GMarker(point, pushpinOptions);
	map.addOverlay(markers[s]);
	GEvent.addListener(markers[s], "click", function() {
		location.hash=s;
	});
	GEvent.addListener(markers[s], "mouseover", function() {
		/*markers[s].openExtInfoWindow(
              map,
              "custom_info_window_bubble",
              "<p>" + s + "</p>",
              {beakOffset: 2}
            );
			*/
		markers[s].openInfoWindowHtml(name + "<BR/>" + address);
	});
	GEvent.addListener(markers[s], "mouseout", function() {
		markers[s].closeInfoWindow();
	});
}


function bsSliderChange(sliderObj, val, newPos){
	if (lastFilteringActionBySlider != null) {
		clearTimeout(lastFilteringActionBySlider);
	}
	lastFilteringActionBySlider = setTimeout("doFilter()", 200);
	//doFilter();
}

function doFilter() {
	lastFilteringActionBySlider = null;
	filter(mySlider.getValue(), document.getElementById('catFilter').value);
}
