YAHOO.namespace("FQ");

YAHOO.FQ.mapPageInit = function(){	

	YAHOO.FQ.mask = new YAHOO.widget.Overlay("mask", { fixedcenter:true, visible:true} );
		YAHOO.FQ.mask.render();
	
	YAHOO.FQ.loaderOverlay = new YAHOO.widget.Overlay("loaderOverlay", { fixedcenter:true,
					visible:false, effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
	
	YAHOO.FQ.loaderOverlay.render();
	YAHOO.util.Dom.setStyle("loaderOverlay","display","block");
	
	YAHOO.FQ.preloaderOverlay = new YAHOO.widget.Overlay("preloaderOverlay", { fixedcenter:true,
					visible:true, effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
	
	YAHOO.FQ.preloaderOverlay.render();
	YAHOO.util.Dom.setStyle("preloaderOverlay","display","block");
	
	
	YAHOO.FQ.selectBuildingsOverlay = new YAHOO.widget.Overlay("selectBuildingsOverlay", { fixedcenter:true,
					visible:false, effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
															
	YAHOO.FQ.selectBuildingsOverlay.render();
	YAHOO.util.Dom.setStyle("selectBuildingsOverlay","display","block");
	
	
	YAHOO.FQ.floorplansOverlay = new YAHOO.widget.Overlay("floorplansOverlay", { fixedcenter:true,
					visible:false, effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
	
	YAHOO.FQ.floorplansOverlay.render();
	YAHOO.util.Dom.setStyle("floorplansOverlay","display","block");
	
	
	YAHOO.FQ.errorOverlay = new YAHOO.widget.Overlay("errorOverlay", { fixedcenter:true,
					visible:false, effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
	
	YAHOO.FQ.errorOverlay.render();
	YAHOO.util.Dom.setStyle("errorOverlay","display","block");
	YAHOO.FQ.myMapBuildingID = buildingID;
	mapDefaultRegion();
	YAHOO.FQ.preloaderOverlay.hide();
}// End init


YAHOO.FQ.showMask = function()
{
	var o = .85;
	YAHOO.FQ.mask.maskAnimIn = new YAHOO.util.Anim("mask", {opacity: {to:o}}, 0.25);
	YAHOO.util.Dom.setStyle("mask", "opacity", 0);
	YAHOO.FQ.mask.show(); 
	YAHOO.FQ.mask.maskAnimIn.animate();
	
}

YAHOO.FQ.hideMask = function()
{
	YAHOO.FQ.mask.maskAnimOut = new YAHOO.util.Anim("mask", {opacity: {to:0}}, 0.25);
	YAHOO.FQ.mask.maskAnimOut.onComplete.subscribe(function() {YAHOO.FQ.mask.hide(); } );
	YAHOO.FQ.mask.maskAnimOut.animate();
}


function mapDefaultRegion(){
	YAHOO.util.Dom.get('building_details_container').innerHTML = '';
	YAHOO.FQ.loaderOverlay.show();
	YAHOO.FQ.showMask();
	var sUrl = '/buildings/get_map_buildings_ajax/'+regionID;
	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, selectSubRegionCallback, null);
	var sUrl = '/regions/map_subregion_ajax/'+regionID;
	var transaction2 = YAHOO.util.Connect.asyncRequest('GET', sUrl, mapSubRegionCallback, null);
}

var selectSubRegionCallback = {
	success: function(response) {
		if(response.responseText.substr(0, 5)=='error'){
			YAHOO.util.Dom.get('error_text').innerHTML = response.responseText;
			YAHOO.FQ.errorOverlay.show();
		}
		else{
			YAHOO.util.Dom.get('building_list_container').innerHTML = response.responseText;
		}
	}, 
	failure: function(response) {
		alert('it failed');	
	}
}

var mapSubRegionCallback = {
	success: function(response) {
		if(response.responseText.substr(0, 5)=='error'){
			YAHOO.util.Dom.get('error_text').innerHTML = response.responseText;
			YAHOO.FQ.errorOverlay.show();
		}
		else{	
			for(var i in buildings){
				buildings[i].marker.closeSmartWindow(buildings[i].markup);
			}
			
			map.drawZoomAndCenter(response.responseText.split('|')[1], response.responseText.split('|')[0]);
			
			if(YAHOO.FQ.myMapBuildingID > 0){
				mapBuilding(buildingID);
			} else {
				YAHOO.FQ.loaderOverlay.hide();
				YAHOO.FQ.hideMask();
			}
		}
	}, 
	failure: function(response) {
		alert('it failed');	
	}
}


function mapBuilding(buildingID){
	YAHOO.FQ.myMapBuildingID = buildingID;
	if(YAHOO.util.Dom.getStyle("mask","visibility") == 'hidden'){
		YAHOO.FQ.showMask();
	}
	if(YAHOO.util.Dom.getStyle("loaderOverlay","visibility") == 'hidden'){
		YAHOO.FQ.loaderOverlay.show();
	}
	var sUrl = '/buildings/map_building_ajax/'+buildingID;
	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, mapBuildingCallback, null);
}

var mapBuildingCallback = {
	success: function(response) {
		if(response.responseText.substr(0, 5)=='error'){
			YAHOO.FQ.loaderOverlay.hide();
			YAHOO.FQ.hideMask();
			YAHOO.util.Dom.get('error_text').innerHTML = response.responseText;
			YAHOO.FQ.errorOverlay.show();
		}
		else{
			//map.drawZoomAndCenter(response.responseText, 3);
			for(var i in buildings){
				if(buildings[i].ID == YAHOO.FQ.myMapBuildingID){
					buildings[i].marker.openSmartWindow(buildings[i].markup);
					YAHOO.FQ.myPanToObject = new YGeoPoint(buildings[i].lat,buildings[i].lon);
				} else {
					buildings[i].marker.closeSmartWindow(buildings[i].markup);
				}
			}
			if(YAHOO.FQ.myMapBuildingID > 0){
				showBuildingDetails(YAHOO.FQ.myMapBuildingID);
			}
			else{
				YAHOO.util.Dom.get('building_details_container').innerHTML = '';
			}
		}
	}, 
	failure: function(response) {
		alert('it failed');	
	}
}

function showBuildingDetails(buildingID){
	var sUrl = '/buildings/get_building_details_ajax/'+buildingID;
	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, showBuildingDetailsCallback, null);
}

var showBuildingDetailsCallback = {
	success: function(response) {
		if(response.responseText.substr(0, 5)=='error'){
			YAHOO.util.Dom.get('error_text').innerHTML = response.responseText;
			YAHOO.FQ.errorOverlay.show();
		}
		else{
			YAHOO.util.Dom.get('building_details_container').innerHTML = response.responseText;
			YAHOO.FQ.loaderOverlay.hide();
			YAHOO.FQ.hideMask();
		}
		map.panToLatLon(YAHOO.FQ.myPanToObject);
	}, 
	failure: function(response) {	
	}
}

function switchImage(imageID){
	var images = YAHOO.util.Dom.getElementsByClassName('building_image');
	for(var i=0; i<images.length; i++){
		if(images[i].id == imageID){
			YAHOO.util.Dom.setStyle(images[i].id, 'display', 'block');
			YAHOO.util.Dom.get(images[i].id+'_btn').src = '/img/interior/selected_image.gif'
		}
		else{
			YAHOO.util.Dom.setStyle(images[i].id, 'display', 'none');
			YAHOO.util.Dom.get(images[i].id+'_btn').src = '/img/interior/not_selected_image.gif'
		}
	}
}

YAHOO.util.Event.addListener(window,"load",YAHOO.FQ.mapPageInit);