//see if tour is for multiple or single grade(s)
var accomType;
var gradeParent;
var gblTourReady = false;




function sniffTourType(accommodationType) {
	//define xml location
	accomType = accommodationType;
	if (accomType == undefined) {
		//accomType = $.query.get("tour");
		
		if ((typeof(HavenTridionJSNamespace) !='undefined') && (typeof(HavenTridionJSNamespace.AccomTourParam) !='undefined') && (HavenTridionJSNamespace.AccomTourParam != null) && (HavenTridionJSNamespace.AccomTourParam != ""))
                {  
		accomType = HavenTridionJSNamespace.AccomTourParam;
		}
		else
		{
		accomType = '';
		}
	}
	//declare vars and assign querystring values
	var gradeToGet, needTabs
	//gradeToGet = $.query.get("grade");
	if ((typeof(HavenTridionJSNamespace) !='undefined') && (typeof(HavenTridionJSNamespace.AccomGradeParam) !='undefined') && (HavenTridionJSNamespace.AccomGradeParam != null) && (HavenTridionJSNamespace.AccomGradeParam != ""))
        {
	gradeToGet = HavenTridionJSNamespace.AccomGradeParam;
	}
	else
	{
	gradeToGet = '';
	}
	if ((typeof(HavenTridionJSNamespace) !='undefined') && (typeof(HavenTridionJSNamespace.AccomLinkParam) !='undefined') && (HavenTridionJSNamespace.AccomLinkParam != null) && (HavenTridionJSNamespace.AccomLinkParam != ""))
        {  
	intExtLinks = HavenTridionJSNamespace.AccomLinkParam;
	}
	else
	{
	intExtLinks = '';
	}
	
	
	if (intExtLinks == "ext") {
		//convert landing lozenge and menu links to point to external page
		importGradeLozenges("ext");
//removed 2010-03-02
//		importGradeSubnav("ext"); 
		hideNavTabs();
		//navInit();
		$("DIV#tour-title").hide();
	} else {
		//internal tour launching
		if (gradeToGet == "") {
			//multiple grades
			getTourContent();
			tourInit();
		} else {
			//single grade
			getGradeContent(gradeToGet);
		}			
	}
}

function getTourContent() {
	importGradeLozenges();
	importGrades();
//removed 2010-03-02
//	importGradeSubnav();
//removed 2010-03-02
//	importRoomSubnav();
//added 2010-03-20 - PHASE II START
		hideNavTabs();
//added 2010-03-20 - PHASE II END
}

function getGradeContent(gradeToGet) {
	var gradeToGet = gradeToGet;
	importSingleGrade(gradeToGet);
}

/*
##############################			 XML BUILD START			##################################
*/
//build grade content layers
//import grade content
function importSingleGrade(gradeToGet) {
	var gradeID = gradeToGet;
	var gradeHTML;
	var gradeRoomHTML;

	$("DIV#tour-title").hide();
	
	//declare grade landing div
	gradeHTML = $("<div id=\"" + gradeID + "-landing\" class=\"tour-panel\"></div>");
	gradeHTML.appendTo("DIV#tour-area");
	//declare grade rooms landing div
	gradeLandingHTML = $("<div id=\"" + gradeID + "-rooms-landing\" class=\"grade-panel\"><h2>Please select a room</h2><ul class=\"landing-image-list\"></ul></div>");
	gradeLandingHTML.appendTo("DIV#" + gradeID + "-landing");
	//declare grade room divs
	gradeRoomHTML = $("<div id=\"" + gradeID + "-rooms-tours\" class=\"grade-panel\"></div>");
	gradeRoomHTML.appendTo("DIV#" + gradeID + "-landing");

	$("#" + gradeID + "-rooms-landing, #" + gradeID + "-features").hide();
	importRoomLozenges(gradeID);
            
	importRooms(gradeID);
	showSingleGrade(gradeID);
	assignRoomButton(gradeID);
	showRoomButtonLink();
	getGradeParent(accomType);
}

