var whichVid; var tl = false;
document.getElementsByClassName = function(cl) {
	var retnode = [], myclass = new RegExp('\\b'+cl+'\\b'), classes;
	var elem = this.getElementsByTagName('*');
	for (var 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 = new String(p); var regex = /[^0-9]/; return !regex.test(pNum); }

function so_clearInnerHTML(o) { while(o.firstChild) {o.removeChild(o.firstChild);} }

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;}}
var monthName = ["January","February","March","April","May","June","July","August","September","October","November","December"];


function abortAllAjax() {
	var i, k;
	for (i=1;i<=20;i++) {
		k = "xhr" + i;
		try { k.abort(); }
		catch(e) {}
    }
}
  
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var 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; }
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) {return;}
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
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;
}



function showOffers() {
	var whichOffer = document.getElementById('offer-category').options[document.getElementById('offer-category').selectedIndex].value;
	var allOffers = document.getElementsByClassName("offersub");
	for (var i = 0; i < allOffers.length; i++) {
		allOffers[i].style.display = 'none';
	}
	document.getElementById(whichOffer).style.display = "block";
	
	if (document.getElementById('moff')) {
		if (whichOffer == "where-to-stay-offers") {
			try {
			if (usca) {
			document.getElementById('moff').href="http://visitlondon.wwte1.com/pubspec/scripts/eap.asp?goto=HOTLAUNCH&eapid=11539-30001&rfrr=-48567"; document.getElementById('moff').innerHTML = "More hotels at great prices";
			} 
			 
			else {
			document.getElementById('moff').href="http://www.visitlondonoffers.com/"; document.getElementById('moff').innerHTML = "Book hotels online now";
			}
			}
			catch(e) {
				document.getElementById('moff').href="/offers/accommodation/"; document.getElementById('moff').innerHTML = "More hotels at great prices";
			}
			
		}
		if (whichOffer == "travel-offers") {
				document.getElementById('moff').href="/offers/"; document.getElementById('moff').innerHTML = "More Bookings &amp; Offers";
		}
		if (whichOffer == "maps-offers") {
			document.getElementById('moff').href="/offers/maps/"; document.getElementById('moff').innerHTML = "More Maps";
		}
		if (whichOffer == "eating-out-offers") {
			document.getElementById('moff').href="/offers/eat/"; document.getElementById('moff').innerHTML = "More Eating Out";
		}
		if (whichOffer == "attractions-offers") {
			document.getElementById('moff').href="/offers/attractions/"; document.getElementById('moff').innerHTML = "More Attractions";
		}
		if (whichOffer == "tickets-offers") {
			document.getElementById('moff').href="/offers/tickets/"; document.getElementById('moff').innerHTML = "More Tickets";
		}
		if (whichOffer == "packages-offers") {
			
			try {
			if (usca) {
			document.getElementById('moff').href="http://visitlondon.wwte1.com/pubspec/scripts/eap.asp?goto=PKGLAUNCH&eapid=11539-30001&rfrr=-48568"; document.getElementById('moff').innerHTML = "More Vacation Packages";
			} 
			 
			else {
			document.getElementById('moff').href="/offers/packages/"; document.getElementById('moff').innerHTML = "More Packages";
			}
			}
			catch(e) {
				document.getElementById('moff').href="/offers/packages/"; document.getElementById('moff').innerHTML = "More Packages";
			}

		}
	} 
}




function showHidden(el,lnk) {
	lnk.blur();
	for (var i = 0; i < hiddenDivs.length; i++) {
		if (hiddenDivs[i] == el) {b = hiddenDivs[i+1];	}
	}
	var whichButton = "b" + el.substring(1);
	if (document.getElementById(el).style.height == "0px") {
		document.getElementById(whichButton).src = "http://static.visitlondon.com/images/button-minus-off.gif";
		changeHeight(el,"increase")	;
	} else {
		document.getElementById(whichButton).src = "http://static.visitlondon.com/images/button-plus-off.gif";
		changeHeight(el,"decrease");
	}
}

function changeHeight(el,dir) {
	var c = document.getElementById(el).style.height;
	var currentHeight = eval(c.substring(0,c.indexOf('px')));
	var targetHeight = eval(b.substring(0,b.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);
}

var descHeight;
function setupDescriptionExpander() {
	if (document.getElementById('prod-desc')) {
var 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' ) {
				descHeight = getHeight(node);
				var dHeight = eval(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="http://static.visitlondon.com/images/button-plus-off.gif" alt="" id="bprod-desc"/>Read More</a>'
				}
			}
	}
								}
}

