var homeIcon = new GIcon();
homeIcon.image = "img/star.png";
//homeIcon.shadow = "img/shadow.png";
homeIcon.iconSize = new GSize(18, 18);
//homeIcon.shadowSize = new GSize(22, 22);
homeIcon.iconAnchor = new GPoint(0, 0);
homeIcon.infoWindowAnchor = new GPoint(3, 1);

var hotelIcon = new GIcon();
hotelIcon.image = "img/hotel.png";
//hotelIcon.shadow = "img/shadow.png";
hotelIcon.iconSize = new GSize(24, 24);
//hotelIcon.shadowSize = new GSize(22, 22);
hotelIcon.iconAnchor = new GPoint(0, 0);
hotelIcon.infoWindowAnchor = new GPoint(12, 1);

var markerList = [];

function showDefaultMap() {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(50, -98), 3);
	}
}

function createMarker(point, name, address, icon, id, image) {
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml("<div class=\"infobox\" id=\"marker-" + id + "\"><div class=\"image-box\">" + image + "</div><div class=\"content-box\">" + name + "<br />" + address + "</div><div class=\"clear\">&nbsp;</div></div>");
	});
	markerList[id] = marker;
	return marker;
}

function removeChainFilter() {
	jQuery("#chainFilter").find("option:selected").attr("selected", false);
	jQuery("#locatorForm").submit();
}

function removeBrandFilter() {
	jQuery("input[@type=checkbox]").attr("checked", false);
	jQuery("#locatorForm").submit();
}

function showError(e) {
	jQuery("#error").css("display", "block").html(e);
}

function showMessage(e) {
	jQuery("#error").css({"display": "block", "color": "#3ACD00"}).html(e);
}

function selectField(n) {
	jQuery("input[@type=text]").not("[@name=" + n + "]").val("").parent().removeClass("active");
	jQuery("input[@name=" + n + "]").parent().addClass("active")
}

function showSubChains(o,l) {
	var r = "<h3>Includes:</h3>";
	r += "<ul>";
	for (var h in l) {
		r += "<li>" + l[h] + "</li>";
	}
	r += "</ul>";
	
	var pos = jQuery("#" + o).offset();
	jQuery("#subchains").find(".content").html(r).end().css({"display": "inline", "top" : (pos.top + 40) + "px", "left" : pos.left + "px"});
}

function hideSubChains() {
	jQuery("#subchains").css("display", "none");
}

function hideHotel(hid) {
	var params = {
		action: "hide",
		id: hid
	};
	
	jQuery.get("auth/", params, function(resp) {
		if (resp == "true") alert("Hotel was removed from the map.");
		else alert("There was an error during the process.");
	});
}

function showDirectionForm(t, id, address) {
	var submit_field = (t == 0) ? "saddr" : "daddr";
	var hidden_field = (t == 0) ? "daddr" : "saddr";
	var label_field = (t == 0) ? "Start" : "End";
	var direction_form = '<div id="direction_form" class="directionsform"><form action="http://maps.google.com/maps" method="get" target="_blank">' + 
	label_field + ' address:<br /><input type="text" size="40" maxlength="40" name="' + submit_field + '" id="' + submit_field + '" value="" /><br />' + 
	'<input value="Get Directions" type="submit" class="submit-button" />' + 
	'<input type="hidden" name="' + hidden_field + '" value="' + address + '" />' + 
	'</form></div>';
	jQuery("#marker-" + id).find("#direction_form, #reservation_form").remove().end().find(".directions").append(direction_form);
	markerList[id].openInfoWindowHtml("<div class=\"infobox\" id=\"marker-" + id + "\">" + jQuery("#marker-" + id).html() + "</div>");
}

var months={1:{"name":"Jan","days":31},2:{"name":"Feb","days":28},3:{"name":"Mar","days":31},4:{"name":"Apr","days":30},5:{"name":"May","days":31},6:{"name":"Jun","days":30},7:{"name":"Jul","days":31},8:{"name":"Aug","days":31},9:{"name":"Sep","days":30},10:{"name":"Oct","days":31},11:{"name":"Nov","days":30},12:{"name":"Dec","days":31}};

