var detectedSegmentedCode = 1;
if (typeof(hp) != 'undefined') {
	detectedSegmentedCode = hp;
}

var searchData = { "currentQuery" : "" , "currentWhat" : "", "currentWhere" : "", "tabs" : [ 
	{ "name" : "web", "tabId" : "searchTab_web", "inputId" : "searchInput_web", "selected" : true, "inputBoxes" : [
	    { "name" : "q", "defaultValue" : "", "hidden" : false }
	    , { "name" : "brand", "defaultValue" : "ouk", "hidden" : true }
	    , { "name" : "tab", "defaultValue" : "web", "hidden" : true }
	    , { "name" : "p", "defaultValue" : "searchbox", "hidden" : true }
	    , { "name" : "pt", "defaultValue" : "todayweb", "hidden" : true }
	    ]
	}
	, { "name" : "orange", "tabId" : "searchTab_orange", "inputId" : "searchInput_orange", "selected" : false , "inputBoxes" : [
	    { "name" : "q", "defaultValue" : "", "hidden" : false }
	    , { "name" : "brand", "defaultValue" : "ouk", "hidden" : true }
	    , { "name" : "tab", "defaultValue" : "site", "hidden" : true }
	    , { "name" : "p", "defaultValue" : "searchbox", "hidden" : true }
	    , { "name" : "pt", "defaultValue" : "todaysite", "hidden" : true }
	    ]
	}
	, { "name" : "images", "tabId" : "searchTab_images", "inputId" : "searchInput_images", "selected" : false , "inputBoxes" : [
	    { "name" : "q", "defaultValue" : "", "hidden" : false }
	    , { "name" : "brand", "defaultValue" : "ouk", "hidden" : true }
	    , { "name" : "tab", "defaultValue" : "pictures", "hidden" : true }
	    , { "name" : "p", "defaultValue" : "searchbox", "hidden" : true }
	    , { "name" : "pt", "defaultValue" : "todaypictures", "hidden" : true }
	                                                                                        	    ]
	}
	, { "name" : "maps", "tabId" : "searchTab_maps", "inputId" : "searchInput_maps", "selected" : false , "inputBoxes" : [
  	    { "name" : "what", "defaultValue" : "enter business or service", "hidden" : false }
  	    , { "name" : "where", "defaultValue" : "enter town or postcode", "hidden" : false }
	    , { "name" : "brand", "defaultValue" : "ouk", "hidden" : true }
	    , { "name" : "tab", "defaultValue" : "local", "hidden" : true }
	    , { "name" : "p", "defaultValue" : "searchbox", "hidden" : true }
	    , { "name" : "pt", "defaultValue" : "todaylocal", "hidden" : true }
	    ]
	}
	, { "name" : "video", "tabId" : "searchTab_video", "inputId" : "searchInput_video", "selected" : false , "inputBoxes" : [
 	    { "name" : "q", "defaultValue" : "", "hidden" : false }
	    , { "name" : "brand", "defaultValue" : "ouk", "hidden" : true }
	    , { "name" : "tab", "defaultValue" : "video", "hidden" : true }
	    , { "name" : "p", "defaultValue" : "searchbox", "hidden" : true }
	    , { "name" : "pt", "defaultValue" : "todayvideo", "hidden" : true }
	    ]
	}
	, { "name" : "shopping", "tabId" : "searchTab_shopping", "inputId" : "searchInput_shopping", "selected" : false , "inputBoxes" : [
  	    { "name" : "q", "defaultValue" : "", "hidden" : false }
	    , { "name" : "brand", "defaultValue" : "ouk", "hidden" : true }
	    , { "name" : "tab", "defaultValue" : "shopping", "hidden" : true }
	    , { "name" : "p", "defaultValue" : "searchbox", "hidden" : true }
	    , { "name" : "pt", "defaultValue" : "todayshopping", "hidden" : true }
	    ]
	}
	]
};