function extendDesc(lnk) {
	lnk.blur();
	var 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' ) {
	if (node.style.height == "188px") {
		document.getElementById('bprod-desc').src = "http://static.visitlondon.com/images/button-minus-off.gif";
		th = eval(descHeight.substring(0,descHeight.indexOf('px')));
		changeHeight2("increase");
	} else {
		document.getElementById('bprod-desc').src = "http://static.visitlondon.com/images/button-plus-off.gif";
		changeHeight2("decrease");
	}
	
			}
	}
}

function changeHeight2(dir) {
	var 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' ) {
		var c = node.style.height;
	var currentHeight = eval(c.substring(0,c.indexOf('px')));
	var targetHeight = eval(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 doRollover(e) {
	var el = (e.target) ? e.target : e.srcElement;
	if (el.nodeName == 'IMG' ) {
		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 (i = 0; i < el.childNodes.length; i++) {
			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.');
	      		}
			}
		}
	}
}

allTubes = ['tubeparent','tubeCentral','tubeN','tubeNe','tubeNw','tubeEast','tubeWest','tubeS','tubeSe','tubeSw'];

function showTube(whichTube) {
    for (i=0;i<allTubes.length;i++) {
        document.getElementById(allTubes[i]).style.display = 'none';
    }
    document.getElementById(whichTube).style.display = 'block';
}

function overMap(whLink,whText,whCoords) {
if (document.getElementById('chooser')) {
    document.getElementById('chooser').removeNode(true);
}
     var points = whCoords.split(',');
     var chooserW = eval(points[2]) - eval(points[0]);
     var chooserH = eval(points[3]) - eval(points[1]);
     var chooser= document.createElement("div"); 
     chooser.setAttribute("id", "chooser");  
    var chooseLink = document.createElement("a");
    chooseLink.setAttribute("href","javascript:showTube('"+whLink+"')");
    var chooseImg = document.createElement("img");
    chooseImg.setAttribute("src","http://static.visitlondon.com/images/explorer-map/view-larger.gif");
    chooseImg.setAttribute("alt","View Larger Map - " + whText);
    chooseLink.appendChild(chooseImg);
    chooser.appendChild(chooseLink);
    document.getElementById('tubeparent').appendChild(chooser);
    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";
}

function showtab(el) {
	var whichTab;
	if(BrowserDetect.browser == "Explorer" && whichVid && whichVid !== ""){
		document.getElementById("vidO").setVariable("mytext",1);
	}
	var allTabs = document.getElementsByClassName("tabcnt");
	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";
	whichTab = el + "-tab";
	document.getElementById(whichTab).className = "current";
	doFade(7, el);
}

var FadeInterval = 200;
var AttSteps = ['ffffff','fafeff','f5fdff','f0fbff','ebfaff','e6f9ff','e1f8ff'];
var AccSteps = ['ffffff','fefbfd','fcf7fc','f0f3fb','f8eefa','f6eaf0','f5e6f9'];
var EveSteps = ['ffffff','fffcfa','fefaf3','fef9ec','fef7df','fdf5d8','fdf2d0'];
var TraSteps = ['ffffff','f2f8ff','e0f1fe','dbe8fd','cde2fd','c0d8fc','abd0fc'];
	var cnt = 0;