//build Grade subnav list
//build Grade Landing lozenge list
function getGradeParent(accomType) {
//	alert(accomType);
	$.get("/xml/" + accomType + "/grades.xml", function(data) {
		gradeParent = $(data).find("gradeParent").text();
//		alert(gradeParent);
		relinkAccomBtn(gradeParent);
	});
}
//build Grade subnav list
//build Grade Landing lozenge list
function importGradeLozenges(ext) {
//	alert(accomType);
	$.get("/xml/" + accomType + "/grades.xml", function(data) {
		$(data).find("grade").each(function() {
			var gradeId = $(this).attr("id");
			var gradeLink = $(this).find("gradeLink").text();
			var gradeName = $(this).find("gradeName").text();
			var gradeTitle = $(this).find("gradeTitle").text();
			var gradeThumb = $(this).find("gradeThumb").text();
			var gradeAlt = $(this).find("gradeAlt").text();
			var gradeLozengeTitle = $(this).find("gradeLozengeTitle").text();
			var gradeLozengeText = $(this).find("gradeLozengeText").text();
			
			var linkTo = ext;
			var fullLinkTo
			if (linkTo == "ext") {
				fullLinkTo = gradeLink + "?tabs=1&grade=" + gradeId;
				hidePager();
			} else {
				fullLinkTo = "#"
			}	
		
			$("<li></li>")
			.html("<a href=\"" + fullLinkTo + "\" id=\"" + gradeId + "\" title=\"" + gradeTitle + "\"><img src=\"" + gradeThumb + "\" width=\"123\" height=\"145\" alt=\"" + gradeAlt + "\" /></a>\n<a href=\"" + fullLinkTo + "\" id=\"" + gradeId + "-lozenge\" class=\"grades-landing-lozenge\"><span><strong>" + gradeLozengeTitle + "</strong><br />" + gradeLozengeText + "</span></a>")
			.appendTo("#grades-landing > UL.landing-image-list");
		});
		//recall js fcns grouped with this AJAX call
		showGrade();
		showGradeLanding();
	});
}

//build grade content layers
//import grade content
function importGrades() {
	var gradeID;
	var gradeHTML;
	var gradeLandingHTML;
	var gradeRoomHTML;

	//generate grade layers	
	$.get("/xml/" + accomType + "/grades.xml", function(gradeData) {
		$(gradeData).find("grade").each(function() {
			//get grade id
			gradeID = $(this).attr("id");
			//declare grade landing div
			gradeHTML = $("<div id=\"" + gradeID + "-landing\" class=\"tour-panel\"></div>");
			gradeHTML.appendTo("DIV#tour-area");
			//declare grade rooms landing div
			gradeLandingHTML = $("<div id=\"" + gradeID + "-rooms-landing\" class=\"grade-panel\"><h2>Please select a room</h2><ul class=\"landing-image-list\"></ul></div>");
			gradeLandingHTML.appendTo("DIV#" + gradeID + "-landing");
			//declare grade room divs
			gradeRoomHTML = $("<div id=\"" + gradeID + "-rooms-tours\" class=\"grade-panel\"></div>");
			gradeRoomHTML.appendTo("DIV#" + gradeID + "-landing");

			importRoomLozenges(gradeID);
			importRooms(gradeID);
			importFeature(gradeID);
		});
	});
}

//build Room Landing lozenge list
function importRoomLozenges(gradeID) {
	$.get("/xml/" + accomType + "/" + gradeID + ".xml", function(data) {
		$(data).find("room").each(function() {
			
			var roomID = $(this).attr("id");
			var roomThumb = $(this).find("roomThumb").text();
			var roomAlt = $(this).find("roomAlt").text();
			var roomTitle = $(this).find("roomTitle").text();
			var imgHtml = "<img src=\"" + roomThumb + "\" width=\"123\" height=\"145\" alt=\"" + roomAlt + "\" />";

			$("<li></li>")
			.html("<a href=\"#\" id=\"" + gradeID + "-" + roomID + "\" title=\"" + roomTitle + "\"><img src=\"" + roomThumb + "\" width=\"123\" height=\"145\" alt=\"" + roomAlt + "\" /></a>")
			.appendTo("#" + gradeID + "-rooms-landing > UL.landing-image-list");
		});
		//recall js fcns grouped with this AJAX call
	//	showGrade();
	});
}

