addEvent(window, "load", showNears, false);

/* shows exact matches or near matches */
function showNears()
{
	var view = Request.QueryString("_tv");
	
	if(view != null)
		nears = view == "tvNear" ? true : false;
	else
		nears = false;
	
	showNearMatches("tabexactmatches", "exactmatches", "tabnearmatches", "nearmatches", nears);
}

/* redirects to a page */
function goToPage(page)
{
	if(page != "-1")
		location.href = page;
}

/* delete item from basket / favourites */
function deleteFavourite(item, name)
{
	if(item == "undefined" || item < 0)
		return false;
	
	if(name == "undefined")
		name = "this item";
	
	if(confirm("Delete " + name + " from your favourites?") == false)
		return false;
		
	goToPage("favourites.aspx?del=" + encodeBase64(item.toString()));
}

/* empties the basket / favourites */
function deleteFavourites()
{
	if(confirm("Delete all the items in your favourites?") == true)
		goToPage("favourites.aspx?empty=true");
}

/* add item to booking */
function addToBooking(itemcb, baskettableid, booknowid)
{
	var baskettable = document.getElementById(baskettableid);
	var booknow = document.getElementById(booknowid);
	var showbooknow = false;
	
	if(baskettable != null)
	{
		var node1, node2, node3, node4;
		
		for(var i = 0; i < baskettable.childNodes.length; i++)
		{
			node1 = baskettable.childNodes[i];
			
			if(node1.nodeName == "TBODY")
			{
				for(var j = 0; j < node1.childNodes.length; j++)
				{
					node2 = node1.childNodes[j];
					
					if(node2.nodeName == "TR")
					{
						for(var k = 0; k < node2.childNodes.length; k++)
						{
							node3 = node2.childNodes[k];
					
							if(node3.nodeName == "TD")
							{
								for(var l = 0; l < node3.childNodes.length; l++)
								{
									node4 = node3.childNodes[l];
									
									if(node4.nodeName == "INPUT" && node4.type == "checkbox")
									{
										showbooknow = node4.checked;
										
										booknow.style.display = showbooknow == true ? "block" : "none";
										
										if(showbooknow == true)
											return;
									}
								}
							}
						}
					}
				}
			}
		}
	}
						
}

/* encode a string */
function urlEncodeString(s)
{
	var es = "";
	
	if(s != null && s.length > 0)
	{
		for(var i = 0; i < s.length; i++)
			es += escape(s.charAt(i));
	}
	
	return es;
}

/* disables the bedrooms drop down list if we're searching for sleeps */
function disableBedroomLC(sleepsListControlID, bedroomListControlID)
{
	var sleepsListControl = document.getElementById(sleepsListControlID);
	var bedroomListControl = document.getElementById(bedroomListControlID);
	
	if(sleepsListControl != null && bedroomListControl != null)
		bedroomListControl.disabled = sleepsListControl.value.length > 0;
}

/* form submitter */
function submitForm(f,url,mode)
{
	var enc = "";
	
	for(var i = 0; i < f.elements.length; i++)
	{
		if(f.elements[i].type == "button")
			continue;
			
		enc = enc + urlEncodeString(f.elements[i].name) + "=" + urlEncodeString(f.elements[i].value) + "&";
	}
	
	goToPage(url + "?" + mode + "=" + encodeBase64(enc));
}

/* area drop down switcher */
function switchArea(region)
{
	try
	{
		var obj = document.getElementById('area');
		
		if (obj == null)
			return;
			
		obj.length = 1;
		
		if (region > 0)
		{
			for (var j = 1, i = 0; i < __areas.length; i++)
			{
				if (__areas[i][0] == region)
					obj.options[j++] = new Option(__areas[i][2], __areas[i][1]);
			}
		}
	}
	catch(e) {}
}

/* search results matches switcher */
function showNearMatches(emImgId, emDivId, nmImgId, nmDivId, near)
{
	var loadingMatches = document.getElementById("loadingmatches");
	var matches = document.getElementById("matches");
	var emImg = document.getElementById(emImgId);
	var emDiv = document.getElementById(emDivId);
	var nmImg = document.getElementById(nmImgId);
	var nmDiv = document.getElementById(nmDivId);
	
	if(loadingMatches != null && matches != null && emImg != null && emDiv != null && nmImg != null && nmDiv != null)
	{	
		if(near == true)
		{
			emImg.src = "images/tab-exact-matches.gif";
			emDiv.style.display = "none";
			
			nmImg.src = "images/tab-near-matches-a.gif";
			nmDiv.style.display = "block";
		}
		else
		{
			emImg.src = "images/tab-exact-matches-a.gif";
			emDiv.style.display = "block";
			
			nmImg.src = "images/tab-near-matches.gif";
			nmDiv.style.display = "none";
		}
		
		loadingMatches.style.display = "none";
		matches.style.display = "block";
	}
}

/* enables button if agreement checkboxes are checked */
function bookingAgreement(checkboxids, buttonid)
{
	var agree = false;
	var checkbox;
	var button = document.getElementById(buttonid);
	
	if(button == null)
		return;
	
	for(var i = 0; i < checkboxids.length; i++)
	{
		checkbox = document.getElementById(checkboxids[i]);
		
		if(checkbox != null)
		{
			if(checkbox.checked == false)
			{
				agree = false;
				break;
			}
			
			agree = true;
		}
	}
	
	button.disabled = !agree;
}

/* show sales info on contact form switcher */
function includeSalesInfo(selection, elID)
{
	el = document.getElementById(elID);
	
	if(el == null)
		return;
		
	if(selection == 2)
		el.style.display = "block";
	else
		el.style.display = "none";
}

/* Image Src swapper */
function changeImageSrc(imageID, newSrc) {
	var image = document.getElementById(imageID);
	
	if (image == null)
		return;
		
	image.src = newSrc;
}