
/*  Sections in this file:
- Global variables
- Generic Functions
- Toggle Offer Sidebar
- Expanders
- Rollovers
- External Links
- Explorer
- Tabs
- Multi Selector
- Registration
- Top Nav
- Search
- Flash
- Adverts
- TradeDoubler
- Loader
*/

/* ################ Global variables ################  */
/* TODO: Do all of these need to be global? */
var theTab, whichVid, tl = false, monthName = ["January","February","March","April","May","June","July","August","September","October","November","December"], descHeight, descTempHeight, disableExt = 'false', hiddenDivs = [], allTubes = ['tubeparent','tubeCentral','tubeN','tubeNe','tubeNw','tubeEast','tubeWest','tubeS','tubeSe','tubeSw'], FadeInterval = 200, AttSteps = ['ffffff','fafeff','f5fdff','f0fbff','ebfaff','e6f9ff','e1f8ff'], AccSteps = ['ffffff','fefbfd','fcf7fc','f0f3fb','f8eefa','f6eaf0','f5e6f9'], EveSteps = ['ffffff','fffcfa','fefaf3','fef9ec','fef7df','fdf5d8','fdf2d0'], TraSteps = ['ffffff','f2f8ff','e0f1fe','dbe8fd','cde2fd','c0d8fc','abd0fc'], currentIndex, nextIndex, multiPanels = [], outerTimer, isPlay = false, showRev = false, navTimer, searchToggle = "simple", userReviewsToggle = 'closed', adlink_dcopt, adlink_randomnumber, adlink_tile, requiredVersion = 8, hasRightVersion = false, flash2Installed = false, flash3Installed = false, flash4Installed = false, flash5Installed = false, flash6Installed = false, flash7Installed = false, flash8Installed = false, flash9Installed = false, maxVersion = 9, actualVersion = 0, jsVersion = 1.0, isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false, isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false, timer, elHeight, currentID, langCode, searchPath, euroMS, videoColor, WT = {}, DCS = {}, DCSext = {};

if (!videoColor || videoColor == '') {
if (location.pathname.indexOf('/accommodation/') != -1) { videoColor = 'purplestay'}
else if (location.pathname.indexOf('/rimini/') != -1) { videoColor = 'blueplaces'}
else if (location.pathname.indexOf('/travel/') != -1) { videoColor = 'bluetravel'}
else if (location.pathname.indexOf('/events/') != -1) { videoColor = 'yellow'}
else if (location.pathname.indexOf('/areas/') != -1) { videoColor = 'orange'}
else if (location.pathname.indexOf('/maps/') != -1) { videoColor = 'purplemap'}
else if (location.pathname.indexOf('/people/') != -1) { videoColor = 'green'}
else if (location.pathname.indexOf('/offers/') != -1) { videoColor = 'pink'}
else {videoColor = 'grey'}

}
/* ################ Detect Flash ################  */
jsVersion = 1.1;
if(isIE && isWin){
  document.write('<scr' + 'ipt language="VBScript"> \n');
  document.write('on error resume next \n');
  document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
  document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
  document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
  document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');  
  document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');  
  document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');
  document.write('flash8Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n');
  document.write('flash9Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');
  document.write('<\/scr' + 'ipt> \n'); 
}
function detectFlash() {  
  if (navigator.plugins) {
    if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
      var i, isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "", flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description, flashVersion = parseInt(flashDescription.substring(16),10);
      flash2Installed = flashVersion == 2;    
      flash3Installed = flashVersion == 3;
      flash4Installed = flashVersion == 4;
      flash5Installed = flashVersion == 5;
      flash6Installed = flashVersion == 6;
      flash7Installed = flashVersion == 7;
      flash8Installed = flashVersion == 8;
      flash9Installed = flashVersion >= 9;
    }
  }
  for (i = 2; i <= maxVersion; i++) { if (eval("flash" + i + "Installed") === true) {actualVersion = i;} }
  if (actualVersion >= requiredVersion) {
    hasRightVersion = true;
  } 
}

/* ################  Generic Functions  ################ */
document.getElementsByClassName = function(cl) {
	var i, retnode = [], myclass = new RegExp('\\b'+cl+'\\b'), classes, elem = this.getElementsByTagName('*');
	for (i = 0; i < elem.length; i++) {
		classes = elem[i].className;
		if (myclass.test(classes)) {retnode.push(elem[i]);}
	}
	return retnode;
};
function isNumeric(p) { var pNum = p.toString(), regex = /[^0-9]/; return !regex.test(pNum); }
function removeChildren(node) {
	var child, next;
    for (child = node.firstChild; child !== null; ) {
    	next = child.nextSibling;
        node.removeChild(child);
        child = next;
	}
}
function leapYear (inYear) { if ((inYear % 4 === 0) && ((inYear % 100 !== 0) || (inYear % 400 === 0))) {return true;}}
function getObjInnerText (obj) { 
return (obj.innerText) ? obj.innerText 
: (obj.textContent) ? obj.textContent 
: ""; 
}
function createParam(pName,pValue) {
	  var param = document.createElement("param");
	  param.setAttribute("name",pName);
	  param.setAttribute("value",pValue);
	  return param;
}

/* Browser detection script. Use as a last resort when object detection won't work (mostly used for IE) */  
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string, dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1) {return data[i].identity; }
			}
			else if (dataProp) { return data[i].identity; }
		}
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "WebKit",
			identity: "WebKit"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Gecko"
		}
	]
};
BrowserDetect.init();

function getHeight(el) {
	var d = el, h = '0px', o;
	if(d) {
		if((o = document.defaultView) && o.getComputedStyle) {
			h = o.getComputedStyle(d, null).height;
		} else if('number' == typeof d.offsetHeight) {
			h = d.offsetHeight + 'px';
		}
	}
	return h;
}
/* ################  End Generic Functions  ################ */

/* ################  Toggle Offer Sidebar  ################ */
function showOffers() {
	var whichOffer = document.getElementById('offer-category').options[document.getElementById('offer-category').selectedIndex].value, allOffers = document.getElementsByClassName("offersub"), theOffer = whichOffer + "-offers";
	for (var i = 0; i < allOffers.length; i++) { allOffers[i].style.display = 'none'; }
	document.getElementById(theOffer).style.display = "block";
	if (document.getElementById('moff')) {
		var m = document.getElementById('moff');
		switch (whichOffer) {
		case 'travel'      : m.href="/offers/"; m.innerHTML = "More Bookings & Offers"; 	break;	
		case 'maps'        : m.href="/offers/maps/"; m.innerHTML = "More Maps";  break;	
		case 'eating-out'  : m.href="/offers/eating-out/"; m.innerHTML = "More Eating Out";	break;	
		case 'rimini' : m.href="#"; m.innerHTML = "Rimini"; break;	
		case 'tickets'     : m.href="/offers/tickets/"; m.innerHTML = "More Tickets"; break;	
		case 'where-to-stay' :
			if (currentLocale.indexOf('_us') != -1 || currentLocale.indexOf('_ca') != -1) {
				m.href="#"; 
				m.innerHTML = "More hotels at great prices";
			} else {
				m.href="#"; m.innerHTML = "Book hotels online now";
			}
			break;	
		case 'packages' :
			if (currentLocale.indexOf('_us') != -1 || currentLocale.indexOf('_ca') != -1) {
				m.href="#"; 
				m.innerHTML = "More Vacation Packages";
			} else {
				m.href="/offers/packages/"; m.innerHTML = "More Packages";
			}
			break;		
		}
	} 
}
/* ################ End Toggle Offer Sidebar  ################ */

/* ################  Expanders  ################ */
function changeHeight(el,dir) {
	var c = document.getElementById(el).style.height, currentHeight = +c.substring(0,c.indexOf('px')), targetHeight = +elHeight.substring(0,elHeight.indexOf('px'));
	if (dir == "increase") {
		if (currentHeight >= targetHeight) {return false;}
		currentHeight = currentHeight + 6;
	} else {
		if (currentHeight <= 0) {return false;}
		currentHeight = currentHeight - 6;
	}
	document.getElementById(el).style.height = currentHeight + "px";	
	timer = setTimeout("changeHeight('"+el+"','"+dir+"')",3);
}

function changeHeight2(dir) {
	var el = document.getElementById('prod-desc');
	for (var i = 0; i < el.childNodes.length; i++) {
		var node = el.childNodes[i];
		if (node.nodeName == 'DIV' && node.className == 'panel-middle' ) {
			var c = node.style.height, currentHeight = +c.substring(0,c.indexOf('px')), targetHeight = +descHeight.substring(0,descHeight.indexOf('px'));
			if (dir == "increase") {
				if (currentHeight >= targetHeight) {return false;}
				currentHeight = currentHeight + 6;
			} else {
				if (currentHeight <= 188) {return false;}
				currentHeight = currentHeight - 6;
			}
			node.style.height = currentHeight + "px";	
			timer = setTimeout("changeHeight2('"+dir+"')",3);
		}
	}
}

function showHidden(el,lnk) {
	lnk.blur();
	for (var i = 0; i < hiddenDivs.length; i++) {
		if (hiddenDivs[i] == el) {elHeight = hiddenDivs[i+1];	}
	}
	var whichButton = "b" + el.substring(1);
	if (document.getElementById(el).style.height == "0px") {
		document.getElementById(whichButton).src = "#";
		changeHeight(el,"increase")	;
	} else {
		document.getElementById(whichButton).src = "#";
		changeHeight(el,"decrease");
	}
}