//build Room layers
function importRooms(gradeID) {
	$.get("/xml/" + accomType + "/" + gradeID + ".xml", function(data) {
		var roomHTML = "";
		$(data).find("room").each(function() {
			var roomID = $(this).attr("id");
			var roomImage = $(this).find("roomImage").text();
			var roomAlt = $(this).find("roomAlt").text();
			$("<div id=\"" + gradeID + "-" + roomID + "-tour\" class=\"room-panel\"><img src=\"" + roomImage + "\" width=\"586\" height=\"367\" alt=\"" + roomAlt + "\" /></div>")
			.appendTo("#" + gradeID + "-rooms-tours");
			
			importBubbles(gradeID, roomID);
		});
	});
}

//import room bubble layers
function importBubbles(gradeID, roomID) {
	$.get("/xml/" + accomType + "/" + gradeID + ".xml", function(data) {
		$(data).find("room#"+ roomID).each(function() {

			$(this).find("bubble").each(function() {
				var bubbleId = $(this).attr("id");
				var bubbleXPos = $(this).find("bubbleXpos").text();
				var bubbleYPos = $(this).find("bubbleYpos").text();
				var bubbleArrow = $(this).find("bubbleArrow").text();
				var bubblePos = $(this).find("bubblePos").text();
				var bubbleTitle = $(this).find("bubbleTitle").text();
				var bubbleText = $(this).find("bubbleText").text();
				var bubbleImage = $(this).find("bubbleImage").attr("present");
				if (bubbleImage == "yes") {
					var bubbleImageSrc = $(this).find("bubbleImage").text();
					var bubbleImageAlt = $(this).find("bubbleImageAlt").text();
					var bubbleImageWidth = $(this).find("bubbleImageWidth").text();
					var bubbleImageHeight = $(this).find("bubbleImageHeight").text();
					bubbleImage = "<p><img src=\"" + bubbleImageSrc + "\" width=\"" + bubbleImageWidth + "\" height=\"" + bubbleImageHeight + "\" alt=\"" + bubbleImageAlt + "\" /></p>";
				} else {
					bubbleImage = "";
				}
				var bubbleHTML = $("<div id=\"" + gradeID + "-" + bubbleId + "\" class=\"bubble\" style=\"top: " + bubbleYPos + "px; left: " + bubbleXPos + "px;\"><div class=\"crosshair-container\"><a href=\"#\" class=\"crosshair\" arrow=\"" + bubbleArrow + "\" pos=\"" + bubblePos + "\" id=\"" + gradeID + "-" + bubbleId + "-crosshair\"><img src=\"/Images/ae/tour/hotspot_on.gif\" width=\"27\" height=\"27\" alt=\"\" /></a></div><div id=\"" + gradeID + "-" + bubbleId + "-details\" class=\"bubble-details\"><div class=\"bubble-head\"></div><div class=\"bubble-content\"><p class=\"bubble-title\">" + bubbleTitle + "</p><div class=\"bubble-close\"><a href=\"#\" title=\"close\" id=\"" + bubbleId + "-close\"><img src=\"/Images/ae/tour/bubble-close.gif\" width=\"13\" height=\"13\" alt=\"Close\" /></a></div>" + bubbleImage + bubbleText + "</div><div class=\"bubble-foot\"></div></div></div>");
				bubbleHTML.appendTo("#" + gradeID + "-" + roomID + "-tour");
				
			});
			tourCrosshair();

		});
	});
}

