var advancedSearchHelpCurrent;
var advancedSearchHelpMappings;
var checkYouTube = false;
var shoppingBasketLink = "";
var wishlistLink = "";

addWebTrendsTags();

function processLinks() {
	if(document.getElementsByTagName) {
		var links = document.getElementsByTagName('a');

		for(i=0;i<links.length;i++) {
			/* Initiate pop-ups */
			if(links[i].className == 'popUp') {
				links[i].onclick = popUp;
			}
			/* End initiate pop-ups */
			/* Post to SOD site */
			if(links[i].href == 'http://www.tsoshop.co.uk/StandingOrders/login.aspx') {
				links[i].onclick = postToSodSite;
			}
			/* End post to SOD site */
		}
	}
}

function selectAll() {
	var wishlistElements = document.getElementById('wishlist').elements;

	for (i=0; i<wishlistElements.length; i++) {
		if (wishlistElements[i].name.substring(0,7) == 'product') {
			if (this.checked) {
				wishlistElements[i].checked = true;
			}
			else {
				wishlistElements[i].checked = false;
			}
		}
	}
}

function addSelectAll() {
	if(document.getElementById('wishlist') && document.createElement) {
		var wishlistRows = document.getElementById('wishlist').getElementsByTagName('tr');		
		var selectAllRow = wishlistRows[wishlistRows.length - 1];

		var selectAllLabel = document.createElement('label');
		selectAllLabel.htmlFor = 'selectAll';
		selectAllLabel.title = 'Select all saved items for actions (see below)';
		selectAllLabel.appendChild(document.createTextNode('Select All'));

		var selectAllCheckbox = document.createElement('input');
		selectAllCheckbox.type = 'checkbox';
		selectAllCheckbox.id = 'selectAll';
		selectAllCheckbox.name = 'selectAll';
		selectAllCheckbox.onclick = selectAll;

		selectAllRow.getElementsByTagName('th')[0].appendChild(selectAllLabel);
		selectAllRow.getElementsByTagName('td')[0].appendChild(selectAllCheckbox);
	}
}

function advancedSearchHelpInit() {
	var advancedSearchHelp;
	
	if(advancedSearchHelp = document.getElementById('advancedSearchHelp')) {

		advancedSearchHelp.className = 'interactive';
		
		var advancedSearchHelpDivs;

		advancedSearchHelpMappings = new Object();
	
		if(document.links) {
			for(i=0;i < document.links.length; i++) {
				if(document.links[i].className == 'help') {
					document.links[i].style.display = 'none';

					var href = document.links[i].href;

					var helpID = href.substring(href.indexOf('#') + 1, href.length);

					var field;

					if(document.links[i].parentNode.tagName.toLowerCase() == 'div' || document.links[i].parentNode.tagName.toLowerCase() == 'fieldset') {
						field = document.links[i].parentNode;
					}
					else {
						field = document.links[i].parentNode.parentNode; // assume the help link's grandparent is the div/fieldset containing the form elements
					}

					var inputs = field.getElementsByTagName('input');
					var selects = field.getElementsByTagName('select');


					if(inputs.length) {
						for(j=0; j<inputs.length; j++){
							advancedSearchHelpMappings[inputs[j].id] = helpID;
							
							inputs[j].onfocus = advancedSearchHelpShow;
						}
					}

					if(selects.length) {
						for(j=0; j<selects.length; j++){
							advancedSearchHelpMappings[selects[j].id] = helpID;

							selects[j].onfocus = advancedSearchHelpShow;
						}
					}
				}
			}
		}

		advancedSearchHelpDivs = advancedSearchHelp.getElementsByTagName('div');
		
		for(i=0; i<advancedSearchHelpDivs.length; i++) {
			if(advancedSearchHelpDivs[i].id.substring(0,5) == 'help_') {
				advancedSearchHelpDivs[i].className = 'helpHidden';
			}
		}
		
		var interactiveIntroText = document.createTextNode('Relevant help text will be displayed when each field is selected.');
		
		var currentIntroParagraph = document.getElementById('advancedSearchHelpIntro');
		
		currentIntroParagraph.replaceChild(interactiveIntroText, currentIntroParagraph.firstChild);
		
		advancedSearchHelpCurrent = 'advancedSearchHelpIntro';
	}
}