function setupDescriptionExpander() {
	var dHeight, parse_FL = /\/(de|nl|es|it|fr)\//;
	if (document.getElementById('prod-desc') && !parse_FL.test(window.location.pathname))  {
		var el = document.getElementById('prod-desc');
		for (var i = 0; i < el.childNodes.length; i++) {
			var	node = el.childNodes[i];
		    if (node.nodeName == 'DIV' && node.className == 'panel-middle' ) {
				descHeight = getHeight(node);
				dHeight = +descHeight.substring(0,descHeight.indexOf('px'));
				if (dHeight > 188) {
					node.style.height = "188px";
					node.style.overflow = "hidden";
				}
			}
			if  (node.nodeName == 'DIV' && node.className == 'panel-foot' ) {
				if (dHeight > 188) {
				removeChildren(node);
				node.className += " foot-extend";
				node.innerHTML = '<a href="#" onclick="extendDesc(this); return false;" class="rollover"><img src="#" alt="" id="bprod-desc"/>Read More</a>';
				}
			}
		}
	}
}

function extendDesc(lnk) {
	if (disableExt == 'true') {return false;}
	lnk.blur();
	var el = document.getElementById('prod-desc');
	for (var i = 0; i < el.childNodes.length; i++) {
		var node = el.childNodes[i];
		if (node.nodeName == 'DIV' && node.className == 'panel-middle' ) {
			if (node.style.height == "188px") {
				document.getElementById('bprod-desc').src = "#";
				changeHeight2("increase");
			} else {
				document.getElementById('bprod-desc').src = "#";
				changeHeight2("decrease");
			}
		}
	}
}

function setupHidden() {
	var allHidden = document.getElementsByClassName("hidden"), i, k, whichHidden;
	if (location.pathname.indexOf('accommodation') == -1) {
		for (i = 0; i < allHidden.length; i++) {
			whichHidden = allHidden[i].id;
			k = 2 * i;
			hiddenDivs[k] = whichHidden;
			hiddenDivs[k+1] = getHeight(allHidden[i]);
			allHidden[i].style.height = "0px";
			allHidden[i].style.overflow = "hidden";
		}
	}
}


function hideUserReviews(whichReview) {
	var allReviews = document.getElementsByClassName("ta-full"), allSummaries = document.getElementsByClassName("ta-summary"), allLinks = document.getElementsByClassName("expand-this"), i;
	for (i = 0; i < allReviews.length; i++) {
		var j = i+1;
		if (whichReview != j) {
			allReviews[i].style.display = 'none';
			allSummaries[i].style.display = 'block';
			allLinks[i].style.display = 'inline';
			allLinks[i].className = allLinks[i].className.replace('minus', 'plus');
			removeChildren(allLinks[i]);
			allLinks[i].appendChild(document.createTextNode('Read full review'));
		} 
	}
	document.getElementById("expand-all").className = document.getElementById('expand-all').className.replace('minus', 'plus');
	removeChildren(document.getElementById('expand-all'));
	document.getElementById('expand-all').appendChild(document.createTextNode('Expand all reviews'));
	userReviewsToggle = 'closed';
}


function showUserReview(e) {
var el = e.target ? e.target : e.srcElement, whichReview = el.id.substr(12);
hideUserReviews(whichReview);
if (document.getElementById("ta-full-"+whichReview).style.display == 'none') {
	document.getElementById("ta-summary-"+whichReview).style.display = 'none';
	document.getElementById("ta-full-"+whichReview).style.display = 'block';
	document.getElementById("expand-this-"+whichReview).className = document.getElementById("expand-this-"+whichReview).className.replace('plus', 'minus');
	removeChildren(document.getElementById("expand-this-"+whichReview));
	document.getElementById("expand-this-"+whichReview).appendChild(document.createTextNode('Hide full review'));
	
}  else {
	document.getElementById("ta-summary-"+whichReview).style.display = 'block';
	document.getElementById("ta-full-"+whichReview).style.display = 'none';
	document.getElementById("expand-this-"+whichReview).className = document.getElementById("expand-this-"+whichReview).className.replace('minus', 'plus');
	removeChildren(document.getElementById("expand-this-"+whichReview));
	document.getElementById("expand-this-"+whichReview).appendChild(document.createTextNode('Read full review'));
}
}

function showAllUserReviews() {
	if (userReviewsToggle == 'closed') {
	var allReviews = document.getElementsByClassName("ta-full"), allSummaries = document.getElementsByClassName("ta-summary"), allLinks = document.getElementsByClassName("expand-this"), i;
	for (i = 0; i < allReviews.length; i++) {
			allReviews[i].style.display = 'block';
			allSummaries[i].style.display = 'none';
			allLinks[i].className = allLinks[i].className.replace('plus', 'minus');
			removeChildren(allLinks[i]);
			allLinks[i].appendChild(document.createTextNode('Hide full review'));
	}
	document.getElementById("expand-all").className = document.getElementById("expand-all").className.replace('plus', 'minus');
	removeChildren(document.getElementById('expand-all'));
	document.getElementById('expand-all').appendChild(document.createTextNode('Hide all reviews'));
	userReviewsToggle = 'open';
	} else {
		hideUserReviews();
	}
}

function setupUserReviews() {
if (document.getElementById('expand-all')) {
	var whichReview = null, allLinks = document.getElementsByClassName("expand-this"), i;
	hideUserReviews(whichReview);
	for (i = 0; i < allLinks.length; i++) {
		removeChildren(allLinks[i]);
    	allLinks[i].appendChild(document.createTextNode('Read full review'));
		if(window.addEventListener)	{ allLinks[i].addEventListener('click', showUserReview, false); } 
		else if(window.attachEvent) { allLinks[i].attachEvent('onclick', showUserReview, false); } 
		allLinks[i].className += " plus";
	}
	removeChildren(document.getElementById('expand-all'));
	document.getElementById('expand-all').appendChild(document.createTextNode('Expand all reviews'));
	document.getElementById('expand-all').className += ' plus';
	if(window.addEventListener)	{ document.getElementById('expand-all').addEventListener('click', showAllUserReviews, false); } 
	else if(window.attachEvent) { document.getElementById('expand-all').attachEvent('onclick', showAllUserReviews, false); } 
	userReviewsToggle = 'closed';
}
}
/* ################ End Expanders ################ */

/*  ################ Rollovers ################ */
function doRollover(e) {
	var el = e.target ? e.target : e.srcElement;
	if (el.nodeName == 'IMG' || el.nodeName == 'INPUT' ) {
		if (el.src.indexOf('-off.') != -1) {el.src = el.src.replace('-off.', '-on.');} 
		else { el.src = el.src.replace('-on.','-off.');	}
	} else if (el.nodeName == 'A' ) {
		for (var i = 0; i < el.childNodes.length; i++) {
			var node = el.childNodes[i];
		    if (node.nodeName == 'IMG' ) {
				if (node.src.indexOf('-off.') != -1) { node.src = node.src.replace('-off.', '-on.');} 
				else { node.src = node.src.replace('-on.','-off.');}
			}
		}
	}
}
function setupRollovers() {
var allRolls = document.getElementsByClassName("rollover");
for (var i = 0; i < allRolls.length; i++) {
		if(window.addEventListener)	{ allRolls[i].addEventListener('mouseover', doRollover, false); allRolls[i].addEventListener('mouseout', doRollover, false);} 
		else if(window.attachEvent) { allRolls[i].attachEvent('onmouseover', doRollover, false); allRolls[i].attachEvent('onmouseout', doRollover, false); } 
	}
}
/* ################  End Rollovers  ################ */

/* ################  Extenal Links  ################ */
function externalLinks() { 
	if (!document.getElementsByTagName || !document.getElementById("content") || window.location.protocol == 'https:') {return; }
	var extLink = /^http/, 	intLink = /^https?\:\/\/[a-z0-9\-]*.?#/, adLink = /^https?\:\/\/[a-z0-9\-]*.?[a-z0-9\-]*.?doubleclick/, server = /(web[1234]|preview|vl\-dev\-web1)/, fileLink = /\.(pdf|doc|mp3)$/, allAnchors = document.getElementsByTagName("a"), contentAnchors = document.getElementById("content").getElementsByTagName("a"), i, anchor, foo; 
	for (i=0; i<allAnchors.length; i++) { 
		anchor = allAnchors[i]; 
		if (
			anchor.getAttribute("href") && (
				anchor.className.indexOf('ext') != -1 ||
				fileLink.test(anchor.getAttribute("href")) || (
					extLink.test(anchor.getAttribute("href")) && !intLink.test(anchor.getAttribute("href")) && !server.test(anchor.getAttribute("href"))  
				)
			)
		) {
			foo = "1";  /*  does nothing but IE needs a line of code here for some bizarre reason */
			anchor.title += "\nLink will open in a new window" ;
			anchor.target = "_blank";
			
		}
	} 
	for (i=0; i<contentAnchors.length; i++) { 
		anchor = contentAnchors[i]; 
		if (anchor.getAttribute("href") && (
				anchor.className.indexOf('ext') != -1 ||
				fileLink.test(anchor.getAttribute("href")) || (
					extLink.test(anchor.getAttribute("href")) && !intLink.test(anchor.getAttribute("href")) && !server.test(anchor.getAttribute("href"))  
				)
			) && anchor.className.indexOf('button') == -1 && anchor.className.indexOf('noicon') == -1 && !adLink.test(anchor.getAttribute("href"))) {  
			/*
      	var extIcon = document.createElement("img");
				extIcon.setAttribute("alt","");
				extIcon.setAttribute("src","#");
				anchor.appendChild(extIcon); 
				*/
	 		}
	}
}
/* ################  External Links  ################ */