function hoverTab(tabName, selectTab) {
	if (typeof(searchData) != 'undefined' && typeof(searchData.tabs) != 'undefined') {
		if (tabName == "") {
			for (var i=0; i<searchData.tabs.length; i++) {
				if (searchData.tabs[i].selected == true) {
					tabName = searchData.tabs[i].name;
				}
			}
		} 
		for (var i=0; i<searchData.tabs.length; i++) {
			if (searchData.tabs[i].name == tabName) {
				if (selectTab || searchData.tabs[i].selected) {
					document.getElementById(searchData.tabs[i].tabId).style.backgroundImage = "url(/img/homerefresh09/searchtool/options_tab_"+searchData.tabs[i].name+"_selected.gif)";
				} else {
					document.getElementById(searchData.tabs[i].tabId).style.backgroundImage = "url(/img/homerefresh09/searchtool/options_tab_"+searchData.tabs[i].name+"_rollover.gif)";
				}
			} else if (searchData.tabs[i].selected) {
				document.getElementById(searchData.tabs[i].tabId).style.backgroundImage = "url(/img/homerefresh09/searchtool/options_tab_"+searchData.tabs[i].name+"_selected.gif)";
			} else {
				document.getElementById(searchData.tabs[i].tabId).style.backgroundImage = "url(/img/homerefresh09/searchtool/options_tab_"+searchData.tabs[i].name+".gif)";
			}
		}
	}
}

function showTab(tabName) {
	if (typeof(searchData) != 'undefined' && typeof(searchData.tabs) != 'undefined') {
		doPostOnTab = false;
		if (tabName == "maps") {
			if (!isDefault(tabName, "what") && !isDefault(tabName, "where")) {
				doPostOnTab = true;
			}
			// this is awful but ive been told to do it
			if (searchData.currentQuery != "") {
				document.forms["searchForm_maps"].elements["what"].style.color = "#333333";
				document.forms["searchForm_maps"].elements["what"].value = searchData.currentQuery;
				doPostOnTab = false;
			} else {
				doPostOnTab = true;
			}
			// last of the awful hack
		} else { 
			if (!isDefault(tabName, "q")) {
				doPostOnTab = true;
			}
		}
		if (doPostOnTab) {
			for (var i=0; i<searchData.tabs.length; i++) {
				if (searchData.tabs[i].name == tabName) {
					currentFormToUpdate = "searchForm_" + searchData.tabs[i].name;
					theForm = document.forms[currentFormToUpdate];
					theTabNamed = getTabNameFromForm(theForm);
					changePtValue(theForm,"today" + theTabNamed + "_hp" + detectedSegmentedCode + "_link");
					searchAction(theForm);
					theForm.submit();
				}
			}
		} else {
			for (var i=0; i<searchData.tabs.length; i++) {
				if (searchData.tabs[i].name == tabName) {
					searchData.tabs[i].selected = true;
					document.getElementById(searchData.tabs[i].inputId).style.display = "block";
					currentFormToUpdate = "searchForm_" + searchData.tabs[i].name;
					try {
						document.forms[currentFormToUpdate].elements["q"].focus();
					} catch (all) { }
					try {
						document.forms[currentFormToUpdate].elements["what"].focus();
					} catch (all) { }
					
				} else {
					searchData.tabs[i].selected = false;
					document.getElementById(searchData.tabs[i].inputId).style.display = "none";
					
				}
			}
			hoverTab("", true);
		}
	}
}
	
function isDefault(tabName, elementName) {
	isTheDefault = true; 
	if (typeof(searchData) != 'undefined' && typeof(searchData.tabs) != 'undefined') {
		for (var i=0; i<searchData.tabs.length; i++) {
			if (searchData.tabs[i].name == tabName) {
				currentFormToUpdate = "searchForm_" + searchData.tabs[i].name;
				for (var j=0; j<searchData.tabs[i].inputBoxes.length; j++) {
					if (searchData.tabs[i].inputBoxes[j].name == elementName) {	
						if (searchData.tabs[i].inputBoxes[j].defaultValue != document.forms[currentFormToUpdate].elements[searchData.tabs[i].inputBoxes[j].name].value) {
							isTheDefault = false;
						}
					}
				}
			}
		}
	}
	return isTheDefault;
}