//generate features layers
function importFeature(gradeID) {
	$.get("/xml/" + accomType + "/" + gradeID + ".xml", function(data) {
		$(data).find("feature").each(function() {

			var featuresId = $(this).attr("id");
			var featuresTopCol1 = $(this).find("featuresTopCol1").text();
			var featuresTopCol2 = $(this).find("featuresTopCol2").text();
			var featuresTopCol3 = $(this).find("featuresTopCol3").text();
			var featuresBtmImg = $(this).find("featuresBtmImg").text();
			var featuresBtmImgTag = $(this).find("featuresBtmImgTag").text();
			var featuresBtmCol2Title = $(this).find("featuresBtmCol2Title").text();
			var featuresBtmCol2Txt = $(this).find("featuresBtmCol2Txt").text();
            //alert("<div id=\"" + gradeID + "-features\" class=\"grade-panel\"><div class=\"feature\"><div class=\"feature-top\"><div class=\"feature-col1\">" + featuresTopCol1 + "</div><div class=\"feature-col2\">" + featuresTopCol2 + "</div><div class=\"feature-col3\">" + featuresTopCol3 + "</div></div><div class=\"feature-btm\"><div class=\"feature-col1\"><p><img src=\"" + featuresBtmImg + "\" width=\"421\" height=\"123\" alt=\"" + featuresBtmImgTag + "\" /></p><p>" + featuresBtmImgTag + "</p></div><div class=\"feature-col2\"><p><strong>" + featuresBtmCol2Title + "</strong></p><p>" + featuresBtmCol2Txt + "</p></div></div></div></div>");
			$("<div id=\"" + gradeID + "-features\" class=\"grade-panel\"><div class=\"feature\"><div class=\"feature-top\"><div class=\"feature-col1\">" + featuresTopCol1 + "</div><div class=\"feature-col2\">" + featuresTopCol2 + "</div><div class=\"feature-col3\">" + featuresTopCol3 + "</div></div><div class=\"feature-btm\"><div class=\"feature-col1\"><p><img src=\"" + featuresBtmImg + "\" width=\"421\" height=\"123\" alt=\"" + featuresBtmImgTag + "\" /></p><p>" + featuresBtmImgTag + "</p></div><div class=\"feature-col2\"><p><strong>" + featuresBtmCol2Title + "</strong></p><p>" + featuresBtmCol2Txt + "</p></div></div></div></div>")
			.appendTo("#" + gradeID + "-landing");
			
		});
		
	});
}

//build Accomodation subnav
function importGradeSubnav(ext) {

	$.get("/xml/" + accomType + "/grades.xml", function(data) {
		gradeParent = $(data).find("gradeParent").text();
		$(data).find("grade").each(function() {
			var gradeId = $(this).attr("id");
			var gradeLink = $(this).find("gradeLink").text();

			var linkTo = ext;
			var fullLinkTo
			if (linkTo == "ext") {
				fullLinkTo = gradeLink + "?tabs=1&grade=" + gradeId;
				//navInit();
			} else {
				fullLinkTo = "#"
			}	
		

			var gradeName = $(this).find("gradeName").text();
			var gradeTitle = $(this).find("gradeTitle").text();
			var gradeRooms = parseInt($(this).find("gradeRooms").text());
			//construct string
			$("<li></li>")
			.html("<a href=\"" + fullLinkTo + "\" id=\"" + gradeId + "-menu\" title=\"" + gradeTitle + "\">" + gradeName + "</a>")
			.appendTo("UL.sf-menu LI:first UL");
			//generate room subnav
//removed 2010-03-02
//			importRoomSubnav(gradeId);
		});
		//recall js fcns grouped with this AJAX call
		showGradeViaTab();
	});
}	

//build Room subnav(s)
function importRoomSubnav(gradeID) {
	var ulHtml = $("<ul id=\"" + gradeID + "-room-list\" class=\"room-list\"></ul>");
	$.get("/xml/" + accomType + "/" + gradeID + ".xml", function(data) {
		$(data).find("room").each(function(){
			var roomId = $(this).attr("id");
			var roomName = $(this).find("roomName").text();
			var roomTitle = $(this).find("roomTitle").text();
			var roomAlt = $(this).find("roomAlt").text();
			$("<li></li>")
			.html("<a href=\"#\" id=\"" + gradeID + "-" + roomId + "-menu\" title=\"" + roomTitle + "\">" + roomName + "</a>")
			.appendTo(ulHtml);
		});
//		showRoom();
		ulHtml.appendTo("UL.sf-menu > LI:nth-child(2)");
		fixNavWidths();
	});
}
/*
##############################			 XML BUILD END			##################################
*/


/*
##############################			 TOUR INTERACTION START			##################################
*/
//Accomodation Tour launch fcns


function tourInit() {
	rollover();
	hideNavTabs();
	fixNavWidths();
	//navInit();
	hidePager();
	showRoomButtonLink();
	showFeatures();
}

//image rollover
//swap img src from "imagename-off.gif" to "imagename-on.gif" - works for any image folder path
//usage: apply class="rollover" to <img /> tag
function rollover() {
	$(".rollover").hover(
		function() {
			this.src = this.src.replace("_off.","_on.");
		},
		function() {
			this.src = this.src.replace("_on.","_off.");
		}
	);
}