function doFade(colorId, targetId) {
    if (colorId >= 1) {
		colorId--;
		for (i = 0; i < document.getElementById(targetId).childNodes.length; i++) {
			if (document.getElementById(targetId).childNodes[i].nodeType == 1) {
				if (location.pathname.indexOf('attractions') != -1) {
					document.getElementById(targetId).childNodes[i].style.backgroundColor = "#" + AttSteps[colorId];
				} else if (location.pathname.indexOf('accommodation') != -1) {
					document.getElementById(targetId).childNodes[i].style.backgroundColor = "#" + AccSteps[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 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 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 showLondonOnly(el) {
	if (el.checked) {
		document.getElementById('notLondon').style.display = "none";
	} else {
		document.getElementById('notLondon').style.display = "table-row";
	}
}

var currentIndex;  var nextIndex; var multiPanels = []; var outerTimer; var isPlay = false;
function multiPanel(whichPanel,isPlay) {
	if (!isPlay) {
		stopPanels() ;
	}
	for (j=0;j<multiPanels.length;j++) {
		if (document.getElementById(multiPanels[j]).style.display == 'block') {
			currentIndex = j;
		}
	} 
	if (whichPanel == 'next') {
		if (currentIndex == multiPanels.length - 1) { nextIndex = 0;	} 
		else { nextIndex = currentIndex + 1;	}
	} else if (whichPanel == 'prev') {
		if (currentIndex === 0) { nextIndex = multiPanels.length - 1;	} 
		else {	nextIndex = currentIndex  - 1;	}
	} else {
		nextIndex = whichPanel;
	}
for (k=0;k<multiPanels.length;k++) {
	document.getElementById(multiPanels[k]).style.display = 'none';
	allO = document.getElementById(multiPanels[k]).getElementsByTagName("object");
	for (m=0;m<allO.length;m++) {
		allO[m].parentNode.innerHTML = " - ";
	}
	whLink = "link" + k;
	document.getElementById(whLink).className = document.getElementById(whLink).className.replace("currentLink", ""); 
}
document.getElementById(multiPanels[nextIndex]).style.display =  "block";
whLink = "link" + nextIndex;
document.getElementById(whLink).className += ' currentLink';
try {
	eval('redo' + document.getElementById(multiPanels[nextIndex]).id + "()");
} catch(e) {}
if (isPlay) {
		outerTimer = setTimeout("multiPanel('next',true)",25000);		
}
}

function playPanels() {
	multiPanel('next',true);
	document.getElementById('conLink').href = "javascript:stopPanels()";
	document.getElementById('conLink').firstChild.src = "http://static.visitlondon.com/images/arrows/stop-off.gif";
	document.getElementById('conLink').firstChild.alt = "Pause";
}
function stopPanels() {
	clearTimeout(outerTimer);	
	document.getElementById('conLink').href = "javascript:playPanels()";
	document.getElementById('conLink').firstChild.src = "http://static.visitlondon.com/images/arrows/forward-off.gif";
	document.getElementById('conLink').firstChild.alt = "Play";
}

function tutMovieHome() {
var flashURL = "http://static.visitlondon.com/assets/homepage/tut-slot.swf?CountdownDay=" + CountdownDay + "&CountdownHour=" + CountdownHour + "&CountdownMinute=" + CountdownMinute;
drawMovie("hpT", flashURL, '442', '182')
}

function xmasMovieHome() {
	var flashURL = "http://static.visitlondon.com/assets/homepage/xmas-tile.swf?linkURL=http://www.visitlondon.com/events/christmas&xmasBounce=http://www.visitlondon.com/events/christmas/christmas-game";
	drawMovie('hpX', flashURL, '442', '182');
}

/* Set Stuff Up */
function setupMultiPanel() {
	var multiPanelsRaw = document.getElementById('selector-window').childNodes;
	
	for (i=0;i<multiPanelsRaw.length;i++) {
		if (multiPanelsRaw[i].nodeName == 'DIV') {
				multiPanels[multiPanels.length] = multiPanelsRaw[i].id;
		}
	}
for (j=0;j<multiPanels.length;j++) {
		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";
		var nextList = document.createElement("li"); 
		var nextLink = document.createElement("a"); 
		nextList.appendChild(nextLink);
		nextLink.setAttribute("href", "javascript:multiPanel('"+j+"');");
		nextLink.setAttribute("id", "link"+j);
		
  		nextLink.appendChild(document.createTextNode(j+1));
    	document.getElementById('selector').appendChild(nextList);
		if (j+1 == multiPanels.length) {
			nextLink.className =  "lastLink";
		}
	}
	 multiPanel('0');
}

var hiddenDivs = [];
function setupHidden() {
var allHidden = document.getElementsByClassName("hidden"), i, k, whichHidden;
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";
}
}


var showRev = false;

function setupTabs() {
var allTabs = document.getElementsByClassName("tabcnt"), i, whichTab;
if (allTabs.length > 0) {
if (!showRev) {
	for (i = 1; i < allTabs.length; i++) {
		allTabs[i].style.display = 'none';
	}
	whichTab = allTabs[0].id + "-tab";
	document.getElementById(whichTab).className = "current";
} else {
	for (i = 0; i < allTabs.length; i++) {
		allTabs[i].style.display = 'none';
	}
	document.getElementById('prod-rev').style.display = "block";
	document.getElementById('prod-rev-tab').className = "current";
}
}
}

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);
	} 
}
}

function setupLangs() {
	if (document.getElementById('lang-list')) {
		document.getElementById('lang-list').style.display = "none"; /* doing this is less work then querying computed styles */
	}
}

function externalLinks() { 
	var extLink = /^http/;
	var intLink = /^https?\:\/\/[a-z0-9\-]*.?visitlondon\.com/;
	var intLink2 = /^https?\:\/\/[a-z0-9\-]*.?visitlondon\.co\.uk/;
	var wnLink = /^https?\:\/\/[a-z0-9\-]*.?worldnomads\.com/;
	var server = /(web[1234]|preview)/;
	var fileLink = /\.(pdf|doc|mp3)$/;
	if (!document.getElementsByTagName || !document.getElementById("content") || window.location.protocol == 'https:') {return; }
	
	var allAnchors = document.getElementsByTagName("a"), contentAnchors = document.getElementById("content").getElementsByTagName("a"), i, anchor; 
	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")) && !intLink2.test(anchor.getAttribute("href")) && !server.test(anchor.getAttribute("href"))  
				)
			)
		) {
			anchor.target = "_blank";
			anchor.title += "\nLink will open in a new window" ;
		}
	} 
	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")) && !intLink2.test(anchor.getAttribute("href")) && !server.test(anchor.getAttribute("href"))  
				)
			) && anchor.className.indexOf('button') == -1 && anchor.className.indexOf('noicon') == -1 && !wnLink.test(anchor.getAttribute("href"))) {  
				var extIcon = document.createElement("img");
				extIcon.setAttribute("alt","");
				extIcon.setAttribute("src","http://static.visitlondon.com/images/icons/external-links.gif");
				anchor.appendChild(extIcon); 
	 		}
	}
	
	
	/*
	var allHeaders = document.getElementsByClassName('bookable');
for (j=0; j<allHeaders.length; j++) { 
	allHeaders[j].title += "Book this accommodation online with VisitLondon.com";
	var bkIcon = document.createElement("img");
	bkIcon.setAttribute("alt","Bookable online");
	bkIcon.setAttribute("src","http://static.visitlondon.com/images/icons/bookable.gif");
	bkIcon.setAttribute("style","margin-left: 10px;");
	allHeaders[j].appendChild(bkIcon); 
	}
	*/
}