/* ################  Explorer  ################ */
function showTube(whichTube) {
    for (var i=0;i<allTubes.length;i++) { document.getElementById(allTubes[i]).style.display = 'none'; }
    document.getElementById(whichTube).style.display = 'block';
}
function overMap(whLink,whText,whCoords) {
	var chooser, chooseLink, chooseImg, points = whCoords.split(','), chooserW = (+points[2]) - (+points[0]), chooserH = (+points[3]) - (+points[1]); 
	if (!document.getElementById('chooser')) { 
		chooser= document.createElement("div");
		chooser.setAttribute("id", "chooser");  
		chooseLink = document.createElement("a");
		chooseLink.setAttribute("id", "chooseLink");  
		chooseLink.setAttribute("href", "");  
		chooseImg = document.createElement("img");
		chooseImg.setAttribute("id", "chooseImg");  
		chooseImg.setAttribute("alt", "");  
		chooseImg.setAttribute("src"," #");
		chooseLink.appendChild(chooseImg);
		chooser.appendChild(chooseLink);
		document.getElementById('tubeparent').appendChild(chooser);
	}
	document.getElementById("chooseLink").href = "javascript:showTube('"+whLink+"')";
    document.getElementById("chooseImg").alt = "View Larger Map - " + whText;  
	document.getElementById('chooser').style.width= chooserW + "px";
    document.getElementById('chooser').style.height= chooserH + "px";
    document.getElementById('chooser').style.top = points[1] + "px";
    document.getElementById('chooser').style.left = points[0] + "px";
    document.getElementById('chooser').style.display = "block";
    document.getElementById('chooser').style.position = "absolute";
}
/* ################  End Explorer  ################ */

function changeTicMap(whMap) {
	var mapSrc = '#', mapAlt='Map showing location of Tourist Information Centers and Community Wardens in ', mapMap;
    switch (whMap) {
        case 'north'    : mapSrc+='north-large.gif';    mapAlt+='North ';     mapMap='#ticMapNorth';      break;  
        case 'south'    : mapSrc+='south-large.gif';    mapAlt+='South ';     mapMap='#ticMapSouth';      break;  
        case 'east'     : mapSrc+='east-large.gif';     mapAlt+='East ';      mapMap='#ticMapEast';       break;  
        case 'west'     : mapSrc+='west-large.gif';     mapAlt+='West ';      mapMap='#ticMapWest';       break;  
        case 'central'  : mapSrc+='central-large.gif';  mapAlt+='Central ';   mapMap='#ticMapCentral';    break;  
        case 'all'      : mapSrc+='overview-large.gif'; mapAlt+='';           mapMap='#ticMapAll';        break;  
    }
    document.getElementById('ticMap').src       =   mapSrc;
    document.getElementById('ticMap').alt       =   mapAlt;
    document.getElementById('ticMap').useMap    =   mapMap;
}


/* ################ Tabs  ################ */
function trackSwitchTabs(el) { 
var tab_title, tab_code, product_name = getObjInnerText(document.getElementsByTagName("h1")[0]);
switch (el) {
		case 'prod-menu'       : tab_title="Menu";	tab_code = 'Menu';	break;	
		case 'prod-desc'       : tab_title="Description";	tab_code = 'Desc';	break;	
		case 'prod-dets'       : tab_title="Description";	tab_code = 'Desc';	break;	
		case 'prod-fac'        : tab_title="Information";	tab_code = 'Fac';	break;	
		case 'prod-rev'        : tab_title="Reviews";	tab_code = 'Rev';	break;	
		case 'prod-user'       : tab_title="User Reviews";	tab_code = 'User';	break;	
		case 'prod-event'      : tab_title="Events";	tab_code = 'Event';	break;	
		case 'prod-offer'	   : tab_title="Offers";	tab_code = 'Offer';	break;	
		case 'prod-book'	   : tab_title="Prices and Booking";	tab_code = 'Book';	break;	
		case 'prod-map'	   	   : tab_title="Location";	tab_code = 'Map';	break;	
		default: tab_title="Unknown"; 
}
	WT.cg_n=WT.cg_s=WT.mc_id=WT.si_n=WT.si_p=WT.z_vlSupplier="";
	dcsMultiTrack('DCS.dcsuri','/js/showTab/'+tab_title,'WT.ti','Show Tab: '+tab_title , 'WT.z_ltvName', 'Tabs: '+product_name, 'WT.z_ltv'+tab_code, '1');	
	WT.z_ltvDesc=WT.z_ltvMenu=WT.z_ltvFac=WT.z_ltvRev=WT.z_ltvUser=WT.z_ltvEvent=WT.z_ltvOffer=WT.z_ltvBook=WT.z_ltvMap='';
}

function doFade(colorId, targetId) {
    if (colorId >= 1) {
		colorId--;
		for (var i = 0; i < document.getElementById(targetId).childNodes.length; i++) {
			if (document.getElementById(targetId).childNodes[i].nodeType == 1) {
				if (location.pathname.indexOf('rimini') != -1) { document.getElementById(targetId).childNodes[i].style.backgroundColor = "#" + AttSteps[colorId];} 
				else if (location.pathname.indexOf('events') != -1) { document.getElementById(targetId).childNodes[i].style.backgroundColor = "#" + EveSteps[colorId];} 
				else if (location.pathname.indexOf('travel') != -1) { document.getElementById(targetId).childNodes[i].style.backgroundColor = "#" + TraSteps[colorId];} 
			}
		}
		if (colorId >= 1) {
			setTimeout("doFade("+colorId+",'"+targetId+"')", FadeInterval);
		}
	}
}
function showtab(el) {
	var whichTab, allTabs = document.getElementsByClassName("tabcnt");
	if(BrowserDetect.browser == "Explorer" && whichVid && whichVid !== "" && hasRightVersion === true){
		document.getElementById("vidO").setVariable("mytext",1);
	}
	for (var i = 0; i < allTabs.length; i++) {
		allTabs[i].style.display = 'none';
		whichTab = allTabs[i].id + "-tab";
		document.getElementById(whichTab).className = "";
	}
	document.getElementById(el).style.display = "block";
	trackSwitchTabs(el);
	whichTab = el + "-tab";
	document.getElementById(whichTab).blur();
	document.getElementById(whichTab).className = "current";
	doFade(7, el);
}

function setupTabs() {
	var allTabs = document.getElementsByClassName("tabcnt"), allLnks = document.getElementsByClassName("tablnk"), i, whichTab, allSbTabs = document.getElementsByClassName("sbcnt"), allSbLnks = document.getElementsByClassName("sblnk");
	/* Main Body */
	if (allTabs.length > 0) {
		if (!theTab || theTab === "") { /* legacy */
			if (!showRev) { theTab = allTabs[0].id;  whichTab = allTabs[0].id + "-tab"; }
			else { theTab = 'prod-rev'; whichTab = 'prod-rev-tab';} 
		} else { whichTab = theTab + "-tab"; }
		for (i = 0; i < allTabs.length; i++) {
			allTabs[i].style.display = 'none';
		}
		for (i = 0; i < allLnks.length; i++) {
			allLnks[i].style.cursor = "pointer";
		}
		document.getElementById(theTab).style.display = "block";
		document.getElementById(whichTab).className = "current";
		trackSwitchTabs(theTab);
	}
}
/* ################ End Tabs ################ */

/* ################  Multi Selector  ################ */
function multiPanel2(whichPanel) {
	var whLink; currentIndex = 0;
	for (var j=0;j<multiPanels.length;j++) { if (document.getElementById(multiPanels[j]).style.display == 'block') { currentIndex = j; } } 
	switch (whichPanel) {
		case 'prev'       : if (currentIndex === 0) { nextIndex = multiPanels.length - 1;} else {	nextIndex = currentIndex  - 1;	};	break;	
		case 'next'       : if (currentIndex == multiPanels.length - 1) { nextIndex = 0; } else { nextIndex = currentIndex + 1;	};	break;	
		default: nextIndex = whichPanel;
	}
	for (var k=0;k<multiPanels.length;k++) {
		document.getElementById(multiPanels[k]).style.display = 'none';
		var allO = document.getElementById(multiPanels[k]).getElementsByTagName("object");
		for (var m=0;m<allO.length;m++) {
			allO[m].parentNode.innerHTML = " - ";
		}
		whLink = "link" + k;
		document.getElementById(whLink).firstChild.src = '#f';	
		document.getElementById(whLink).className = "rollover"; 
		if(window.addEventListener)	{ document.getElementById(whLink).addEventListener('mouseover', doRollover, false); document.getElementById(whLink).addEventListener('mouseout', doRollover, false);} 
		else if(window.attachEvent) { document.getElementById(whLink).attachEvent('onmouseover', doRollover, false); document.getElementById(whLink).attachEvent('onmouseout', doRollover, false); } 
	}
	document.getElementById(multiPanels[nextIndex]).style.display =  "block";
	try {
		eval('redo' + document.getElementById(multiPanels[nextIndex]).id + "()");
	} catch(e) {}
	whLink = "link" + nextIndex;
	document.getElementById(whLink).firstChild.src = '#';
	document.getElementById(whLink).className = ""; 
	if(window.addEventListener)	{ document.getElementById(whLink).removeEventListener('mouseover', doRollover, false); document.getElementById(whLink).removeEventListener('mouseout', doRollover, false);} 
		else if(window.attachEvent) { document.getElementById(whLink).detachEvent('onmouseover', doRollover, false); document.getElementById(whLink).detachEvent('onmouseout', doRollover, false); } 
}