// hide bottom nav tabs on startup/landing page
function hideNavTabs(nChild) {
	$("UL.sf-menu > LI").hide();
	var nChild = isNaN(parseInt(nChild));
	if (nChild == true) {
		$("UL.sf-menu > LI:first").hide();
	} else {
		$("UL.sf-menu > LI:nth-child(" + nChild + ")").hide();
	}
}

//show all bottom nav tabs
function showNavTabs() {
$("DIV#tour-nav").show(); //added by offshore on 04/10/2010
	$("UL.sf-menu > LI").show();
}

//explicitly size first and second nav tab submenus
function fixNavWidths() {
	//accom
	$("UL.sf-menu LI:nth-child(1) > UL").css({"width" : "140px"});
	$("UL.sf-menu LI:nth-child(1) > UL LI").css({"width" : "140px"});
	//rooms
	$("UL.sf-menu LI:nth-child(2) > UL").css({"width" : "74px"});
	$("UL.sf-menu LI:nth-child(2) > UL LI").css({"width" : "74px"});
}

//initialise tabbed navigation menu
function navInit() {
	$("UL.sf-menu").superfish({
		delay: 100
	});
}

//hide pager
function hidePager() {
	$("DIV.room-pager").hide();
}

//show pager
function showPager() {
	$("DIV.room-pager").show();
}

//accom tab nav listener
function showGradeLanding() {
	$("A#grades").click(function(ev) {
	ev.preventDefault();
		hidePager();
		hideNavTabs();
		changeTourTitle("","");
		$("UL.sf-menu LI:nth-child(2) UL").removeClass("active");
		$("UL.sf-menu LI:nth-child(3) UL").removeClass("active");
		$("A#tour-features").attr({grade: "none"});
		$("DIV.tour-panel").hide();
		$("DIV#grades-landing").show();
		if (!gblTourReady) {
			showRoom();
			tourCrosshair();
			gblTourReady = true;
		}
	});
}	

//accom landing lozenge listener
function showGrade(gradeID) {
	//hover
	$("#grades-landing UL LI").hover(
	function() {
		$(this).find("A:nth-child(2)").fadeIn(500);
	},
	function() {
		$(this).find("A:nth-child(2)").fadeOut(300);
	});
	//click
	$("#grades-landing UL LI A").click(function(ev) {
	ev.preventDefault();
		if (gradeID == undefined) {
			var gradeID = this.id;
		} else {
			var gradeID = gradeID;
		}
		gradeID = gradeID.replace("-lozenge", "");
		gradeID = gradeID.replace("-menu", "");
		$("DIV.tour-panel").hide();
		$("DIV.grade-panel").hide();
		$("DIV.room-panel").hide();
		$("A#tour-features").attr({grade : gradeID});
		$("DIV#" + gradeID + "-landing").show();
		$("DIV#" + gradeID + "-rooms-tours").show();
		$("DIV#" + gradeID + "-rooms-tours DIV:first").show();
		$("DIV#room-nav").show();
		showPager(); //added by offshore on 04/10/2010
		pager(gradeID, ("room-1"));
		assignRoomButton(gradeID);
		showNavTabs();
		resetFeatures();
		if (!gblTourReady) {
			showRoom();
			tourCrosshair();
			gblTourReady = true;
		}
//		changeTourTitle(gradeID, "room-1");
	});

}

//grade menu selection
function showGradeViaTab(gradeID) {
	$("UL.sf-menu LI:first > UL LI A").click(function(ev) {
	ev.preventDefault();
		if (gradeID == undefined) {
			var gradeID = this.id;
		} else {
			var gradeID = gradeID;
		}
		gradeID = gradeID.replace("-menu", "");
		$("DIV.tour-panel").hide();
		$("DIV.grade-panel").hide();
		$("DIV.room-panel").hide();
		$("DIV#" + gradeID + "-landing").show();
		$("DIV#" + gradeID + "-rooms-tours").show();
		$("DIV#" + gradeID + "-room-1-tour").show();
		$("DIV#room-nav").show();
		$("A#tour-features").attr({grade : gradeID});
//		changeTourTitle(gradeID, "room-1");
		pager(gradeID, ("room-1"));
		assignRoomButton(gradeID);
		resetFeatures();
		showNavTabs();
	});
}