var navTimer;
function topmenuHover() {
	if(document.getElementById("topmenu")) {
		navRoot = document.getElementById("topmenu");
		for (i=0; i<navRoot.childNodes.length; i++) {
			var node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					clearTimeout(navTimer); topmenuClear();
					this.className+=" over";
					this.childNodes[0].className="over"; 
				};
				node.onmouseout=function() {
					navTimer = setTimeout(topmenuClear,2000);
				};
			}
		}
	}
}

function topmenuClear() {
	navRoot = document.getElementById("topmenu");
		for (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="";
			}
		}
}

/* Search */
function getMaxDay(selectedMonth) {
	if (selectedMonth == 'Feb') { if (leapYear(selectedYear) ) {maxDay = 29;} else {maxDay = 28;} }  
  	else { if  (selectedMonth == 'Apr' || selectedMonth == 'Jun' || selectedMonth == 'Sep' || selectedMonth == 'Nov') { maxDay = 30;} else { maxDay = 31; } }
  return maxDay;
}
function getMinDay(selectedMonth) {
	if (selectedMonth == currentMonth && selectedYear == currentYear) { minDay = currentDay; }
	else { minDay = 1; }
	return minDay;
}

/* What's On Dates */
function checkMonths(whichEnd) {
  whichMonth = document.getElementById(whichEnd + "-month-year");
  whichDay =  document.getElementById(whichEnd + "-day");
  selectedMonth = whichMonth.options[whichMonth.selectedIndex].text.substr(0,3);
  selectedYear = whichMonth.options[whichMonth.selectedIndex].text.substr(4);
  selectedDay = whichDay.options[whichDay.selectedIndex].value;
  getMaxDay(selectedMonth);
  getMinDay(selectedMonth);
    while (whichDay.length > 1) { whichDay.remove(1); }
    for (k = minDay; k <= maxDay; k++) {
		kpos = k - minDay + 1;
	 	ksel = false; if (k == selectedDay) { ksel = true; }
     	whichDay.options[kpos] = new Option(k, k, false, ksel);
	}
}

/* Accommodation Dates */
var isAccLP = false;

function getCheckOut() {
	var inDate=new Date(); 
	inDate.setFullYear(document.getElementById('from-year')[document.getElementById('from-year').selectedIndex].value,parseInt(document.getElementById('from-month')[document.getElementById('from-month').selectedIndex].value,10)-1,document.getElementById('from-day')[document.getElementById('from-day').selectedIndex].value);
	inDate.setDate(parseInt(inDate.getDate(),10) + parseInt(document.getElementById('duration').value,10));
	if (document.getElementById('duration').value !== "") { 
		if (isNumeric(document.getElementById('duration').value)) {
			so_clearInnerHTML(document.getElementById("check-out1")); so_clearInnerHTML(document.getElementById("check-out2"));
			document.getElementById('check-out1').appendChild(document.createTextNode("Check Out:"));
			document.getElementById('check-out2').appendChild(document.createTextNode(inDate.getDate() + " " + monthName[inDate.getMonth()] + ", " + inDate.getFullYear()));
		}
	}
	so_clearInnerHTML(document.getElementById("check-out1")); so_clearInnerHTML(document.getElementById("check-out2"));
	if (whichMonth.selectedIndex > 0 && whichYear.selectedIndex > 0 && whichDay.selectedIndex > 0) {
		if (document.getElementById('duration').value !== "") { 
		if (isNumeric(document.getElementById('duration').value)) {
			document.getElementById('check-out1').appendChild(document.createTextNode("Check Out:"));
			document.getElementById('check-out2').appendChild(document.createTextNode(inDate.getDate() + " " + monthName[inDate.getMonth()] + ", " + inDate.getFullYear()));
			}
		}
		showRoomData(); 
		document.getElementById('search').action = "/accommodation/search";
   } else {
		hideRoomData();   
		if (isAccLP == false) { document.getElementById('search').action = "/search"; }
		
   }
}