function multiPanelLink2(e) {
	var  currentIndex, nextIndex, panelTitle, nextPanel, whichPanel, el = e.target ? e.target : e.srcElement;
	if (el.nodeName == 'IMG' ) { el = el.parentNode; } 
	whichPanel = el.id.substring(4);
	for (var j=0;j<multiPanels.length;j++) { if (document.getElementById(multiPanels[j]).style.display == 'block') { currentIndex = j; } } 
	switch (whichPanel) {
		case 'prev'       : nextPanel = 'Previous'; if (currentIndex === 0) { nextIndex = multiPanels.length - 1;} else {	nextIndex = currentIndex  - 1;	};	break;	
		case 'next'       : nextPanel = 'Next'; if (currentIndex == multiPanels.length - 1) { nextIndex = 0; } else { nextIndex = currentIndex + 1;	};	break;	
		default: nextPanel = +whichPanel+1; nextIndex = whichPanel;
	}
	panelTitle = document.getElementById(multiPanels[nextIndex]).title; panelId = document.getElementById(multiPanels[nextIndex]).id;
	if (e.type == 'click') { multiPanel2(whichPanel);}
	else if (e.type == 'mousedown') {
		WT.cg_n=WT.cg_s=WT.mc_id="";
		dcsMultiTrack('DCS.dcsuri','/js/msclick/'+panelId, 'WT.z_ltvName', 'MultiSelector: '+panelTitle, 'WT.z_ltvView', '1', 'WT.ti','MultiSelector: '+panelTitle);
		WT.z_ltvName=WT.z_ltvView="";
	}
}

function setupMultiPanel2() {
	if (euroMS != true) {
		pText = "Previous";
		pSrc = "#"
		nText = "Next";
		nSrc = "#";
	}
	document.getElementById('selector-panel-middle').className= "withJS";
	var multiPanelsRaw = document.getElementById('selector-window').childNodes, pLink, pImg, nLink, nImg, theListContainer, theList;
	for (var i=0;i<multiPanelsRaw.length;i++) {
		if (multiPanelsRaw[i].nodeName == 'DIV') {
				multiPanels[multiPanels.length] = multiPanelsRaw[i].id;
		}
	}
		pLink = document.createElement("a"); 
		pLink.setAttribute("id", "linkprev");
		pImg = document.createElement("img");
		pImg.setAttribute("alt",pText);
		pImg.setAttribute("src",pSrc);
		pLink.appendChild(pImg);
		if(window.addEventListener)	{ 
			pLink.addEventListener('click', function(e) {multiPanelLink2(e); }, false); pLink.addEventListener('mousedown', function(e) {multiPanelLink2(e); }, false);
		} else if(window.attachEvent) {
			pLink.attachEvent('onclick', function(e) {multiPanelLink2(e); }, false); pLink.attachEvent('onmousedown', function(e) {multiPanelLink2(e); }, false);
		} 	
		nLink = document.createElement("a"); 
		nLink.setAttribute("id", "linknext");
		nImg = document.createElement("img");
		nImg.setAttribute("alt",nText);
		nImg.setAttribute("src",nSrc);
		nLink.appendChild(nImg);
		if(window.addEventListener)	{ 
			nLink.addEventListener('click', function(e) {multiPanelLink2(e); }, false); nLink.addEventListener('mousedown', function(e) {multiPanelLink2(e); }, false);
		} else if(window.attachEvent) {
			nLink.attachEvent('onclick', function(e) {multiPanelLink2(e); }, false); nLink.attachEvent('onmousedown', function(e) {multiPanelLink2(e); }, false);
		} 	
	theListContainer = document.createElement("div"); 
	theListContainer.setAttribute("id", "linklist");
	theList = document.createElement("ul"); 
	for (var j=0;j<multiPanels.length;j++) {
		var nextList = document.createElement("li"), nextLink = document.createElement("a"), nextImg = document.createElement("img");
		document.getElementById(multiPanels[j]).style.display = 'none';
		document.getElementById(multiPanels[j]).style.position = 'absolute';
		document.getElementById(multiPanels[j]).style.top =  "0px";
		document.getElementById(multiPanels[j]).style.left =  "0px";
		nextList.appendChild(nextLink);
		nextLink.setAttribute("id", "link"+j);
		nextImg.setAttribute("alt","View panel "+(+j+1));
		nextImg.setAttribute("src","#f");
		nextLink.appendChild(nextImg);
    	theList.appendChild(nextList);
		if(window.addEventListener)	{ 
			nextLink.addEventListener('click', function(e) {multiPanelLink2(e); }, false); nextLink.addEventListener('mousedown', function(e) {multiPanelLink2(e); }, false);
		} else if(window.attachEvent) {
			nextLink.attachEvent('onclick', function(e) {multiPanelLink2(e); }, false); nextLink.attachEvent('onmousedown', function(e) {multiPanelLink2(e); }, false);
		} 	
		nextLink.setAttribute("class","rollover");
	}
	theListContainer.appendChild(theList);
	document.getElementById('selector-controls').appendChild(pLink);
	document.getElementById('selector-controls').appendChild(theListContainer);
	document.getElementById('selector-controls').appendChild(nLink);
	if (euroMS != true) {
		document.getElementById('linknext').className = "rollover"; 
		document.getElementById('linkprev').className = "rollover";
	}
	multiPanel2(0);
	panelTitle = document.getElementById(multiPanels[0]).title; panelId = document.getElementById(multiPanels[0]).id;
}
/* ################ End Multi Selector  ################ */

/* ################ Registration  ################ */
/* TODO: move form validation to here? */
function showUkOnly(el) {
	var allUk = document.getElementsByClassName("ukOnly"), i;
	if (el.options[el.selectedIndex].value == 'gb' || el.options[el.selectedIndex].value == 'GB') {
		for (i = 0; i < allUk.length; i++) {
			allUk[i].style.visibility = 'visible';
		}
	} else {
		for (i = 0; i < allUk.length; i++) {
			allUk[i].style.visibility = 'hidden';
		}
	}
}
function showOnly(el) {
	if (el.checked) {
		document.getElementById('not').style.display = "none";
	} else {
		document.getElementById('not').style.display = "table-row";
	}
}
/* ################ End Registration ################ */

/* ################ Top Nav ################ */
function topmenuClear() {
	var navRoot = document.getElementById("topmenu");
		for (var i=0; i<navRoot.childNodes.length; i++) {
			var node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.className=node.className.replace("over", "");
				node.childNodes[0].className="";
			}
		}
		if (currentID && currentID != "") {
			document.getElementById(currentID).className = "current";
		}
}

function topmenuHover() {
var i, j, node;
	if(document.getElementById("topmenu")) {
		var navRoot = document.getElementById("topmenu");
		for (j=0; j<navRoot.childNodes.length; j++) {
			if (navRoot.childNodes[j].className == 'current') {
			currentID = navRoot.childNodes[j].id;
			}
		}
		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					clearTimeout(navTimer); topmenuClear();
					this.className=this.className.replace("fade",""); 	
					this.className+=" over";
					this.childNodes[0].className="over"; 
					if (currentID && currentID != "" && currentID != this.id) {
						document.getElementById(currentID).className="current fade";
					}
				};
				node.onmouseout=function() {
					navTimer = setTimeout(topmenuClear,2000);
				};
			}
		}
	}
}
function showlang() {
	if(document.getElementById('lang-list').style.display == "none") {
		document.getElementById('lang-list').style.display = "block";
	} else if (document.getElementById('lang-list').style.display == "block") {
	document.getElementById('lang-list').style.display = "none";
}
}
function setupLangs() {
	if (document.getElementById('lang-list')) {
		document.getElementById('lang-list').style.display = "none"; /* doing this is less work then querying computed styles */
	}
}
/* ################ End Top Nav ################ */

/* ################ Search  ################ */
function showStartsWith(formName) {
	if (!formName || formName === "") {formName = "search";}
	var	f = document.forms[formName];
	if (document.getElementById('c1o1') && document.getElementById('c1o2')) {
		document.getElementById('c1o2').style.display = 'block'; document.getElementById('c1o1').style.display = 'none'; 
		f.elements['keyword'].disabled = true; f.elements['title'].disabled = false;
	}
}
function showKeyword(formName) {
	if (!formName || formName === "") {formName = "search";}
	var	f = document.forms[formName];
	if (document.getElementById('c1o1') && document.getElementById('c1o2')) {
		document.getElementById('c1o1').style.display = 'block';  document.getElementById('c1o2').style.display = 'none'; 
		f.elements['keyword'].disabled = false; f.elements['title'].disabled = true;
	}
}
function showAreas(formName) {
	if (!formName || formName === "") {formName = "search";}
	var	f = document.forms[formName];
	if (document.getElementById('c2o2') && document.getElementById('c2o1')) {
		document.getElementById('c2o2').style.display = 'block';  document.getElementById('c2o1').style.display = 'none'; 
		f.elements['location'].disabled = true; f.elements['s-areas'].disabled = false;
	}
}
function showLocation(formName) {
	if (!formName || formName === "") {formName = "search";}
	var	f = document.forms[formName];
	if (document.getElementById('c2o2') && document.getElementById('c2o1')) {
		document.getElementById('c2o1').style.display = 'block';  document.getElementById('c2o2').style.display = 'none'; 
		f.elements['s-areas'].disabled = true; document.getElementById('sub-areas').disabled = true;
		f.elements['location'].disabled = false;
	}
}
function showPeriod(formName) {
	if (!formName || formName === "") {formName = "search";}
	var	f = document.forms[formName];
	if (document.getElementById('c3o2') && document.getElementById('c3o1')) {
		f.elements['from.day'].disabled = true; f.elements['from.month-year'].disabled = true;
		f.elements['to.day'].disabled = true; f.elements['to.month-year'].disabled = true;
		f.elements['duration'].disabled = false;
		document.getElementById('c3o1').style.display = 'block';  document.getElementById('c3o2').style.display = 'none'; 
	}
}
function showDates(formName) {
	if (!formName || formName === "") {formName = "search";}
	var	f = document.forms[formName];
	if (document.getElementById('c3o2') && document.getElementById('c3o1')) {
		f.elements['from.day'].disabled = false; f.elements['from.month-year'].disabled = false;
		f.elements['to.day'].disabled = false; f.elements['to.month-year'].disabled = false;
		f.elements['duration'].disabled = true; 
		document.getElementById('c3o2').style.display = 'block'; document.getElementById('c3o1').style.display = 'none'; 
	}
}
function showFacs(formName) {
	if (!formName || formName === "") {formName = "search";}
	if (document.getElementById('facilities-inner')) {
	if (document.getElementById('facilities-inner').style.display == 'none') {
		document.getElementById('facilities-inner').style.display = 'block'; document.getElementById('facilities-link').className = 'minus';
	} else {
		document.getElementById('facilities-inner').style.display = 'none'; document.getElementById('facilities-link').className = 'plus';
	}
	}
}

