
gmapDropDownURLs = {
		ajaxURL: param.hostName + "/lounge/ajax",
		regionDetailURL: param.hostName + "/destinations/region_detail.jsp"
};

$j(document).ready( function() {
	window.countrySelect = $j('#gmapCountrySelect');
	window.regionSelect = $j('#gmapRegionSelect');
	window.goButton = $j('#gmapGoButton');

	countrySelect.change( function() {
		country = window.countrySelect.val();
		if( country != "" ) {
			gmap_fillRegionSelect( country );
		}
	});

	if( param.smallMap != null && param.smallMap != "" ) {
		regionSelect.change( function() {
			if( window.regionSelect.val() != null && window.regionSelect.val() != "" ) { 
				window.location.href = 
					gmapDropDownURLs.regionDetailURL + "?regionId=" + 
					window.regionSelect.val();
			}
		});
	}

	goButton.click( function() {
		window.location.href = 
			gmapDropDownURLs.regionDetailURL + "?regionId=" + 
				window.regionSelect.val();
	});

	gmap_fillCountrySelect();
	
	window.skiinfoMap.addListener( "ViewportUpdated", 
			function( viewport ) {
				var regionId = 0;
				var countryCode = 0;
		
				regionManager = viewport.getRegionManager(); 
		
				if( param.tourId != null && param.tourId != "" ) {
					tourData = regionManager.getTour( param.tourId );
					if( tourData != null && tourData.regionId != null ) {
						regionId = tourData.regionId; 
					}
					if( tourData.c != null && tourData.c != "" ) {
						countryCode = tourData.c;
					}
				} else if( param.destinationId != null && param.destinationId != "" ) {
					destinationData = 
						regionManager.getDestination( param.destinationId );
					if( destinationData != null && destinationData.regionId != null ) {
						regionId = destinationData.regionId; 
					}
					if( destinationData.c != null && destinationData.c != "" ) {
						countryCode = destinationData.c;
					}
				}
				
				if( param.regionId != "" ) {
					regionId = param.regionId; 
				}
				
				if( param.countryCode != null && param.countryCode != "" ) {
					countryCode = param.countryCode;
				}
				
				if( regionId != 0 ) {
					if( countryCode == 0 ) {
						regionData = regionManager.getRegion( regionId );
						if( regionData != null ) { 
							countryCode = regionData.countrycode;
						}
					}
					gmap_setSelectBoxes( countryCode, regionId );
				}
			} );
} );

function gmap_setSelectBoxes( countryCode, regionId ) {
	gmap_fillCountrySelect( countryCode, regionId );
}

function gmap_fillCountrySelect( countryCode, regionId ) {
	window.countrySelect.append( "<option>Lade Daten...</option>" );
	$j.getJSON(gmapDropDownURLs.ajaxURL + "?callback=?", {'action': 'getCountries', 'USERLANG': 'DE', 'product': 'summerportal'}, function(data) {
		window.countrySelect.html("");
		//window.countrySelect.removeOption(/.*/);
		for( var key in data ) {
			window.countrySelect.append( "<option value=\"" + key + "\">" + 
										  data[key] + "</option>" );
		}

		//window.countrySelect.addOption(data, false);
		selectCountryText = "Land w" + String.fromCharCode( 0xe4 ) + "hlen";
		
		window.countrySelect.append( "<option value=\"\">" + selectCountryText + "</option>" );
		if( countryCode != null ) {
			window.countrySelect.val( countryCode );
			// Do not trigger the change event.
			gmap_fillRegionSelect( countryCode, regionId );
		} else {
			window.countrySelect.val( '' );
		}
	});
}

function gmap_fillRegionSelect( countryCode, regionId ) {
	window.regionSelect.append( "<option>Lade Daten...</option>" );
//	window.regionSelect.addOption({'': 'Lade Daten...'});
	$j.getJSON(gmapDropDownURLs.ajaxURL + "?callback=?", {'action':'getSummerRegionsJson', 'USERLANG': 'DE', 'countryCode': countryCode}, function(data) {
		window.regionSelect.html( "" );
		window.regionSelect.append( "<option value=\"\">Region w" + 
									 String.fromCharCode( 0xe4 ) + 
									 "hlen</option>" );
		for( var key in data ) {
			window.regionSelect.append( "<option value=\"" + key + "\">" + 
										  data[key] + "</option>" );
		}
		
		if( regionId != null ) {
			window.regionSelect.val( regionId );
		} else {
			window.regionSelect.val( '' );
		}
	});
}