function getCheckOutIP() {
	if (whichMonth.selectedIndex > 0 && whichYear.selectedIndex > 0 && whichDay.selectedIndex > 0) {
	var inDate=new Date(); 
	inDate.setFullYear(document.getElementById('from-year-ip')[document.getElementById('from-year-ip').selectedIndex].value,parseInt(document.getElementById('from-month-ip')[document.getElementById('from-month-ip').selectedIndex].value,10)-1,document.getElementById('from-day-ip')[document.getElementById('from-day-ip').selectedIndex].value);
	inDate.setDate(parseInt(inDate.getDate(),10) + parseInt(document.getElementById('duration-ip').value,10));
	if (document.getElementById('duration-ip').value !== "") { 
		if (isNumeric(document.getElementById('duration-ip').value)) {
			so_clearInnerHTML(document.getElementById("check-out1-ip")); so_clearInnerHTML(document.getElementById("check-out2-ip"));
			document.getElementById('check-out1-ip').appendChild(document.createTextNode("Check Out:"));
			document.getElementById('check-out2-ip').appendChild(document.createTextNode(inDate.getDate() + " " + monthName[inDate.getMonth()] + ", " + inDate.getFullYear()));
		}
	}
	}
}

function checkAccMonths() {
  whichYear =  document.getElementById('from-year');
  whichMonth = document.getElementById('from-month');
  whichDay =  document.getElementById('from-day');
  selectedMonth = whichMonth.options[whichMonth.selectedIndex].text;
  selectedYear = whichYear.options[whichYear.selectedIndex].value;
  selectedDay =  whichDay.options[whichDay.selectedIndex].value;
  getMaxDay(selectedMonth);
  getMinDay(selectedMonth);
  while (whichDay.length > 1) { whichDay.remove(1); }
for (k = minDay; k <= maxDay; k++) {
	kpos = k - minDay + 1;
	ksel = false; if (k == selectedDay) { ksel = true; }
    whichDay.options[kpos] = new Option(k, k, false, ksel);
}
   getCheckOut();
}

function checkAccMonthsIP() {
  whichYear =  document.getElementById('from-year-ip');
  whichMonth = document.getElementById('from-month-ip');
  whichDay =  document.getElementById('from-day-ip');
  selectedMonth = whichMonth.options[whichMonth.selectedIndex].text;
  selectedYear = whichYear.options[whichYear.selectedIndex].value;
  selectedDay =  whichDay.options[whichDay.selectedIndex].value;
  getMaxDay(selectedMonth);
  getMinDay(selectedMonth);
  while (whichDay.length > 1) { whichDay.remove(1); }
for (k = minDay; k <= maxDay; k++) {
	kpos = k - minDay + 1;
	ksel = false; if (k == selectedDay) { ksel = true; }
    whichDay.options[kpos] = new Option(k, k, false, ksel);
}
   getCheckOutIP();
 }

function showRoomData() {
	document.getElementById('roomsData').style.display = 'block'; document.getElementById('roomsCon').style.display = 'block'; 
	var allAdv = document.getElementsByClassName('erd');
			for (i = 0; i < allAdv.length; i++) {
				allAdv[i].disabled = false;
			}
}
function hideRoomData() {
	document.getElementById('roomsData').style.display = 'none';  document.getElementById('roomsCon').style.display = 'none'; 
	var allAdv = document.getElementsByClassName('erd');
			for (i = 0; i < allAdv.length; i++) {
				allAdv[i].disabled = true;
			}
}

/* Rooms related */
function deleteRoom(whRoom) {
	var oldRoom = document.getElementById(whRoom);
	oldRoom.parentNode.removeChild(oldRoom);
	return true;
}