function advancedSearchHelpShow() {
	document.getElementById(advancedSearchHelpCurrent).className = 'helpHidden';
	document.getElementById(advancedSearchHelpMappings[this.id]).className = 'helpDisplayed';
	advancedSearchHelpCurrent = advancedSearchHelpMappings[this.id];
	return true;
}

function advancedSearchClassificationInit() {	
	if(document.getElementById && document.advsearch) {
		var classifications = document.getElementById('classification');
		if (classifications != null)
		{
			var selectClassificationImage = document.getElementById('SelectClassification');
			
			classifications.onchange = function() {document.advsearch.submit();};
			selectClassificationImage.parentNode.removeChild(selectClassificationImage);
		}
	}
}

function addBackButtonOnClick() {
	if (document.getElementById('backButton')){
		document.getElementById('backButton').onclick = function(){history.go(-1);return false;};
	}
}


function addDeliveryTypeOnChange() {
	for(i=1;i<21;i++) {
		if (document.getElementById('deliveryTypeStandard' + [i])){
			document.getElementById('deliveryTypeStandard' + [i]).onchange = function() {document.frmShoppingBasket.submit()};
		}
		if (document.getElementById('deliveryTypeSpecial' + [i])){
			document.getElementById('deliveryTypeSpecial' + [i]).onchange = function() {document.frmShoppingBasket.submit()};
		}
	}
}


function popUps() {
	if(document.getElementsByTagName) {
		var links = document.getElementsByTagName('a');
		
		for(i=0;i<links.length;i++) {
			if(links[i].className == 'popUp') {
				links[i].onclick = popUp;
			}
		}
	}
}


function popUp() {
	window.open(this.href, '', 'width=800,height=500,scrollbars=yes,menubar=yes');
	
	return false;
}

function passwordMeterDisplay()
{
	if (document.getElementById('passwordStrengthContainer')){
		document.getElementById('passwordStrengthContainer').style.display = '';
		document.getElementById('passwordDescription').style.display = '';
	}
}

function autoFocus()
{
	$(".autoFocus").focus();
}

function checkCookieWarning()
{
	if (navigator.cookieEnabled)
		$("#cookiesDisabled").hide();
}

window.onload = function() {
	processLinks();
	addSelectAll();
	advancedSearchHelpInit();
	advancedSearchClassificationInit();
	popUps();
	addBackButtonOnClick();
	passwordMeterDisplay();
	autoFocus();
	checkCookieWarning();
	canPlayYoutube();
	addDeliveryTypeOnChange();
};

function setupBasket()
{
	$(document).ready(function() {
		$("#selSpecial").change(function() {
			var pos = $("#updateCarriage").offset();  
			var width = $("#updateCarriage").width();
			$("#carriagePopup").css( { "left": pos.left - 48 + "px", "top":pos.top - 116 + "px" } );
			$("#carriagePopup").show();
			setTimeout('$("#carriagePopup").hide()', 5000);
		});
	});
}

function canPlayYoutube()
{
	if (!checkYouTube)
		return;
		
	if (DetectFlashVer(9, 0, 0))
	{
		$(".noYouTube").remove();
		$(".youTube").show();
	}
	else
	{
		$(".youTube").remove();
	}
}

function addWebTrendsTags()
{
	var lastCurrencyCode = $.cookie("currency_last", { path: "" });
	var googtrans = $.cookie("googtrans", { path: "" });

	var $code = $("<meta />");
	$code.attr("name", "DCS.CURRENCY");
	$code.attr("content", lastCurrencyCode);
	
	var $language = $("<meta />");
	$language.attr("name", "DCS.LANGUAGE");
	$language.attr("content", googtrans);

	$("head").append($language);
	$("head").append($code);
}

function gotoBasket()
{
	parent.tb_remove();
	window.location = shoppingBasketLink;
	return true;
}

function gotoWishlist()
{
	parent.tb_remove();
	window.location = wishlistLink;
	return true;
}