//room tab nav submenu listener
function showRoom(roomID) {
	$(".grade-panel UL LI A, UL.sf-menu LI:nth-child(2) > UL LI A").click(function(ev) {
	ev.preventDefault();
		if (roomID == undefined) {
			var roomID = this.id;
		} else {
			var roomID = roomID;
		}
//		alert("room 1: " + roomID);
		roomID = roomID.replace("-menu", "");
//		alert("room 2: " + roomID);
		var getGrade = roomID.substring(0,7);
//		alert("room-derived grade: " + getGrade);
		$("#" + globalGradeID + "-rooms-tours DIV.bubble-details:visible").hide();
		$("#" + globalGradeID + "-rooms-tours DIV.crosshair-container").css({"background" : "transparent url(/Images/ae/tour/crosshair.png) no-repeat scroll left top"});
		$("DIV.grade-panel").hide();
		$("DIV.room-panel").hide();
		$("DIV#" + getGrade + "-landing").show();
		$("DIV#" + getGrade + "-rooms-tours").show();
		$("DIV#" + roomID + "-tour").show();
		$("DIV#room-nav").show();
		var roomID = roomID.substring(8,14);
		pagerRoom(getGrade, roomID);
//		hidePager();
		changeTourTitle(getGrade, roomID);
		resetFeatures();
		assignRoomButton(getGrade);
	});
}
	
//show/hide layers for single (not multiple) grade tour
function showSingleGrade(gradeID) {
	var gradeID = gradeID;
	//var needTabs = $.query.get("tabs");
	if ((typeof(HavenTridionJSNamespace) !='undefined') && (typeof(HavenTridionJSNamespace.AccomTabsParam) !='undefined') && (HavenTridionJSNamespace.AccomTabsParam != null) && (HavenTridionJSNamespace.AccomTabsParam != ""))
        {
	var needTabs =HavenTridionJSNamespace.AccomTabsParam;
	}
	else
	{
	var needTabs = '';
	}
	if (needTabs == 1) {
//removed 2010-03-02
//		importGradeSubnav("ext");
		importFeature(gradeID);
		$("DIV#tour-nav").show();
		$("A#tour-features").attr("grade", gradeID);
	} else {
		$("DIV#tour-nav").hide();
	}
	$("DIV.room-panel").hide();
	$("DIV#grades-landing").hide();
	//alert("Showing Single Grade: " + "#" + gradeID + "-landing");
	$("#" + gradeID + "-landing").show('fast', function(){
		$("#" + gradeID + "-rooms-tours").show();
		$("#" + gradeID + "-rooms-tours > DIV.room-panel").hide();
		pager(gradeID, ("room-1"));
		if (needTabs == 1) {
			$("#" + gradeID + "-features").hide();
			//navInit();
			showFeatures();
			showRoom();
			relinkAccomBtn(gradeParent);
		}
		$("#" + gradeID + "-room-1-tour").show();
	});
}