function addNewRoom() {
	var totalRooms =  eval(document.getElementById('totalRooms').value);
    var newRoom = totalRooms + 1;
    var newLastRoom = "r" + newRoom;
    var nextRoom = document.createElement("div"); 
    nextRoom.setAttribute("id", newLastRoom);  
    document.getElementById('roomsData').appendChild(nextRoom);
    document.getElementById(newLastRoom).className = "room";  
	if (isAccLP) {
var roomContent = 'Room '+newRoom+': <label for="'+ newLastRoom +'a" class="tick">Adults:</label> <select name="adults" id="'+ newLastRoom +'a" class="erd"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select>&#160;<label for="'+ newLastRoom +'c" class="tick">Children:</label> <select name="children" id="'+ newLastRoom +'c" class="erd"><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>' ;
	} else {
var roomContent = 'Room '+newRoom+':<br /><label for="'+ newLastRoom +'a" class="tick">Adults:</label> <select name="adults" id="'+ newLastRoom +'a" class="adv erd"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select>&#160;<label for="'+ newLastRoom +'c" class="tick">Children:</label> <select name="children" id="'+ newLastRoom +'c" class="adv erd"><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;
    document.getElementById('totalRooms').value = newRoom;
	return true;
}

function addNewRoomIP() {
	var totalRooms =  eval(document.getElementById('totalRooms-ip').value);
    var newRoom = totalRooms + 1;
    var newLastRoom = "r" + newRoom + "-ip";
    var nextRoom = document.createElement("div"); 
    nextRoom.setAttribute("id", newLastRoom);  
    document.getElementById('roomsData-ip').appendChild(nextRoom);
    document.getElementById(newLastRoom).className = "room";  
	var roomContent = 'Room '+newRoom+': &#160;<label for="'+ newLastRoom +'a" class="tick">Adults:</label> <select name="adults" id="'+ newLastRoom +'a" class="adv erd"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select>&#160;<label for="'+ newLastRoom +'c" class="tick">Children:</label> <select name="children" id="'+ newLastRoom +'c" class="adv erd"><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;
    document.getElementById('totalRooms-ip').value = newRoom;
	return true;
}

function checkRooms() {
	var oldTotalRooms = eval(document.getElementById('totalRooms').value);
	var newTotalRooms = eval(document.getElementById('roomsNum').options[document.getElementById('roomsNum').selectedIndex].value);
	if (newTotalRooms == oldTotalRooms) {
		return false;	
	} else if (newTotalRooms < oldTotalRooms) {
		rInit = newTotalRooms + 1;
		for (r = rInit; r <= oldTotalRooms; r++) {
			rpos = "r" + r;
			deleteRoom(rpos);
		}
	document.getElementById('totalRooms').value = newTotalRooms;
	} else if (newTotalRooms > oldTotalRooms) {
		rInit = oldTotalRooms + 1;
		for (r = rInit; r <= newTotalRooms; r++) {
			addNewRoom();
		}
	}
}

function checkRoomsIP() {
	var oldTotalRooms = eval(document.getElementById('totalRooms-ip').value);
	var newTotalRooms = eval(document.getElementById('roomsNum-ip').options[document.getElementById('roomsNum-ip').selectedIndex].value);
	if (newTotalRooms == oldTotalRooms) {
		return false;	
	} else if (newTotalRooms < oldTotalRooms) {
		rInit = newTotalRooms + 1;
		for (r = rInit; r <= oldTotalRooms; r++) {
			rpos = "r" + r;
			deleteRoom(rpos);
		}
	document.getElementById('totalRooms-ip').value = newTotalRooms;
	} else if (newTotalRooms > oldTotalRooms) {
		rInit = oldTotalRooms + 1;
		for (r = rInit; r <= newTotalRooms; r++) {
			addNewRoomIP();
		}
	}
}

var searchToggle = "simple";

function whichSearch() {
	if	(searchToggle == "simple") {
		searchToggle = "advanced"; advancedSearch();	
	} else {
		searchToggle = "simple"; simpleSearch();
	}
}

function advancedSearch() {
	searchToggle = "advanced";
	document.getElementById('advanced-search').style.display = 'block'; 
	if (document.getElementById('rating-box')) {
		document.getElementById('rating-box').style.display = 'block'; 
	}
	document.getElementById('advanced-link').className="minus";
	document.getElementById('advanced-link').href="javascript:whichSearch()";
	document.getElementById('advanced-link').innerHTML = "";
	linktxt = document.createTextNode("Fewer Search Options");
	document.getElementById('advanced-link').appendChild(linktxt);
	var allAdv = document.getElementsByClassName('adv');
			for (i = 0; i < allAdv.length; i++) {
				allAdv[i].disabled = false;
			}
}

function simpleSearch() {
	searchToggle = "simple";
	if (isAccLP == false) {
	document.getElementById('search').action = "/search";
	}
	document.getElementById('advanced-search').style.display = 'none'; 
		if (document.getElementById('rating-box')) {
		document.getElementById('rating-box').style.display = 'none'; 
	}
	
	document.getElementById('advanced-link').className="plus";
	document.getElementById('advanced-link').href="javascript:whichSearch()";
	document.getElementById('advanced-link').innerHTML = "";
	linktxt = document.createTextNode("More Search Options");
	document.getElementById('advanced-link').appendChild(linktxt);
	var allAdv = document.getElementsByClassName('adv');
			for (i = 0; i < allAdv.length; i++) {
				allAdv[i].disabled = true;
			}
	if(document.getElementById('c1o2') && document.getElementById('keyword') ) { showKeyword(); }
}

function showStartsWith() {
	document.getElementById('c1o2').style.display = 'block'; document.getElementById('c1o1').style.display = 'none'; 
	document.getElementById('keyword').disabled = true; document.getElementById('starts-with').disabled = false;
}
function showKeyword() {
	document.getElementById('c1o1').style.display = 'block';  document.getElementById('c1o2').style.display = 'none'; 
	document.getElementById('keyword').disabled = false; document.getElementById('starts-with').disabled = true;
}

function showAreas() {
	document.getElementById('c2o2').style.display = 'block';  document.getElementById('c2o1').style.display = 'none'; 
	document.getElementById('location').disabled = true; document.getElementById('s-areas').disabled = false;
}
function showLocation() {
	document.getElementById('c2o1').style.display = 'block';  document.getElementById('c2o2').style.display = 'none'; 
	document.getElementById('s-areas').disabled = true; document.getElementById('location').disabled = false;
}

function showPeriod() {
	document.getElementById('c3o1').style.display = 'block';  document.getElementById('c3o2').style.display = 'none'; 
	document.getElementById('start-day').disabled = true; document.getElementById('start-month-year').disabled = true;
	document.getElementById('end-day').disabled = true; document.getElementById('end-month-year').disabled = true;
	document.getElementById('days-ahead').disabled = false; document.getElementById('search').action = "/search";
}
function showDates() {
	document.getElementById('c3o2').style.display = 'block'; document.getElementById('c3o1').style.display = 'none'; 
	document.getElementById('start-day').disabled = false; document.getElementById('start-month-year').disabled = false;
	document.getElementById('end-day').disabled = false; document.getElementById('end-month-year').disabled = false;
	document.getElementById('days-ahead').disabled = true; document.getElementById('search').action = "/events/search";
}

function showFacs() {
	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';
	}
	}
}