function showReservationForm(id, hid, city, country, state) {
	var date = readCookie("map_date");
	var doa = new Date();
	var dod = new Date();
	if (date != null) {
		doa.setTime(date.split("|")[0]);
		dod.setTime(date.split("|")[1]);
	} else {
		doa.setTime(doa.getTime() + (24*60*60*1000));
		dod.setTime(doa.getTime() + (7*24*60*60*1000));
	}
	
	var reservation_form = '<div id="reservation_form" class="reservationForm"><form action="http://reservations.hotelmagician.com/nexres/reservations/availability.cgi" onsubmit="return saveReservationDate();" method="get" target="_blank">' + 
	'<input type="hidden" name="city" value="' + city + '" /><input type="hidden" name="country" value="' + country + '" />' + 
	'<input type="hidden" name="header" value="hotels" /><input type="hidden" name="hotels_id" value="' + hid + '" />' + 
	'<input type="hidden" name="lang" value="ENG" /><input type="hidden" name="num_adults" value="2" />' + 
	'<input type="hidden" name="num_children" value="0" /><input type="hidden" name="num_rooms" value="1" />' + 
	'<input type="hidden" name="src" value="10016649" /><input type="hidden" name="state" value="' + state + '" />';
	
	reservation_form += 'Check-in date: <select name="doa_mm" id="doa_mm">';
	for (var i = 1; i <= 12; i++) {
		reservation_form += '<option value="' + ((i < 10) ? "0" + i : i) + '"' + ((doa.getMonth() == i - 1) ? ' selected="selected"' : '') + '>' + months[i]["name"] + '</option>';
	}
	reservation_form += '</select> / <select name="doa_dd" id="doa_dd">';
	for (var i = 1; i <= 31; i++) {
		reservation_form += '<option value="' + ((i < 10) ? "0" + i : i) + '"' + ((doa.getDate() == i) ? ' selected="selected"' : '') + '>' + i + '</option>';
	}
	reservation_form += '</select> / <select name="doa_yy" id="doa_yy">';
	for (var i = doa.getFullYear(); i <= (doa.getFullYear() + 1); i++) {
		reservation_form += '<option value="' + i + '"' + ((doa.getFullYear() == i) ? ' selected="selected"' : '') + '>' + i + '</option>';
	}
	reservation_form += '</select><br />';
	
	reservation_form += 'Check-out date: <select name="dod_mm" id="dod_mm">';
	for (var i = 1; i <= 12; i++) {
		reservation_form += '<option value="' + ((i < 10) ? "0" + i : i) + '"' + ((dod.getMonth() == i - 1) ? ' selected="selected"' : '') + '>' + months[i]["name"] + '</option>';
	}
	reservation_form += '</select> / <select name="dod_dd" id="dod_dd">';
	for (var i = 1; i <= 31; i++) {
		reservation_form += '<option value="' + ((i < 10) ? "0" + i : i) + '"' + ((dod.getDate() == i) ? ' selected="selected"' : '') + '>' + i + '</option>';
	}
	reservation_form += '</select> / <select name="dod_yy" id="dod_yy">';
	for (var i = dod.getFullYear(); i <= (dod.getFullYear() + 1); i++) {
		reservation_form += '<option value="' + i + '"' + ((dod.getFullYear() == i) ? ' selected="selected"' : '') + '>' + i + '</option>';
	}
	reservation_form += '</select><br />';
	
	reservation_form += '<input value="Submit" type="submit" class="submit-button" /></form></div>';
	jQuery("#marker-" + id).find("#direction_form, #reservation_form").remove().end().find(".reservation").append(reservation_form);
	markerList[id].openInfoWindowHtml("<div class=\"infobox\" id=\"marker-" + id + "\">" + jQuery("#marker-" + id).html() + "</div>");
}

function saveReservationDate() {
	var e = "";
	var doa = new Date();
	var dod = new Date();
	var today = new Date();
	
	var doa_dd = (jQuery("#doa_dd").val().charAt(0) == "0") ? jQuery("#doa_dd").val().charAt(1) : jQuery("#doa_dd").val();
	var dod_dd = (jQuery("#dod_dd").val().charAt(0) == "0") ? jQuery("#dod_dd").val().charAt(1) : jQuery("#dod_dd").val();
	var doa_mm = (jQuery("#doa_mm").val().charAt(0) == "0") ? jQuery("#doa_mm").val().charAt(1) : jQuery("#doa_mm").val();
	var dod_mm = (jQuery("#dod_mm").val().charAt(0) == "0") ? jQuery("#dod_mm").val().charAt(1) : jQuery("#dod_mm").val();
	
	doa.setFullYear(jQuery("#doa_yy").val(), doa_mm - 1, doa_dd);
	dod.setFullYear(jQuery("#dod_yy").val(), dod_mm - 1, dod_dd);
	
	if (doa.getTime() > dod.getTime()) e = "Your check-in date cannot be later than your check-out date.";
	if (doa.getTime() < today.getTime()) e = "Your check-in date cannot be before today.";
	if (dod.getTime() < today.getTime()) e = "Your check-out date cannot be before today.";
	if (doa_dd > months[doa_mm]["days"]) e = "Your check-in date doesn't validate.";
	if (dod_dd > months[dod_mm]["days"]) e = "Your check-out date doesn't validate.";
	
	if (e == "") {
		createCookie("map_date", doa.getTime() + "|" + dod.getTime(), 1);
		return true;
	} else {
		alert(e);
		return false;
	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