function relinkAccomBtn(gradeParent) {
//	alert(gradeParent);
	$("A#grades").attr("href", (gradeParent + "?links=ext"));
}
//hotspots listener
function tourCrosshair() {
	$("DIV.bubble-details").hide();
	//crosshair click
	$("A.crosshair").click(function(ev) {
	ev.preventDefault();
		$("DIV.bubble-details").hide();
		$("DIV.crosshair-container").css({"background" : "url(/Images/ae/tour/crosshair.png) top left no-repeat"});
		var elemID = this.id;
//		var elemIDNo = elemID.substring(22,23);
//		var gradeID = elemID.substring(0,7);
//		var roomID = elemID.substring(8,14);
		var arrowDir = $("A#" + elemID).attr("arrow");
		var bubblePos = $("A#" + elemID).attr("pos");
		var bubbleDetails = $("A#" + elemID).parent("DIV.crosshair-container").next("DIV").attr("id");
		var bubbleHeight = $("#" + bubbleDetails).height();
		$("A#" + elemID).parent("DIV.crosshair-container").css({"background" : "url(/Images/ae/tour/crosshair-" + arrowDir + "-arrow.png) top left no-repeat"});
//		$("DIV#" + gradeID + "-" + roomID + "-bubble-" + elemIDNo + "-details").show();
		$("DIV#" + bubbleDetails).show();
		var bubbleLeftOffset;
		if (arrowDir == "left") {
			bubbleLeftOffset = "-227";
		} else {
			bubbleLeftOffset = "70";
		}
		var bubbleTopOffset;
		if (bubblePos == "top") {
			bubbleTopOffset = "10";
		} else if (bubblePos == "mid") {
			bubbleTopOffset = ((parseInt(bubbleHeight) - 40) / 2);
		} else if (bubblePos == "btm") {
			bubbleTopOffset = ((parseInt(bubbleHeight) - 58));
		}
		$("#" + bubbleDetails).css({"margin" : "-" + bubbleTopOffset + "px 0px 0px " + bubbleLeftOffset + "px"});
	});
	//close click
	$("DIV.bubble-close A").click(function(ev) {
	ev.preventDefault();
		$("DIV.bubble-details:visible").hide();
		$(this).parents("DIV.bubble").children("DIV.crosshair-container").css({"background" : "url(/Images/ae/tour/crosshair.png) top left no-repeat"});
	});
}

//feature tab nav listener
function showFeatures() {
	$("A#tour-features").toggle(
		function() {
			$("A#tour-features").addClass("active");
			var gradeID = $("A#tour-features").attr("grade");
			if (gradeID != "none") {
				hidePager();
				$("DIV.grade-panel").hide();
				$("DIV#" + gradeID + "-features").show();
				$("#tour-room").html("- Features");
			}
		},
		function() {
			$("A#tour-features").removeClass("active");
			var gradeID = $("A#tour-features").attr("grade");
			showPager();
			$("DIV#" + gradeID + "-features").hide();
			$("DIV#" + gradeID + "-rooms-tours").show();
			$("DIV#" + gradeID + "-room-1-tour").show();
			$("A#tour-features").parent("LI").removeClass("sfHover");
		}
	);
}


/*
##############################			 SUB-FUNCTIONS START			##################################
*/
//prev/next carousel
function pager(gradeID, roomID) {
	var grade = gradeID;
	var room = roomID;
	globalGradeID = gradeID;
	globalRoomID = roomID;
	$("#" + globalGradeID + "-rooms-tours DIV.bubble-details").hide();
	room = parseInt(room.substring(5,6));
	$("#" + grade + "-rooms-tours").cycle({
	    fx:     'scrollHorz',
	    speed:  1500,
		startingSlide: (room - 1),
		before: onBefore,
		after: onAfter,
	    timeout: 0,
	    next:   'A.nxt',
	    prev:   'A.prv'
	});
}

var globalGradeID;
var globalRoomID;

function onBefore(curr, next, opts) {
//	alert("here");
	$("#" + globalGradeID + "-rooms-tours DIV.bubble-details:visible").hide();
	$("#" + globalGradeID + "-rooms-tours DIV.crosshair-container").css({"background" : "transparent url(/Images/ae/tour/crosshair.png) no-repeat scroll left top"});
}

function onAfter(curr, next, opts) {
	var index = opts.currSlide;
	$("#prev-pager")[index == 0 ? 'hide' : 'show']();
	$("#next-pager")[index == opts.slideCount - 1 ? 'hide' : 'show']();
	$("#" + globalGradeID + "-rooms-tours DIV.bubble-details:visible").hide();
	$("#" + globalGradeID + "-rooms-tours DIV.crosshair-container").css({"background" : "transparent url(/Images/ae/tour/crosshair.png) no-repeat scroll left top"});
	changeTourTitle(globalGradeID, ("room-" + (opts.currSlide + 1)));
} 

function pagerRoom(gradeID, roomID) {
	var grade = gradeID;
	var room = roomID;
	globalGradeID = gradeID;
	globalRoomID = roomID;
	room = parseInt(room.substring(5,6));
	$("#" + grade + "-rooms-tours").cycle((room - 1));
}

//show relevant room tab nav submenu
function assignRoomButton(elemID) {
	var elemID = elemID;
	$("A#tour-rooms").attr({"new-val" : elemID});
	$("UL.sf-menu LI:nth-child(2) > UL.room-list").removeClass("active");
	$("UL.sf-menu LI:nth-child(2) > UL#" + elemID +"-room-list").addClass("active");
}