function restrictSearch() {
	if (currentSection === "") {return false; }
	var whichSection = 	document.getElementById('section').options[document.getElementById('section').selectedIndex].value;
	var subSections = whichSection.split("."); var allAdv;
	if (subSections[0] == currentSection) {
			allAdv = document.getElementsByClassName('adv');
			for (var i = 0, j; j = allAdv[i]; i++) {
				j.disabled = false;
			}
			document.getElementById('advanced-control').style.block = "block";
			advancedSearch();
	} else {
			simpleSearch();
			if (subSections[0] !== "") {
				document.getElementById('advanced-control').style.block = "block";
				document.getElementById('advanced-link').className = "plus";
				document.getElementById('advanced-link').href = "/"+subSections[0]+"/";
				document.getElementById('advanced-link').innerHTML = "";
				linktxt = document.createTextNode("More Search Options");
				document.getElementById('advanced-link').appendChild(linktxt);
			} else {
				document.getElementById('advanced-control').style.display = "none";
			}
	}
}

function setupAcc() {
if (document.getElementById('roomsNum').options[document.getElementById('roomsNum').selectedIndex].value < 2) { deleteRoom('r2'); }
if (document.getElementById('roomsNum').options[document.getElementById('roomsNum').selectedIndex].value < 3) {	deleteRoom('r3'); }
if (document.getElementById('roomsNum').options[document.getElementById('roomsNum').selectedIndex].value < 4) {	deleteRoom('r4'); }
document.getElementById('totalRooms').value = document.getElementById('roomsNum').options[document.getElementById('roomsNum').selectedIndex].value;
document.getElementById('roomsCon').style.display = "block";
checkAccMonths();
}

function setupAccIP() {
if (document.getElementById('roomsNum-ip').options[document.getElementById('roomsNum-ip').selectedIndex].value < 2) {deleteRoom('r2-ip'); }
if (document.getElementById('roomsNum-ip').options[document.getElementById('roomsNum-ip').selectedIndex].value < 3) {deleteRoom('r3-ip'); }
if (document.getElementById('roomsNum-ip').options[document.getElementById('roomsNum-ip').selectedIndex].value < 4) {deleteRoom('r4-ip'); }
document.getElementById('totalRooms-ip').value = document.getElementById('roomsNum-ip').options[document.getElementById('roomsNum-ip').selectedIndex].value;
checkAccMonthsIP();
}

/* Flash */
var requiredVersion = 8;   
var hasRightVersion = false;                         