/* Dates */
function getMaxDay(selectedMonth,selectedYear) {
	var maxDay;
	if (selectedMonth == '2') { if (leapYear(selectedYear) ) {maxDay = 29;} else {maxDay = 28;} }    else { if  (selectedMonth == '4' || selectedMonth == '6' || selectedMonth == '9' || selectedMonth == '11') { maxDay = 30;} else { maxDay = 31; } }
  return maxDay;
}
function getMinDay(selectedMonth,selectedYear) {
	var minDay;
	if (selectedMonth == currentMonth && selectedYear == currentYear) { minDay = currentDay; }
	else { minDay = 1; }
	return minDay;
}
function checkMonths(whichEnd,dftOpt,formName) {
	if (!dftOpt || dftOpt === "") { dftOpt = 0; }
	if (!formName || formName === "") { formName = "search"; }
	var	f = document.forms[formName], whichMonth = f.elements[whichEnd + ".month-year"],  whichDay =  f.elements[whichEnd + ".day"],  inDateArray = whichMonth.options[whichMonth.selectedIndex].value.split("-"),  selectedMonth = parseInt(inDateArray[0],10),  selectedYear =  parseInt(inDateArray[1],10), selectedDay = whichDay.options[whichDay.selectedIndex].value,  maxDay = getMaxDay(selectedMonth,selectedYear), minDay = getMinDay(selectedMonth,selectedYear);
	while (whichDay.length > dftOpt) { whichDay.remove(dftOpt); }
	for (var k = minDay; k <= maxDay; k++) {
		var kpos = k - minDay + dftOpt, ksel = false; 
		if (k == selectedDay) { ksel = true; }
     	whichDay.options[kpos] = new Option(k, k, false, ksel);
	}
}

function checkDates(whichEnd,dftOpt,formName) {
	if (!dftOpt || dftOpt === "") { dftOpt = 0; }
	if (!formName || formName === "") { formName = "search"; }
	var f = document.forms[formName], toMonth, fromMonth, toDay, fromDay;
	if (f.elements['from.month-year'] && f.elements['to.month-year']) {
		toMonth = f.elements['to.month-year']; fromMonth = f.elements['from.month-year'];toDay = f.elements['to.day']; fromDay = f.elements['from.day'];
		if (toMonth.selectedIndex < fromMonth.selectedIndex || (toMonth.selectedIndex == fromMonth.selectedIndex && toDay.selectedIndex <= fromDay.selectedIndex))  {
			if (whichEnd == 'from') {
				if (fromDay.selectedIndex == fromDay.length-1) {toMonth.selectedIndex = fromMonth.selectedIndex+1; checkMonths('to',dftOpt,formName); toDay.selectedIndex = 0;}
				else {toMonth.selectedIndex = fromMonth.selectedIndex; checkMonths('to',dftOpt,formName); toDay.selectedIndex = fromDay.selectedIndex+1;}
			} else if (whichEnd == 'to') {
				if (toDay.selectedIndex === 0) {
					if ( toMonth.selectedIndex !== 0) {fromMonth.selectedIndex = toMonth.selectedIndex-1; checkMonths('from',dftOpt,formName); fromDay.selectedIndex = fromDay.length-1;} 
					else {fromMonth.selectedIndex = toMonth.selectedIndex; checkMonths('from',dftOpt,formName); fromDay.selectedIndex = 0; toDay.selectedIndex = 1; }
				} else {fromMonth.selectedIndex = toMonth.selectedIndex; checkMonths('from',dftOpt,formName); fromDay.selectedIndex = toDay.selectedIndex-1;}
			}
		}
	}
}


/* Rooms related */
function deleteRoom(whRoom) {
	var oldRoom = document.getElementById(whRoom);
	oldRoom.parentNode.removeChild(oldRoom);
	return true;
}
function addNewRoom(formName) {
if (!formName || formName === "") {formName = "search";}
var searchSuffix,  f = document.forms[formName], parentEl, roomContent, totalRooms, newRoom, newLastRoom, nextRoom; 
	if (formName == 'lpsearch') {searchSuffix = "lp";}
	if (formName == 'pdsearch') {searchSuffix = "pd";}
	if (formName == 'assearch') {searchSuffix = "as";}
	if (formName == 'search') {searchSuffix = "sb";}
	if (formName == 'search') { nextRoom = document.createElement("tbody"); } else { nextRoom = document.createElement("div");}
	parentEl = "roomsData-" + searchSuffix;
	totalRooms = +f.elements['totalRooms'].value;
	newRoom = totalRooms + 1;
	newLastRoom = "r" + newRoom + "-" + searchSuffix; 
    nextRoom.setAttribute("id", newLastRoom);  
    document.getElementById(parentEl).appendChild(nextRoom);
    document.getElementById(newLastRoom).className = "room";  
	if (formName == 'search') {
		roomContent = '<tr><td><b>Room '+newRoom+':</b></td><td>Adults:<br/><select name="adults" class="dig1"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select></td><td>Children:<br /><select name="children" class="dig1"><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select></td></tr>' ;
	} else {
		roomContent = '<b>Room '+newRoom+':</b> Adults: <select name="adults" class="dig1"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select> Children: <select name="children" class="dig1"><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>' ;
	} 
	document.getElementById(newLastRoom).innerHTML = roomContent;
	f.elements['totalRooms'].value = newRoom;
	return true;
}

function checkRooms(formName) {
if (!formName || formName === "") {formName = "search";}
var searchSuffix, f = document.forms[formName], rInit, r, oldTotalRooms, newTotalRooms, fsHeight;
if (formName == 'lpsearch') {searchSuffix = "lp";}
if (formName == 'pdsearch') {searchSuffix = "pd";}
if (formName == 'search') {searchSuffix = "sb";}
if (formName == 'assearch') {searchSuffix = "as";}
oldTotalRooms = +f.elements['totalRooms'].value;
newTotalRooms = +f.elements['roomsNum'].options[f.elements['roomsNum'].selectedIndex].value;
	if (newTotalRooms == oldTotalRooms) {
		return false;	
	} else if (newTotalRooms < oldTotalRooms) {
		rInit = newTotalRooms + 1;
		for (r = rInit; r <= oldTotalRooms; r++) {
			var rpos = "r" + r + "-" + searchSuffix;
			deleteRoom(rpos);
		}
	f.elements['totalRooms'].value = newTotalRooms;
	} else if (newTotalRooms > oldTotalRooms) {
		rInit = oldTotalRooms + 1;
		for (r = rInit; r <= newTotalRooms; r++) {
			addNewRoom(formName);
		}
	}
	if (document.getElementById('roomsfs')) {
		fsHeight = getHeight(document.getElementById('roomsfs'));  // just querying the height makes FF behave, no need to do anything with the result of the query!
	}
}

function getTotal(formName) {
	if (!formName || formName === "") {return false;}
	var conPrice = "", conTotal, total = 0, k, f = document.forms[formName], t = "partyprice-"+formName;
	for (k =0; k < f.elements.length; k++) {
		if (f.elements[k].type == "radio" && f.elements[k].checked === true) {
		total += +parseFloat(f.elements[k].className);	
		}
	}
	if (conRate && conRate !== "" && conCurr && conCurr !== "") {
		conTotal = total * conRate;
		conPrice = " <small>("+conCurr+conTotal.toFixed(2)+")</small>";
	}
	document.getElementById(t).innerHTML = "Total Price: Â£"+total.toFixed(2)+conPrice ;
}