function checkBoxValue(elementName, elementValue) {
	if (typeof(searchData) != 'undefined' && typeof(searchData.tabs) != 'undefined') {
		for (var i=0; i<searchData.tabs.length; i++) {
			for (var j=0; j<searchData.tabs[i].inputBoxes.length; j++) {
				if (searchData.tabs[i].inputBoxes[j].name == elementName) {	
					if (searchData.tabs[i].inputBoxes[j].defaultValue != elementValue) {
						updateBoxValue(searchData.tabs[i].name, elementName, elementValue);
					} else {
						updateBoxValue(searchData.tabs[i].name, elementName, "");
					}
				}
			}
		}
	}
}

function updateBoxValue(tabName, elementName, elementValue) {
	if (typeof(searchData) != 'undefined' && typeof(searchData.tabs) != 'undefined') {
		currentFormToUpdate = "";
		for (var i=0; i<searchData.tabs.length; i++) {
			if (searchData.tabs[i].name == tabName) {
				currentFormToUpdate = "searchForm_" + searchData.tabs[i].name;
			}
		}
		if (currentFormToUpdate != "") {
			if (document.forms[currentFormToUpdate].elements[elementName].value != elementValue) {
				document.forms[currentFormToUpdate].elements[elementName].value = elementValue;
			}
			if (document.forms[currentFormToUpdate].elements[elementName].style.color != 'undefined') {
				document.forms[currentFormToUpdate].elements[elementName].style.color = "#333333";
			}
		}
	}
}

function updateInputValue(inputBox) {
	if (inputBox.name == "q") {
		searchData.currentQuery = inputBox.value;
	} else if (inputBox.name == "what") {
		searchData.currentWhat = inputBox.value;
		searchData.currentQuery = searchData.currentWhat + " " + searchData.currentWhere;
	} else if (inputBox.name == "where") {
		searchData.currentWhere = inputBox.value;
		searchData.currentQuery = searchData.currentWhat + " " + searchData. currentWhere;
	}
}

function changePtValue(theForm,valueToUse) {
	for (var i=0; i<theForm.elements.length; i++) {
		if (theForm.elements[i].name == "pt") {
			theForm.elements[i].value = valueToUse;
		}
	}
}

function getTabNameFromForm(theForm) {
	if (typeof(searchData) != 'undefined' && typeof(searchData.tabs) != 'undefined') {
		for (var i=0; i<searchData.tabs.length; i++) {
			currentForm = "searchForm_" + searchData.tabs[i].name;
			if (theForm.id == currentForm) {
				if (searchData.tabs[i].name == "web") {
					if (theForm.elements["home"][0].checked == true) {
						return "web";
					} else {
						return "uk";
					}
				} else {
					for (var j=0; j<searchData.tabs[i].inputBoxes.length; j++) {
						if (searchData.tabs[i].inputBoxes[j].name == "tab") {
							return searchData.tabs[i].inputBoxes[j].defaultValue;
						}
					}
				}
			}
		}
	}
	return "web";
}

function handleEnterKey(theForm, inputBox, theEvent) {
	try {
		if ((theEvent.which && theEvent.which == 13) || (theEvent.keyCode && theEvent.keyCode == 13)) {
			theTabNamed = getTabNameFromForm(theForm);
			changePtValue(theForm,"today" + theTabNamed + "_hp" + detectedSegmentedCode + "_cursor");
			searchAction(theForm);
			inputBox.parentNode.parentNode.submit();
		} 
	} catch(error) {
	}
}

function handleButtonPress(theForm) {
	theTabNamed = getTabNameFromForm(theForm);
	changePtValue(theForm,"today" + theTabNamed + "_hp" + detectedSegmentedCode + "");
	return true;
}

function searchAction(theForm) {
	if (typeof(searchData) != 'undefined' && typeof(searchData.tabs) != 'undefined') {
		for (var i=0; i<searchData.tabs.length; i++) {
			currentForm = "searchForm_" + searchData.tabs[i].name;
			if (theForm.id == currentForm) {
				for (var j=0; j<searchData.tabs[i].inputBoxes.length; j++) {
					if (searchData.tabs[i].inputBoxes[j].hidden == false) {
						if (searchData.tabs[i].inputBoxes[j].defaultValue == document.forms[currentFormToUpdate].elements[searchData.tabs[i].inputBoxes[j].name].value) {
							updateBoxValue(searchData.tabs[i].name, searchData.tabs[i].inputBoxes[j].name, "");
						}
					}
				}
			}
		}
	}
	return true;
}