var flash2Installed = false;    // boolean. true if flash 2 is installed
var flash3Installed = false;    // boolean. true if flash 3 is installed
var flash4Installed = false;    // boolean. true if flash 4 is installed
var flash5Installed = false;    // boolean. true if flash 5 is installed
var flash6Installed = false;    // boolean. true if flash 6 is installed
var flash7Installed = false;    // boolean. true if flash 7 is installed
var flash8Installed = false;    // boolean. true if flash 8 is installed
var flash9Installed = false;    // boolean. true if flash 9 is installed
var maxVersion = 9;             // highest version we can actually detect
var actualVersion = 0;          // version the user really has
var jsVersion = 1.0;            // the version of javascript supported

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;    
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; 

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 isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
      var flashVersion = parseInt(flashDescription.substring(16));
      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 (var i = 2; i <= maxVersion; i++) { if (eval("flash" + i + "Installed") == true) actualVersion = i;  }
  if (actualVersion >= requiredVersion) {
    hasRightVersion = true;
  } 
}

function drawTV(tagID, myMovie) {
if (BrowserDetect.browser == "Explorer") { var w = '540'; var h = '352' } else { var w = '240'; var h = '184' }
		if(hasRightVersion && document.getElementById(tagID).innerHTML) {
			var container = document.getElementById(tagID);
			var obj = document.createElement("object");
			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"){
				var em = document.createElement("embed");
				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) {
			var trans = document.createElement("a");
			trans.setAttribute("href","javascript:void(0)");
			trans.id="transcriptLink";
			var transPic = document.createElement("img");
			transPic.setAttribute("src","http://static.visitlondon.com/images/icons/transcript.gif");
			transPic.setAttribute("alt","");
			var transText = document.createTextNode('read the transcript');
			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); 
	} 
	
			}
	}
}

function transcriptLink() {
	var theTranscript = "http://static.visitlondon.com/assets/video/transcripts/"+whichVid+".html";
	window.open(theTranscript, 'trans', 'width=550, height=550, location=no, scrollbars=yes');
	return false;
}



function goBig() {
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";}
}
}

function goSmall() {
	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"; }
}
}
  
function drawMovie(tagID, myMovie, w, h) {
		if(hasRightVersion && document.getElementById(tagID).innerHTML) {
			var container = document.getElementById(tagID);
			var obj = document.createElement("object");
			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"));
			if(!window.ActiveXObject && BrowserDetect.browser != "Opera"){
				var em = document.createElement("embed");
				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");
			obj.appendChild(em);
			}
			removeChildren(container);
			container.appendChild(obj);
			obj.setAttribute("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
	}
}

function createParam(pName,pValue) {
	  var param = document.createElement("param");
	  param.setAttribute("name",pName);
	  param.setAttribute("value",pValue);
	  return param;
}

/* Ads */
function adBanner(adsection) {
	if (window.adgroupid == undefined) {
	window.adgroupid = Math.round(Math.random() * 1000);
}
	switch (adsection) {
case 'home' :
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439203|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'accommodation' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439205|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'places-to-go' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439209|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'events' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439211|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'travel' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439221|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'areas' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439213|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'maps' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439222|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'people' :
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439225|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'offers' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439228|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
// tier 2	
case 'attractions' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1441586|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'theatre' :
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1441653|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'ex-attractions' :
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1441574|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
// generic	
default: 
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439237|0|1|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	}
}

function adMPULarge(adsection) {
if (window.adgroupid == undefined) {
	window.adgroupid = Math.round(Math.random() * 1000);
}
switch (adsection) {
case 'home' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439204|0|170|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
}
}

function adMPUSmall(adsection) {
if (window.adgroupid == undefined) {
	window.adgroupid = Math.round(Math.random() * 1000);
}
switch (adsection) {
// tier 1
case 'accommodation' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439206|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'places-to-go' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439208|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'events' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439212|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'travel' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439220|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'people' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439226|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'areas' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439214|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'maps' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439223|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'offers' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439229|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
// tier 2	
case 'attractions' :	
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1441603|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'theatre' :
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1441673|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
case 'ex-attractions' :
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1441644|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
	break;
// generic
default: 
	document.write('<scr'+'ipt type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|742|1439236|0|169|ADTECH;cookie=info;loc=100;target=_blank;key=key1+key2+key3+key4;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
}

}

/* Trade Doubler */

function setCookie(name, value, expires, path, domain, secure) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	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) {
	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;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else {
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	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()));
	var 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='' />");
}









/* Load Stuff */
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);}
setupLangs();
setupTabs();
setupHidden();
setupDescriptionExpander()
externalLinks();
setupRollovers();
topmenuHover(); 
	if (whichVid && whichVid !== ""){
	detectFlash();
	vidUrl = "http://static.visitlondon.com/assets/video/vl-video-player.swf?xmltouse=" + whichVid + ".xml";
	drawTV("video", vidUrl);	
	}
}

/* for Mozilla/Opera9 */
if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
	document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
	var script = document.getElementById("__ie_onload");
	script.onreadystatechange = function() {
		if (this.readyState == "complete") {
			init(); // call the onload handler
		}
	};
@else @*/
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			init(); // call the onload handler
		}
	}, 10);
}

/* for other browsers */
window.onload = init;