//room tab nav listener
function showRoomButtonLink() {
	$("A#tour-rooms").click(function(ev) {
	ev.preventDefault();
		var gradeID = $(this).attr("new-val");
//added 2010-03-20 - PHASE II START
		$("#" + globalGradeID + "-rooms-tours DIV.bubble-details:visible").hide();
		$("#" + globalGradeID + "-rooms-tours DIV.crosshair-container").css({"background" : "transparent url(/Images/ae/tour/crosshair.png) no-repeat scroll left top"});
//added 2010-03-20 - PHASE II END
		hidePager();
		$("DIV.grade-panel").hide();
		$("DIV#room-nav").hide();
		$("UL.room-list").hide();
		$("UL#" + gradeID + "-room-list").show();
		changeTourTitle(gradeID, "");
		$("DIV#" + gradeID + "-rooms-landing").show();
	});
}

//reset features tab nav button state
function resetFeatures() {
	$("A#tour-features").removeClass("active");
}

//change title in header
function changeTourTitle(gradeID, roomID) {
	var grade = "";
	var room = "";
	
	//var tour = $.query.get("tour");
	if ((typeof(HavenTridionJSNamespace) !='undefined') && (typeof(HavenTridionJSNamespace.AccomTourParam) !='undefined') && (HavenTridionJSNamespace.AccomTourParam != null) && (HavenTridionJSNamespace.AccomTourParam != ""))
        {
	var tour = HavenTridionJSNamespace.AccomTourParam;
	}
	else
	{
	var tour = '';
	}
	
	if (tour == "caravans") {										//caravans
		switch(gradeID)
		{
			case "grade-1": grade = "Exclusive";
			break;
			case "grade-2": grade = "Platinum";
			break;
			case "grade-3": grade = "Prestige";
			break;
			case "grade-4": grade = "Deluxe";
			break;
			case "grade-5": grade = "Superior";
			break;
			case "grade-6": grade = "Standard Plus";
			break;
			case "grade-7": grade = "Standard";
			break;
			case "grade-8": grade = "Adapted";
			break;
            case "grade-9": grade = "Deluxe Plus";
            break;                

			
			default: grade ="Haven";
		}
		switch(roomID)
		{
			case "room-1": room = "- Kitchen";
			break;
			case "room-2": room = "- Lounge";
			break;
			case "room-3": room = "- Bathroom";
			break;
			case "room-4": room = "- Bedroom";
			break;
			case "room-5": room = "- Outdoor";
			break;
			default: room ="";
		}
	} else if (tour == "dbb") {										//bed & breakfast
		switch(gradeID)
		{
			case "grade-1": grade = "Comfort Plus";
			break;
			case "grade-2": grade = "Comfort";
			break;
			case "grade-3": grade = "Standard";
			break;
			default: grade ="Haven";
		}
		switch(roomID)
		{
			case "room-1": room = "- Kitchen";
			break;
			case "room-2": room = "- Lounge";
			break;
			case "room-3": room = "- Bathroom";
			break;
			case "room-4": room = "- Bedroom";
			break;
			case "room-5": room = "- Outdoor";
			break;
			default: room ="";
		}
	} else if (tour == "chalets") {										//chalets
		switch(gradeID)
		{
			case "grade-1": grade = "Comfort Plus";
			break;
			case "grade-2": grade = "Comfort";
			break;
			case "grade-3": grade = "Standard";
			break;
			default: grade ="Haven";
		}
		switch(roomID)
		{
			case "room-1": room = "- Kitchen";
			break;
			case "room-2": room = "- Lounge";
			break;
			case "room-3": room = "- Bathroom";
			break;
			case "room-4": room = "- Bedroom";
			break;
			case "room-5": room = "- Outdoor";
			break;
			default: room ="";
		}
	} else {
		grade = "Haven";
		room = "";
	}
	$("#tour-grade").html(grade);
	$("#tour-room").html(room);
}
/*
##############################			 SUB-FUNCTIONS END			##################################
*/
/*
##############################			 TOUR INTERACTION END			##################################
*/