function advancedSearch(formName) {
	if (!formName || formName === "") {formName = "search";}
	var f = document.forms[formName], searchSuffix, allAdv = document.getElementsByClassName('adv'), linktxt, asid, alid, i, searchAction;
	if (formName == 'lpsearch') {searchSuffix = "lp";}
	if (formName == 'pdsearch') {searchSuffix = "pd";}
	if (formName == 'search') {searchSuffix = "sb";}
	asid = 'advanced-search-' + searchSuffix;
	alid = 'advanced-link-' + searchSuffix;
	searchToggle = "advanced";
	if (langCode == '/') { langCode = '';}
	if (searchPath && searchPath !="") { searchAction = searchPath  } 
	else {	searchAction = langCode + "/" + currentSection.split(".")[0] + "/search";}
	if (formName != "lpsearch") { f.action = searchAction; }
	showPeriod(formName); showAreas(formName);
	document.getElementById(asid).style.display = 'block'; 
	document.getElementById(alid).className="minus";
	document.getElementById(alid).href="javascript:whichSearch('"+ formName +"')";
	removeChildren(document.getElementById(alid));
	linktxt = document.createTextNode(fewerOptions);
	document.getElementById(alid).appendChild(linktxt);
	for (i = 0; i < allAdv.length; i++) { if(allAdv[i].id != "sub-areas") { allAdv[i].disabled = false; } }
}

function simpleSearch(formName) {
	if (!formName || formName === "") {formName = "search";}
	var searchSuffix, f = document.forms[formName], asid, alid, allAdv = document.getElementsByClassName('adv'), linktxt = document.createTextNode(moreOptions), i, searchAction;
	if (formName == 'lpsearch') {searchSuffix = "lp";}
	if (formName == 'pdsearch') {searchSuffix = "pd";}
	if (formName == 'search') {searchSuffix = "sb";}
	asid = 'advanced-search-' + searchSuffix;
	alid = 'advanced-link-' + searchSuffix;
	searchToggle = "simple";
	if (langCode == '/') {	langCode = '';}
	searchAction = langCode + "/search";
	if (formName != "lpsearch") { f.action = searchAction; }
	if(document.getElementById('c1o2') && document.getElementById('keyword')) { showKeyword(formName); }
	document.getElementById(asid).style.display = 'none'; 
	document.getElementById(alid).className="plus";
	document.getElementById(alid).href="javascript:whichSearch('"+ formName +"')";
	removeChildren(document.getElementById(alid));
	document.getElementById(alid).appendChild(linktxt);
	for (i = 0; i < allAdv.length; i++) { allAdv[i].disabled = true; }
}
function whichSearch(formName) {
	if	(searchToggle == "simple") {searchToggle = "advanced"; advancedSearch(formName);}
	else {searchToggle = "simple"; simpleSearch(formName);}
}

function restrictSearch() {
	if (currentSection === "") {return false; }
	var whichSection = 	document.forms['search'].elements['section'].options[document.forms['search'].elements['section'].selectedIndex].value, subSections = whichSection.split("."), allAdv, i, linktxt = document.createTextNode("More Search Options"), switchDates = false, switchLocation = false, switchKeyword = false;
	if (document.getElementById('c3o1') && document.getElementById('c3o1').style.display == 'block') {switchDates = true;}
	if (document.getElementById('c2o1') && document.getElementById('c2o1').style.display == 'block') {switchLocation = true;}
	if (document.getElementById('c1o1') && document.getElementById('c1o1').style.display == 'block') {switchKeyword	= true;}
	if (subSections[0] == currentSection) {
		allAdv = document.getElementsByClassName('adv');
		for (i = 0; i < allAdv.length; i++) {
			if(allAdv[i].id != "sub-areas") {
				allAdv[i].disabled = false;
			}
		}
		document.getElementById('advanced-control-sb').style.block = "block";
		advancedSearch();
		switchDates ? showPeriod() : showDates();
		switchLocation ? showLocation() : showAreas();
		switchKeyword ? showKeyword() : showStartsWith();
	} else {
		simpleSearch();
		if (subSections[0] !== "" && langCode != '/de' && langCode != '/es' && langCode != '/fr' && langCode != '/nl' && langCode != '/it') {
			document.getElementById('advanced-control-sb').style.block = "block";
			document.getElementById('advanced-link-sb').className = "plus";
			document.getElementById('advanced-link-sb').href = "/"+subSections[0]+"/";
			document.getElementById('advanced-link-sb').innerHTML = "";
			document.getElementById('advanced-link-sb').appendChild(linktxt);
		} else {
			document.getElementById('advanced-control-sb').style.display = "none";
		}
	}
}

function setDate(formName,idate,oday,omonth) {
if (!formName || formName === "") {formName = "search";}
var f = document.forms[formName], mi, miVal, di, diVal,  ym = omonth.split("."), whichEnd = ym[0], idateArray = f.elements[idate].value.split("."); // input should (d)d.mm-yyyy
	for (mi=0; mi < f.elements[omonth].options.length; mi++) {
		if (f.elements[omonth].options[mi].value.length == 6) {
			miVal = "0" + f.elements[omonth].options[mi].value;
		} else {
			miVal = f.elements[omonth].options[mi].value;
		}
		if (miVal == idateArray[1]) {
			f.elements[omonth].options[mi].selected = true;
		}	
	} 
	checkMonths(whichEnd,0,formName);
	for (di=0; di < f.elements[oday].options.length; di++) {
		diVal = f.elements[oday].options[di].value;
		if (diVal == idateArray[0]) {
			f.elements[oday].options[di].selected = true;
		}	
	}
	checkDates(whichEnd,0,formName);
}

function setDropDownDate(cal) {
	if (cal.params.inputField.name == 'from.date') {
		setDate(cal.params.formName,'from.date','from.day','from.month-year');
	} else if (cal.params.inputField.name == 'to.date') {
		setDate(cal.params.formName,'to.date','to.day','to.month-year');
	} 	
}

/* Disallow dates in the past or prior to start date */
function dateStatusFrom(date) { var	min = new Date(); min.setDate(min.getDate() - 1); if (date.getTime() < min.getTime() ) { return true; }	else { return false; } }

function setupAcc(formName) {
if (!formName || formName === "") {formName = "search";}
var f = document.forms[formName],searchSuffix, r2, r3, r4;
switch (formName) {
		case 'hpsearch' : searchSuffix = "hp"; break;
		case 'lpsearch' : searchSuffix = "lp"; break;
		case 'pdsearch' : searchSuffix = "pd"; break;
		case 'rfsearch' : searchSuffix = "rf"; break;
		case 'assearch' : searchSuffix = "as"; break;
		case 'search'   : searchSuffix = "sb"; break;
}
if (formName != 'hpsearch' && formName != 'rfsearch') {
	r2 = "r2-" + searchSuffix; r3 = "r3-" + searchSuffix; r4 = "r4-" + searchSuffix;
	switch (f.elements['roomsNum'].selectedIndex) {
		case 0 : deleteRoom(r2);  deleteRoom(r3);  deleteRoom(r4); break;
		case 1 : deleteRoom(r3); deleteRoom(r4); break;
		case 2 : deleteRoom(r4); break;
	}
	f.elements['totalRooms'].value = f.elements['roomsNum'].options[f.elements['roomsNum'].selectedIndex].value;
}
switch (formName) {
		case 'rfsearch' : break;
		case 'hpsearch' : checkMonths('from',0,formName); break;
		default 		: checkMonths('from',0,formName); checkMonths('to',0,formName);break;
	}
if (formName == 'search' && document.getElementById('search-summary')) { f.style.display = "none"; }
}

function copyOptions(src,trg,firstO,lastO,dftText,dftValue) {
	var srcS =  document.getElementById(src),  trgS =  document.getElementById(trg), i;
	while (trgS.length > 0) { trgS.remove(0);}
	if (firstO && lastO) {
		if (dftText) {
			trgS.options[0] = new Option(dftText, dftValue, false, false);
		}
		for (i = firstO; i < lastO; i++) {
			trgS.options[trgS.options.length] = new Option(srcS.options[i].text, srcS.options[i].value, srcS.options[i].defaultSelected, srcS.options[i].selected);	
		}
		trgS.disabled = false;
	} else {
		trgS.options[0] = new Option('Please select an area','', false, false);
		trgS.disabled = true;
	}
}

function popSubAreas(whSubArea,s1,s2) {
if (!s1 || s1 == "") {s1 = 's-areas';}
if (!s2 || s2 == "") {s2 = 'sub-areas';}
	switch (whSubArea) {
		case 0 : copyOptions(s1,s2);	
			break;
		case 1: copyOptions(s1,s2,1,35,allCentral,'central');
				break;
		case 2: copyOptions(s1,s2,36,70,allNorth,'north');
				break;
		case 3: copyOptions(s1,s2,71,99,allEast,'east');
				break;
		case 4: copyOptions(s1,s2,100,135,allSouth,'south');
				break;
		case 5: copyOptions(s1,s2,136,167,allWest,'west');
				break;
	}
}

function removeOverlay() {
	if (BrowserDetect.browser == "Explorer") {
		for (k = tags.length; k > 0; ) {
			ar = document.getElementsByTagName(tags[--k]); cc = null;
			for (i = ar.length; i > 0;) {
				cc = ar[--i];
				cc.style.visibility = "visible";
			}
		}
	}
	document.getElementById('search-overlay').className = "search-overlay";
	removeChildren(document.getElementById('search-overlay'));
}

