GMaps ={
	objMap: null,
	cInfoWindow: new Object(),
	init: function(typeMaps, canvasDivId, zoomMap, defLat, defLng){
		if(typeof mapParams != 'undefined'){
			if(typeMaps == 'rubricator'){
				var centerLatlng = new google.maps.LatLng(defLat, defLng);
			}else if(typeMaps == 'firmpage'){
				for(var firmId in mapParams){
					var centerLatlng = new google.maps.LatLng(mapParams[firmId]['lt'], mapParams[firmId]['lg']);
				}
			}
			var centerOptions = {
				zoom: zoomMap,
				center: centerLatlng,
                                scrollwheel: false,
				mapTypeControl: true,
				mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
				mapTypeId: google.maps.MapTypeId.ROADMAP
			}
			this.objMap = new google.maps.Map(document.getElementById(canvasDivId), centerOptions);
			this.showMarker(typeMaps);
		}
	},
	showMarker: function(typeMaps){
		for(var firmId in mapParams){
			if(mapParams[firmId]['show_point'] == 1){
				var firmLatlng = new google.maps.LatLng(mapParams[firmId]['lt'], mapParams[firmId]['lg']);
				if(typeMaps == 'rubricator'){
					var windowContent = this.generateContentWindow(firmId);
					eval("GMaps.cInfoWindow[" + firmId + "] = new google.maps.InfoWindow({content: '" + windowContent + "', position: firmLatlng })");
					eval("var marker" + firmId + " = new google.maps.Marker({position: firmLatlng, map: GMaps.objMap, icon: '/skins/gtsmap/i/2.0/marker_n" + document.getElementById('f_num_' + firmId).innerHTML + ".png'})");
					eval("google.maps.event.addListener(marker" + firmId + ", 'click', function() { GMaps.cInfoWindow[" + firmId + "].open(GMaps.objMap, marker" + firmId + "); })");
				}else if(typeMaps == 'firmpage'){
					var marker = new google.maps.Marker({
						position: firmLatlng,
						map: GMaps.objMap
					});
				}
			}
		}
	},
	generateContentWindow: function(firmId){
		var firmLink = document.getElementById('f_title_' + firmId);
		var firmName = document.getElementById('f_title_' + firmId).innerHTML;
		var content = document.getElementById('f_num_' + firmId).innerHTML + '. <a href="' + firmLink + '" target="_blank" class="map_firm_name">' + firmName + '</a><br/><br/>' + 
						this.getFirmPhoneStr(firmId) + 
						'<br/><a href="javascript: void(0);" onclick="GMaps.zoomFirm(' + firmId + ');" class="map_tools">приблизить</a>';
		return content;
	},
	zoomFirm: function(firmId){
		var firmLatlng = new google.maps.LatLng(mapParams[firmId]['lt'], mapParams[firmId]['lg']);
		GMaps.cInfoWindow[firmId].close();
		this.objMap.setCenter(firmLatlng);
		this.objMap.setZoom(16);
	},
	getFirmPhoneStr: function(firmId){
		var content = "";
		var strPhone = document.getElementById('map_phone_' + firmId).value;
		var strPhoneCode = document.getElementById('map_phone_code_' + firmId).value;
		if(strPhone != ""){
			var startPos = strPhone.substring(0, 1);
			if(startPos == '('){
				var endPos = strPhone.search(/\)/i);
				var newPhoneCode = strPhone.substring(0, (endPos + 1));
				var newPhone = strPhone.substring((endPos + 2), strPhone.length);
				content = newPhoneCode + " " + newPhone;
			}else if(startPos != 'w'){
				if(strPhone.length <= 9 && strPhoneCode != ""){
					content = '(' + strPhoneCode + ') '; 
				}
				content = content + '<span class="map_phone">' + strPhone + '</span>'; 
			}
			if(content != ""){
				content = "Тел.: " + content
			}
		}
		return content;
	}
}
