locationsArray = new Array();

window.onload = function(){

	init();
	
	if(preset){
		launchPreset();
	}
	
	if(presetProp){
		launchPresetProp();
	}
	
}

function init(){
	
	resetCountriesDD();
	resetStatesDD();
	resetCitiesDD();
	resetBrandsDD();

	//get locations xml for dds
	new Ajax.Request(ajax_url, {method:'post',postBody:'action=getlocations',onComplete:parseLocationsXML});

}

parseLocationsXML = function(t){
	
	//create locations array
	var tags_record = t.responseXML.getElementsByTagName('record');
	
	locationsArray = new Array();
	
	var temp_array = new Array();
	
	for (var i=0;i<tags_record.length;i++){
					
		var record = tags_record[i];
		
		temp_array = new Array();
					
		for(var k=0;k<record.childNodes.length;k++){
						
			if(record.childNodes[k].firstChild!=null){
				if(record.childNodes[k].nodeType != 1) continue;
				if(record.childNodes[k].nodeName=="country"){ temp_array["country"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="state"){ temp_array["state"] = record.childNodes[k].firstChild.nodeValue; }
				if(record.childNodes[k].nodeName=="city"){ temp_array["city"] = record.childNodes[k].firstChild.nodeValue; }
			}
					
		}
		locationsArray.push(temp_array);
		
	}
	
	fillCountriesDD();
	
}

function fillCountriesDD(){

	var el_option;
	
	resetCountriesDD();
	resetStatesDD();
	resetCitiesDD();
	resetBrandsDD();
		
	for(var i=0;i<locationsArray.length;i++){
	
		if(!$('form_country_'+locationsArray[i]['country'])){
		
			//fill in country
			el_option = new Element('option');
			el_option.id = "form_country_" + locationsArray[i]['country'];
			el_option.value = locationsArray[i]['country'];
			el_option.innerHTML = locationsArray[i]['country'];
			$('form_country').appendChild(el_option);
			
		}
	
	}

}

function fillStatesDD(){

	var activeCountry = $F('form_country');
	var el_option;
	var tempArray = new Array();
	
	resetStatesDD();
	resetCitiesDD();
	resetBrandsDD();
	
	if(activeCountry){
		
		//create temp array
		for(var i=0;i<locationsArray.length;i++){
		
			if(locationsArray[i]['country']==activeCountry){
				
				tempArray.push(locationsArray[i]['state']);
				
			}
		
		}
		
		//modify array
		tempArray = tempArray.unique();
		tempArray = tempArray.sort();
		
		//create options
		for(var i=0;i<tempArray.length;i++){
			
				el_option = new Element('option');
				el_option.id = "form_state_" + tempArray[i];
				el_option.value = tempArray[i];
				el_option.innerHTML = tempArray[i];
				$('form_state').appendChild(el_option);
		
		}
		
	}

}

function fillCitiesDD(){

	var activeCountry = $F('form_country');
	var activeState = $F('form_state');
	var el_option;
	var tempArray = new Array();
	
	resetCitiesDD();
	resetBrandsDD();
	
	if(activeCountry && activeState){
	
		//create temp array
		for(var i=0;i<locationsArray.length;i++){
		
			if(locationsArray[i]['country']==activeCountry && locationsArray[i]['state']==activeState){
				
				tempArray.push(locationsArray[i]['city']);
				
			}
		
		}
		
		//modify array
		tempArray = tempArray.unique();
		tempArray = tempArray.sort();
		
		//create options
		for(var i=0;i<tempArray.length;i++){
			
				el_option = new Element('option');
				el_option.id = "form_city_" + tempArray[i];
				el_option.value = tempArray[i];
				el_option.innerHTML = tempArray[i];
				$('form_city').appendChild(el_option);
		
		}
		
	}

}

function getCityBrands(){

	var activeCountry = $F('form_country');
	var activeState = $F('form_state');
	var activeCity = $F('form_city');
	
	resetBrandsDD();
	
	//get locations xml for dds
	new Ajax.Request(ajax_url, {method:'post',postBody:'action=getbrands&country='+activeCountry+'&state='+activeState+'&city='+activeCity,onComplete:parseBrandsXML});

}

parseBrandsXML = function(t){
	
	//create locations array
	var tags_record = t.responseXML.getElementsByTagName('record');
	
	var temp_array = new Array();
	
	for (var i=0;i<tags_record.length;i++){
					
		var record = tags_record[i];
					
		for(var k=0;k<record.childNodes.length;k++){
						
			if(record.childNodes[k].firstChild!=null){
				if(record.childNodes[k].nodeType != 1) continue;
				if(record.childNodes[k].nodeName=="brand"){ temp_array.push(record.childNodes[k].firstChild.nodeValue);  }
			}
					
		}
		
	}
	
	//modify array
	temp_array = temp_array.unique();
	temp_array = temp_array.sort();

	//create options
	for(var i=0;i<temp_array.length;i++){
		
			el_option = new Element('option');
			el_option.id = "form_brand_" + temp_array[i];
			el_option.value = temp_array[i];
			el_option.innerHTML = convertBrand2(temp_array[i]);
			$('form_brand').appendChild(el_option);
	
	}
	
}

function launchPreset(){

	var activeCity = presetCity;
	var activeState = presetState;
	
	$('propbox').style.display = "";
	
	clearHotels();
	
	if(activeCity!=''){
		$('city_title').innerHTML = activeCity;
	}else{
		$('city_title').innerHTML = activeState;
	}
	
	map.clearOverlays();

	$('map_showhide').innerHTML = "Show Area Map";
	$('map_link').style.display = "";
	$('map_holder').style.display = "none";
	latlng = new Array();
	
	new Ajax.Request(ajax_url, {method:'post',postBody:'action=getcity&city='+activeCity+"&state="+activeState,onComplete:parseCityXML});

}

function launchPresetProp(){

	var activePropId = presetPropId;
	
	$('propbox').style.display = "";
	
	clearHotels();
	
	$('city_title').innerHTML = '';
	
	map.clearOverlays();

	$('map_showhide').innerHTML = "Show Area Map";
	$('map_link').style.display = "";
	$('map_holder').style.display = "none";
	latlng = new Array();
	
	new Ajax.Request(ajax_url, {method:'post',postBody:'action=getprop&prop_id='+activePropId,onComplete:parseCityXML});

}

function launchCity(){

	var activeCity = $F('form_city');
	var activeState = $F('form_state');
	var activeBrand = $F('form_brand');
	
	$('propbox').style.display = "";
	
	clearHotels();
	
	if(activeCity=='Select City/Area'){ activeCity = ''; }
	
	if(activeCity!=''){
		$('city_title').innerHTML = activeCity;
	}else{
		$('city_title').innerHTML = activeState;
	}
	
	map.clearOverlays();

	$('map_showhide').innerHTML = "Show Area Map";
	$('map_link').style.display = "";
	$('map_holder').style.display = "none";
	latlng = new Array();
	
	new Ajax.Request(ajax_url, {method:'post',postBody:'action=getcity&city='+activeCity+"&state="+activeState+"&brand="+activeBrand,onComplete:parseCityXML});
	
}

parseCityXML = function(t){
	
	var tags_record = t.responseXML.getElementsByTagName('record');
	
	var temp_array = new Array();
	
	var hotelsArray = new Array();
	
	for (var i=0;i<tags_record.length;i++){
					
		var record = tags_record[i];
		
		temp_array = new Array();
					
		for(var k=0;k<record.childNodes.length;k++){
						
			if(record.childNodes[k].firstChild!=null){
				if(record.childNodes[k].nodeType != 1) continue;
				if(record.childNodes[k].nodeName=="prop_name"){ temp_array["prop_name"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="brand"){ temp_array["brand"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="address1"){ temp_array["address1"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="city"){ temp_array["city"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="state"){ temp_array["state"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="zip"){ temp_array["zip"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="country"){ temp_array["country"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="telno"){ temp_array["telno"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="desc"){ temp_array["desc"] = record.childNodes[k].firstChild.nodeValue;  }
				if(record.childNodes[k].nodeName=="region"){ temp_array["region"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="hotel_contact"){ temp_array["hotel_contact"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="event_page_ur"){ temp_array["event_page_ur"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="floorplan_url"){ temp_array["floorplan_url"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="photo_url"){ temp_array["photo_url"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="particip"){ temp_array["particip"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="newprop"){ temp_array["newprop"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="opendate"){ temp_array["opendate"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="newreno"){ temp_array["newreno"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="renodate"){ temp_array["renodate"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="scc"){ temp_array["scc"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="sr"){ temp_array["sr"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="airp"){ temp_array["airp"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="floor_plan_matrix"){ temp_array["floor_plan_matrix"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="lat"){ temp_array["lat"] = record.childNodes[k].firstChild.nodeValue; } 
				if(record.childNodes[k].nodeName=="lng"){ temp_array["lng"] = record.childNodes[k].firstChild.nodeValue; } 
				
				if(record.childNodes[k].nodeName=="prop_id"){ 
					temp_array["prop_id"] = record.childNodes[k].firstChild.nodeValue;  
					temp_array["thumbnail"] = "http://www.starwoodpromos.com/lib/property_thumbnails/" + temp_array["prop_id"] + ".jpg";
				}
			}
					
		}
		
		hotelsArray.push(temp_array);
		
	}
	
	$('city_title').innerHTML = hotelsArray[0]['city'];
	
	fillHotels(hotelsArray);
	
}

function fillHotels(hotelsArray){
	
	var open = true;
	
	hotelsArray = hotelsArray.shuffle();
	
	if(hotelsArray.length>2){ open = false; }
		
	for(var k=0;k<hotelsArray.length;k++){
		
		createHotel(hotelsArray[k],open);
	
	}


}

function createHotel(row_array,open){
	
	var tempOption;
	var el_special;
	
	//main hotel box
	var el_hotel = new Element('div');
	el_hotel.className = "hotel";
	el_hotel.id = "hotel_"+row_array['prop_id'];
	
	//titlebar link
	var el_titlebar_a = new Element('a');
	el_titlebar_a.href = "#";
	el_titlebar_a.className = 'hotel_titlebar_a';
	el_titlebar_a.onclick = function(){ toggleBlock(row_array['prop_id']); return false; }
	el_hotel.appendChild(el_titlebar_a);
	
	//titlebar
	var el_titlebar = new Element('div');
	el_titlebar.id = "hotel_"+row_array['prop_id']+"_titlebar";
	el_titlebar.className = "titlebar";
	if(open){ 
		el_titlebar.innerHTML = "[-] " + row_array["prop_name"];
	}else{
		el_titlebar.innerHTML = "[+] " + row_array["prop_name"];
	}
	el_titlebar_a.appendChild(el_titlebar);
	
	//block
	var el_block = new Element('div');
	el_block.id = "hotel_"+row_array['prop_id']+"_block";
	if(!open){ el_block.style.display = 'none'; }
	el_block.className = "block";
	
	el_hotel.appendChild(el_block);
	
	//do we show the special bar
	if(row_array['newreno']=='1'){
	
		var el_renodate = row_array['renodate'];
		var el_year = el_renodate.substr(0,4);
		var el_month = el_renodate.substr(5,2);
		
		if(el_month=="01"){
			el_month =  "January";
		}else if(el_month=="02"){
			el_month =  "February";
		}else if(el_month=="03"){
			el_month =  "March";
		}else if(el_month=="04"){
			el_month =  "April";
		}else if(el_month=="05"){
			el_month =  "May";
		}else if(el_month=="06"){
			el_month =  "June";
		}else if(el_month=="07"){
			el_month =  "July";
		}else if(el_month=="08"){
			el_month =  "August";
		}else if(el_month=="09"){
			el_month =  "September";
		}else if(el_month=="10"){
			el_month =  "October";
		}else if(el_month=="11"){
			el_month =  "November";
		}else if(el_month=="12"){
			el_month =  "December";
		}		
		
		el_special = new Element('div');
		el_special.className = "special renovated";
		el_special.innerHTML = "NEW RENOVATION  •  " + el_month + " " + el_year;
		el_block.appendChild(el_special);
		
	}else if(row_array['newprop']=='1'){
		
		el_special = new Element('div');
		el_special.className = "special new";
		el_special.innerHTML = "NEW HOTEL";
		el_block.appendChild(el_special);
		
	}else if(row_array['scc']=='1'){
		
		el_special = new Element('div');
		el_special.className = "special convention";
		el_special.innerHTML = "STARWOOD CONVENTION COLLECTION PROPERTY";
		el_block.appendChild(el_special);
		
	}else if(row_array['airp']=='1'){
		
		el_special = new Element('div');
		el_special.className = "special airport";
		el_special.innerHTML = "STARWOOD AIRPORT COLLECTION PROPERTY";
		el_block.appendChild(el_special);
		
	}
	
	//fieldset
	var el_fieldset = new Element('fieldset');
	el_block.appendChild(el_fieldset);
	
	//left
	var el_left = new Element('div');
	el_left.className = 'hotel_left';
	el_fieldset.appendChild(el_left);
	
	//thumbnail
	var el_thumbnail = new Element('img');
	el_thumbnail.className = 'hotel_tn';
	el_thumbnail.src = row_array['thumbnail'];
	el_left.appendChild(el_thumbnail);
	
	//photos link
	var el_photos_link = new Element('a');
	el_photos_link.href = "#";
	el_photos_link.innerHTML = "Photos";
	el_photos_link.onclick = function(){ launchGallery("http://www.starwoodhotels.com/" + convertBrand3(row_array['brand']) + "/property/photos/popup.html?propertyID=" + row_array['prop_id']); }
	el_left.appendChild(el_photos_link);
		
	if(row_array['floorplan_url']!='' && row_array['floorplan_url']!=null){	
		
		//floor plans link
		var el_floorplans_link = new Element('a');
		el_floorplans_link.href = "#";
		el_floorplans_link.innerHTML = "Floor Plans";
		el_floorplans_link.onclick = function(){ window.open(row_array['floorplan_url']); }
		el_left.appendChild(el_floorplans_link);
	
	}
	
	if(row_array['floor_plan_matrix']!='' && row_array['floor_plan_matrix']!=null){
		
		//floor plan matrix space link
		var el_meetingspace_link = new Element('a');
		el_meetingspace_link.href = "#";
		el_meetingspace_link.innerHTML = "Meeting Matrix Certified Room Diagrams&reg;";
		el_meetingspace_link.onclick = function(){ window.open(row_array['floor_plan_matrix']); }
		el_left.appendChild(el_meetingspace_link);
		
	}
	
	//mid
	var el_mid = new Element('div');
	el_mid.className = 'hotel_mid';
	el_fieldset.appendChild(el_mid);
	
	//hotel address
	var el_hotel_address = new Element('div');
	el_hotel_address.className = "hotel_address";
	el_hotel_address.innerHTML = row_array['address1'] + "<br>";
	if(row_array['hotel_contact']!=''){
		el_hotel_address.innerHTML += "Contact: " + row_array['hotel_contact'] + " ";
	}
	el_hotel_address.innerHTML += "Phone: " + row_array['telno'];
	el_mid.appendChild(el_hotel_address);
	
	//show on map
	showAddress(row_array['address1'],row_array['prop_name']);
	
	//hotel desc
	var el_hotel_description = new Element('div');
	el_hotel_description.className = "hotel_description";
	el_hotel_description.innerHTML = row_array['desc'];
	el_mid.appendChild(el_hotel_description);
	
	//meetings submit link
	var el_right = new Element('div');
	el_right.className = 'hotel_right';
	if(gso){
		el_right.innerHTML = '<a href="http://www2.teamhot.com/rfp/?c=gso" target="_blank"><img src="'+prepend+'images/btn_submitrfp.gif"></a>';
	}else{
		el_right.innerHTML = '<a href="http://www2.teamhot.com/rfp/?c=na'+row_array['prop_id']+'" target="_blank"><img src="'+prepend+'images/btn_submitrfp.gif"></a>';
	}
	el_fieldset.appendChild(el_right);
	
	$('hotels').appendChild(el_hotel);

}

function launchGallery(url){
		window.open(url,'photosPopUp','width=650,height=440,resizable=no,scrollbars=no,status=no');
}

function toggleBlock(id){
	
	var el = $("hotel_"+id+"_block");
	var el_titlebar = $("hotel_"+id+"_titlebar");
	
	if(el.style.display=="none"){
		el.style.display = "";
		el_titlebar.innerHTML = el_titlebar.innerHTML.replace('+','-');
	}else{
		el.style.display = "none";
		el_titlebar.innerHTML = el_titlebar.innerHTML.replace('-','+');
	}
	
}

function clearHotels(){

	//clear hotels
	while ( $('hotels').childNodes.length >= 1 ){
		$('hotels').removeChild( $('hotels').firstChild );     
    }

}

function closePropBox(){
	
	$('propbox').style.display = "none";
	
	init();
	
}


function menuSelect(num){

	if(currentSlide!==num){

		$('menu'+currentSlide).className = "";
		$('menu'+num).className = "active";
		
		$('slide'+currentSlide).fade({ duration: 1.0, fps:60 });
		$('slide'+num).appear({ duration: 1.0, fps:60 });
		
		currentSlide = num;
	
		init();
		
	}

}

function selectLink(el){

	if($F(el)){
	
		window.open($F(el));
	
	}

}

function toggleMap(){
	
	if($('map_holder').style.display == 'none'){
		
		$('map_holder').style.display = '';
		$('map_showhide').innerHTML = "Hide Map";
		mapGFocus();
	
	}else{
	
		$('map_holder').style.display = 'none';
		$('map_showhide').innerHTML = "View Map";
	
	}
	
}

function launchTerms(){
		window.open('terms.html','terms','left=20,top=20,width=500,height=450,toolbar=0,resizable=1,menu=0,scrollbars=0,status=0');
}

function resetCountriesDD(){

	//clear states
	while ( $('form_country').childNodes.length >= 1 ){
		$('form_country').removeChild( $('form_country').firstChild );     
    }
	var el_option = new Element('option');
	el_option.innerHTML = "Select Country";
	$('form_country').appendChild(el_option);

}

function resetStatesDD(){

	//clear states
	while ( $('form_state').childNodes.length >= 1 ){
		$('form_state').removeChild( $('form_state').firstChild );     
    }
	var el_option = new Element('option');
	el_option.innerHTML = "Select State/Province";
	$('form_state').appendChild(el_option);

}

function resetCitiesDD(){

	//clear states
	while ( $('form_city').childNodes.length >= 1 ){
		$('form_city').removeChild( $('form_city').firstChild );     
    }
	var el_option = new Element('option');
	el_option.innerHTML = "Select City/Area";
	$('form_city').appendChild(el_option);

}

function resetBrandsDD(){

	//clear states
	while ( $('form_brand').childNodes.length >= 1 ){
		$('form_brand').removeChild( $('form_brand').firstChild );     
    }
	var el_option = new Element('option');
	el_option.innerHTML = "All Brands";
	el_option.value = "";
	$('form_brand').appendChild(el_option);

}