function searchOverlay() {
	var overlay = document.createElement("div"), obj = document.createElement("object"), em = document.createElement("embed"), overlayDiv = document.createElement("div"), overlayImg = document.createElement("img"), overlayImg2 = document.createElement("img"), tags = ["applet", "iframe", "select"], i, k, ar, cc, w, h, oVideo, oImg;
	
if (window.location.href.indexOf('preview') != -1) {
	w = '607'; h = '282'; oVideo = '#';  oImg = "#";
} else {
	w = '607'; h = '282'; oVideo = '#'; oImg = "#";
}
	detectFlash();
	overlay.id = "search-overlay";
	document.body.appendChild(overlay);
	if(hasRightVersion) {
			obj.setAttribute("codebase","http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0");
			obj.setAttribute("width",w);
			obj.setAttribute("height",h);
			obj.id="vidO";
			obj.appendChild(createParam("allowScriptAccess","always"));
			obj.appendChild(createParam("movie",oVideo));
			obj.appendChild(createParam("play","true"));
			obj.appendChild(createParam("wmode","transparent"));
			obj.appendChild(createParam("quality","high"));
			if(!window.ActiveXObject && BrowserDetect.browser != "Opera"){
				em.id="vidE";
				em.setAttribute("src",oVideo);
				em.setAttribute("quality","high");
				em.setAttribute("wmode","transparent");
				em.setAttribute("width",w);
				em.setAttribute("height",h);
				em.setAttribute("play","true");
				em.setAttribute("menu","false");
				em.setAttribute("allowscriptaccess","always");
				em.setAttribute("type","application/x-shockwave-flash");
				em.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");
			obj.appendChild(em);
			}
			overlay.appendChild(obj);
			obj.setAttribute("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
	} else {
		overlayImg.src = oImg;
		overlayImg.alt="";
		overlayImg.width=w;
		overlayImg.height=h;
		overlay.appendChild(overlayImg);
	}
	if (BrowserDetect.browser == "Explorer") {
		for (k = tags.length; k > 0; ) {
			ar = document.getElementsByTagName(tags[--k]); cc = null;
			for (i = ar.length; i > 0;) {
				cc = ar[--i];
				cc.style.visibility = "hidden";
			}
		}
	}
	WT.cg_n=WT.cg_s=WT.mc_id=WT.z_vlSupplier="";
	dcsMultiTrack('DCS.dcsuri','/accommodation/search/overlay','WT.ti','Accommodation Search Overlay','WT.si_n','BookingSearch','WT.si_p','Splash');	
	WT.si_n=WT.si_p="";
	document.getElementById('search-overlay').className = 'search-overlay2';
	
	
	if(window.addEventListener)	{ 
		document.body.addEventListener('unload', function(e) {removeOverlay(); }, false); 
	} else if(window.attachEvent) {
		document.body.attachEvent('onunload', function(e) {removeOverlay(); }, false); 
	} 
}
/* ################ End Search  ################ */

function showBookmarks() {
	if(window.print && document.getElementById('addPrint')) {
		document.getElementById('addPrint').innerHTML = '<a href="#" onclick="window.print(); return false;">Print this page</a>';
	}
	if(BrowserDetect.browser == "Explorer" && document.getElementById('addBook')) {
		document.getElementById('addBook').innerHTML = '<a href="#" onclick="doBookmark(window.location.href,document.title);return false;">Bookmark this page</a>';
	}
}
function doBookmark(u,t) {
	window.external.AddFavorite(u,t);
}

/* ################ Map  ################ */
function zoomMap() {
	var el = document.getElementById('venueMap'), product_name = getObjInnerText(document.getElementsByTagName("h1")[0]);
	if (el.src.indexOf('scale=0.5') != -1) { el.src = el.src.replace('scale=0.5', 'scale=1.0');
		WT.cg_n=WT.cg_s=WT.mc_id=WT.si_n=WT.si_p=WT.z_vlSupplier="";
		dcsMultiTrack('DCS.dcsuri','/js/map/zoom/in','WT.ti','Map: Zoom In', 'WT.z_ltvName', 'Map: '+product_name, 'WT.z_ltvZoomIn', '1');	
	} 
	else { el.src = el.src.replace('scale=1.0','scale=0.5');
		WT.cg_n=WT.cg_s=WT.mc_id=WT.si_n=WT.si_p=WT.z_vlSupplier="";
		dcsMultiTrack('DCS.dcsuri','/js/map/zoom/out','WT.ti','Map: Zoom Out', 'WT.z_ltvName', 'Map: '+product_name,'WT.z_ltvZoomOut', '1');	
	}
	WT.z_ltvName=WT.z_ltvZoomIn=WT.z_ltvZoomOut=WT.z_ltvScrollMap="";
}

function scrollMap(direction) {
	var i, offsetx = 0, offsety = 0, newURL = "#", newx, newy, elArray = document.getElementById('venueMap').src.split(/[\?\&]/), product_name = getObjInnerText(document.getElementsByTagName("h1")[0]);
	for (i = 0; i < elArray.length; i++) {
		if (elArray[i].indexOf('offset-x') != -1 ) { offsetx = elArray[i].substring(9);}
		else if (elArray[i].indexOf('offset-y') != -1 ) { offsety = elArray[i].substring(9);}
	}
	switch (direction) {
		case 'n'    : newx=offsetx;  newy=+offsety+500;	break;	
		case 'e'    : newx=+offsetx+500;  newy=offsety;	break;	
		case 'w'    : newx=+offsetx-500;  newy=offsety;	break;	
		case 's'    : newx=offsetx;  newy=+offsety-500;	break;	
		case 'ne'   : newx=+offsetx+500;  newy=+offsety+500; break;	
		case 'nw'   : newx=+offsetx-500;  newy=+offsety+500; break;	
		case 'se'   : newx=+offsetx+500;  newy=+offsety-500; break;
		case 'sw'   : newx=+offsetx-500;  newy=+offsety-500; break;					
		default: newx=offsetx;  newy=offsety;
	}
	for (i = 1; i < elArray.length; i++) {	
		if (elArray[i].indexOf('offset-x') == -1 && elArray[i].indexOf('offset-y') == -1 ) {newURL+= elArray[i]+'&';}
	}
	newURL+= 'offset-x='+newx+'&offset-y='+newy;
	document.getElementById('venueMap').src = newURL;
	WT.cg_n=WT.cg_s=WT.mc_id=WT.si_n=WT.si_p=WT.z_vlSupplier="";
	dcsMultiTrack('DCS.dcsuri','/js/map/scroll/'+direction,'WT.ti','Map: Scroll '+direction, 'WT.z_ltvName', 'Map: '+product_name,'WT.z_ltvScrollMap', '1');	
	WT.z_ltvName=WT.z_ltvZoomIn=WT.mc_id=WT.z_ltvZoomOut=WT.z_ltvScrollMap="";
}
/* ################ End Map  ################ */


/* ################ Flash ################ */
function transcriptLink() {
	var theTranscript = "#"+whichVid+".html";
	window.open(theTranscript, 'trans', 'width=550, height=550, location=no, scrollbars=yes');
	return false;
}
function drawTV(tagID, myMovie) {
var w, h, container = document.getElementById(tagID), obj = document.createElement("object"), em = document.createElement("embed"), trans = document.createElement("a"), transPic = document.createElement("img"), transText = document.createTextNode('read the transcript');
if (BrowserDetect.browser == "Explorer" || BrowserDetect.browser == "WebKit" ) { w = '540'; h = '352'; } else { w = '240'; h = '184'; }
	if(hasRightVersion && document.getElementById(tagID).innerHTML) {
		obj.setAttribute("codebase","http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0");
		obj.setAttribute("width",w);
		obj.setAttribute("height",h);
		obj.id="vidO";
		obj.appendChild(createParam("allowScriptAccess","always"));
		obj.appendChild(createParam("movie",myMovie));
		obj.appendChild(createParam("play","true"));
		obj.appendChild(createParam("wmode","transparent"));
		obj.appendChild(createParam("quality","high"));
		obj.appendChild(createParam("scale","noscale"));
		obj.appendChild(createParam("salign","rt"));
		if(!window.ActiveXObject && BrowserDetect.browser != "Opera" && BrowserDetect.browser != "WebKit" ){
			em.id="vidE";
			em.setAttribute("src",myMovie);
			em.setAttribute("quality","high");
			em.setAttribute("wmode","transparent");
			em.setAttribute("width",w);
			em.setAttribute("height",h);
			em.setAttribute("play","true");
			em.setAttribute("allowscriptaccess","always");
			em.setAttribute("type","application/x-shockwave-flash");
			em.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");
			em.setAttribute("salign","rt");
			em.setAttribute("scale","noscale");
			obj.appendChild(em);
		}
		removeChildren(container);
		container.appendChild(obj);
		obj.setAttribute("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
		if (tl === true) {
			trans.setAttribute("href","#");
			trans.id="transcriptLink";
			transPic.setAttribute("src","#");
			transPic.setAttribute("alt","");
			trans.appendChild(transPic);
			trans.appendChild(transText);
			container.appendChild(trans);
			document.getElementById("transcriptLink").style.display = "block";
			document.getElementById("transcriptLink").style.marginTop = "188px";
			document.getElementById("transcriptLink").style.marginBottom = "10px";
			if(window.addEventListener)	{ 
				document.getElementById("transcriptLink").addEventListener('click', transcriptLink, false); 
			} else if(window.attachEvent) {
				document.getElementById("transcriptLink").attachEvent('onclick', transcriptLink, false); 
			} 
		}
		container.style.height = "200px";
		if (BrowserDetect.browser == "WebKit") {
			vidO.style.clip = "rect(0,540px,184px,300px)";
		}
	}
}

function goBig() {
	var el, node, dHeight, i;
	if (BrowserDetect.browser != "Explorer") {
		if(document.getElementById('vidO')) {document.getElementById('vidO').style.width = "540px"; document.getElementById('vidO').style.height = "352px"; }
		if(document.getElementById('vidE')) { document.getElementById('vidE').style.width = "540px"; document.getElementById('vidE').style.height = "352px";}
		if (BrowserDetect.browser == "WebKit") {
			document.getElementById('vidO').style.clip = "auto"; document.getElementById('vidE').style.clip = "auto";
		}
		if(document.getElementById('prod-desc')) {
			el = document.getElementById('prod-desc');
			for (i = 0; i < el.childNodes.length; i++) {
				node = el.childNodes[i];
				if (node.nodeName == 'DIV' && node.className == 'panel-middle' ) {
					descTempHeight = getHeight(node);
					dHeight = +descTempHeight.substring(0,descTempHeight.indexOf('px'));
					if (dHeight < 350) {
						node.style.height = "350px";
						disableExt = 'true';
					}
				}
			}
		}
	}
}

function goSmall() {
	var el, i, node;
	if (BrowserDetect.browser != "Explorer") {
		if(document.getElementById('vidO')) {document.getElementById('vidO').style.width = "240px"; document.getElementById('vidO').style.height = "184px";}
		if(document.getElementById('vidE')) {document.getElementById('vidE').style.width = "240px"; document.getElementById('vidE').style.height = "184px"; }
		if (BrowserDetect.browser == "WebKit") {
			document.getElementById('vidO').style.clip = "rect(0,540px,184px,300px)";document.getElementById('vidE').style.clip = "rect(0,540px,184px,300px)";
		}
		if(document.getElementById('prod-desc')) {
			el = document.getElementById('prod-desc');
			for (i = 0; i < el.childNodes.length; i++) {
				node = el.childNodes[i];
				if (node.nodeName == 'DIV' && node.className == 'panel-middle' ) {
					node.style.height = descTempHeight;
					disableExt = 'false';
				}
			}
		}
	}
}
  
 
function videoMultiTrackWrapper(trackPath,trackTitle,trackEvent) {
	WT.ti=WT.cg_n=WT.cg_s=WT.mc_id=WT.si_n=WT.si_p=WT.z_vlSupplier=""; // null all values we don't use
	dcsMultiTrack("DCS.dcsuri",trackPath,"WT.z_ltvName","Video: "+trackTitle,trackEvent,"1");
	DCS.dcsuri=WT.z_ltvName=WT.z_ltvView=WT.z_ltvPlay=WT.z_ltvFinished=""; // null all values we do use
}

function gameMultiTrackWrapper(trackPath,trackTitle,trackEvent) {
	WT.ti=WT.cg_n=WT.cg_s=WT.mc_id=WT.si_n=WT.si_p=WT.z_vlSupplier=""; // null all values we don't use
	dcsMultiTrack("DCS.dcsuri",trackPath,"WT.z_ltvName","Game: "+trackTitle,trackEvent,"1");
	DCS.dcsuri=WT.z_ltvName=WT.z_ltvView=WT.z_ltvPlay=WT.z_ltvSend=""; // null all values we do use
}
  

  
  
function drawMovie(tagID, myMovie, w, h) {
var container = document.getElementById(tagID) ,obj = document.createElement("object"), em = document.createElement("embed");
		if(hasRightVersion && document.getElementById(tagID).innerHTML) {
			obj.setAttribute("codebase","http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0");
			obj.setAttribute("width",w);
			obj.setAttribute("height",h);
			obj.appendChild(createParam("allowScriptAccess","always"));
			obj.appendChild(createParam("movie",myMovie));
			obj.appendChild(createParam("play","true"));
			obj.appendChild(createParam("wmode","transparent"));
			obj.appendChild(createParam("quality","high"));
			if(!window.ActiveXObject && BrowserDetect.browser != "Opera"){
				em.setAttribute("src",myMovie);
				em.setAttribute("quality","high");
				em.setAttribute("wmode","transparent");
				em.setAttribute("width",w);
				em.setAttribute("height",h);
				em.setAttribute("play","true");
				em.setAttribute("menu","false");
				em.setAttribute("allowscriptaccess","always");
				em.setAttribute("type","application/x-shockwave-flash");
				em.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");
			obj.appendChild(em);
			}
			removeChildren(container);
			container.appendChild(obj);
			obj.setAttribute("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
	}
}

/* ################ End Flash ################ */

/* ################ Adverts ################ */
function adLink(adSection, adSize) {
	document.write('<scr'+'ipt src="http://ad.uk.doubleclick.net/adj/Visit.com/'+adSection+';'+adlink_dcopt+'tile='+adlink_tile+';sz='+adSize+';ord='+adlink_randomnumber+'?"><\/scr'+'ipt>');
}
/* ################ End Adverts  ################ */

/* ################ Trade Doubler ################ */
function setCookie(name, value, expires, path, domain, secure) {
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var today = new Date();
	today.setTime( today.getTime() );
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie= name + "=" + escape(value) + ((expires) ? "; expires=" + expires_date.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}

function getVar(name) {
	var name_index, value, end_of_value, space, get_string = document.location.search, return_value = '';
	do {
		name_index = get_string.indexOf(name + '=');
		if(name_index != -1) {
			get_string = get_string.substr(name_index + name.length + 1,get_string.length - name_index);
			end_of_value = get_string.indexOf('&');
			if(end_of_value != -1) {
				value = get_string.substr(0, end_of_value);
			} else	{
				value = get_string;
			}
			if(return_value === '' || value === '') {
				return_value += value;
			} else {
				return_value += ', ' + value;
			}
		}
	}
	while(name_index != -1) {
		space = return_value.indexOf('+');
	}
	while(space != -1) {
		return_value = return_value.substr(0, space) + ' ' + return_value.substr(space + 1, return_value.length);
		space = return_value.indexOf('+');
	}
	return(return_value);
}
function getCookie(name) {
	var dc = document.cookie, prefix = name + "=", begin = dc.indexOf("; " + prefix), end = document.cookie.indexOf(";", begin);;
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin !== 0) {return null;}
	} else {
		begin += 2;
	}
	if (end == -1) {
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
}
function writeTDtag() {
	var leadNumber = Math.round((new Date().getTime() * Math.random())), reportInfo = "";
	reportInfo = "f2="+ProductID;
	reportInfo = escape(reportInfo);
	document.write("<img src='http://tbl.tradedoubler.com/report?organization="+organization+"&event="+event+"&leadNumber="+leadNumber+"&orderValue=1&tduid="+tduid+"&reportInfo="+reportInfo+"' height='1' width='1' alt='' />");
}
/* ################ End Trade Doubler ################ */

/* ################ Start DART ################ */
function writeDart(src,type,cat,subd1,subd0,act) {
	var s0 = "ad.", s1 = "", ac = "activity", axel = Math.random()+"", a = axel * 10000000000000;
	if (subd0) {s0 = subd0 + ".";} 
	if (subd1) {s1 = subd + ".";}
	if (act) {ac = act;} 
	document.write('<img src="http://'+ s0 + s1 +'doubleclick.net/' + ac + ';src='+src+';type='+type+';cat='+cat+';ord=1;num='+ a + '?" width="1" height="1" alt="" />');
}
function writeDartIframe(src,type,cat,subd1,subd0,act) {
	var s0 = "ad.", s1 = "", ac = "activity", axel = Math.random()+"", a = axel * 10000000000000;
	if (subd0) {s0 = subd0 + ".";} 
	if (subd1) {s1 = subd + ".";}
	if (act) {ac = act;} 
document.write('<iframe src="http://'+ s0 + s1 +'doubleclick.net/' + ac + ';src='+src+';type='+type+';cat='+cat+';ord=1;num='+ a + '?" width="1" height="1" frameborder="0"></iframe>');
	}
/* ################ End DART ################ */


function showOfferTac() {
	document.getElementById('book-offer-tac').className = "dynamic";
	document.getElementById('book-offer-tac').style.display = 'block';	
}
function hideOfferTac() {
if (document.getElementById('book-offer-tac')) {
	document.getElementById('book-offer-tac').style.display = 'none';	
	}
}



/* ################ Loader ################ */
/* Leave this last */
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    };
  }
}

function init() {
	if (arguments.callee.done) {return;}
	arguments.callee.done = true;
	if (_timer) {clearInterval(_timer);}
	setupTabs();   
	setupHidden();
	setupDescriptionExpander();
	setupUserReviews();
	setupLangs(); 
	topmenuHover(); 
	externalLinks();
	setupRollovers();
	hideOfferTac();
	if (whichVid && whichVid !== ""){
		if (window.location.href.indexOf('preview') != -1) {
			detectFlash();
			vidUrl = "#" + whichVid + ".xml&PageColour=" + videoColor;
			drawTV("video", vidUrl);	
		}
		else {
			detectFlash();
			vidUrl = "#" + whichVid + ".xml&PageColour=" + videoColor;
			drawTV("video", vidUrl);	
		}
	}
	if (document.getElementById('tubeparent')) {
	 showTube('tubeparent');
	}
	showBookmarks();
	
}
/* for Mozilla/Opera9 */
if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", init, false);
}
/* for IE */
if (BrowserDetect.browser == "Explorer" && window == top ) (function(){
	try {
	// If IE is used, use the trick by Diego Perini
	// http://javascript.nwbox.com/IEContentLoaded/
		document.documentElement.doScroll("left");
	} catch( error ) {
		setTimeout( arguments.callee, 0 );
		return;
	}
	init();
});
/* for WebKit browsers *Safari, Chrome) */
if (BrowserDetect.browser == "WebKit" ) { 
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			init(); 
		}
	}, 10);
}
/* for other browsers */
window.onload = init;
