var searchLocationDefaultString = "Tweed Shire, NSW";
var searchTermsDefaultString = "Category, Product, Service ... or brand offered";
var searchNameDefaultString = "Name of Business";
var searchBusinessTypeDefaultValue = 0;

function show(element)
{
    document.getElementById(element).style.display = '';
}

function hide(element)
{
    document.getElementById(element).style.display = 'none';
}


function searchTermsHintBlur(inputObject, businessTypeRadioId)
{
	if (trim(inputObject.value) == "")
	{
		inputObject.value = getSearchTermsHint(businessTypeRadioId);
	}
	if (inputObject.value == searchTermsDefaultString || inputObject.value == searchNameDefaultString)
	{
		inputObject.value = getSearchTermsHint(businessTypeRadioId);
		inputObject.className = "text";
	}
	else
	{
		inputObject.className = "activetext";
	}
}

function getSearchTermsHint(businessTypeRadioId)
{
	var businessTypeRadioButton = document.getElementById(businessTypeRadioId);
	if (businessTypeRadioButton.checked)
	{
		return searchTermsDefaultString;
	}
	else
	{
		return searchNameDefaultString;
	}
}

function searchTermsHintFocus(inputObject)
{
	if (trim(inputObject.value) == searchTermsDefaultString || trim(inputObject.value) == searchNameDefaultString)
	{
		inputObject.value = "";
		inputObject.className = "activetext";
	}
}

function hintFocus(inputObject, defaultString)
{
	if (trim(inputObject.value) == defaultString)
	{
		inputObject.value = "";
		inputObject.className = "activetext";
	}
}

function hintBlur(inputObject, defaultString)
{
	if (trim(inputObject.value) == "")
	{
		inputObject.value = defaultString;
	}
	if (inputObject.value == defaultString)
	{
		inputObject.className = "text";
	}
	else
	{
		inputObject.className = "activetext";
	}
}

function saveInCookies(name, value)
{
    var today = new Date();
    today.setTime(today.getTime());
    var numberOfDaysInYear = getDaysInYear(today);
    expires = numberOfDaysInYear * 1000 * 60 * 60 * 24;
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) + ";path=/ ;expires=" + expires_date.toGMTString()
}

function getFromCookies(name, defaultString)
{
	var prefix = name + "=";
	var start = document.cookie.indexOf(prefix);

	if (start == -1)
	{
		return defaultString;
	}

	var end = document.cookie.indexOf(";", start+prefix.length)
	if (end == -1)
	{
		end=document.cookie.length;
	}

	var value=document.cookie.substring(start+prefix.length, end)
	return unescape(value);
}

function setValueFromCookies(inputId, name, defaultString)
{
	var inputObject = document.getElementById(inputId);
	if (inputObject != null)
	{
		inputObject.value = getFromCookies(name, defaultString);
		if (trim(inputObject.value) == defaultString)
		{
			inputObject.className = "text";
		}
		else
		{
			inputObject.className = "activetext";
		}
	}
}

function saveBusinessSearchType(radioButton)
{
	if (radioButton.checked)
	{
		saveInCookies("searchType", radioButton.value);
	}
	setYellowSearchType();
	setBusinessSearchType();
}

function saveYellowSearchType(radioButton)
{
	if (radioButton.checked)
	{
		saveInCookies("searchType", radioButton.value);
	}
	setYellowSearchType();
	setBusinessSearchType();
}

function setBusinessSearchType()
{
	setSearchType('businessSearchType', 'businessSearchName', 'businessSearchTerms');
}

function setYellowSearchType()
{
	setSearchType('yellowSearchType', 'yellowSearchName', 'yellowSearchTerms');
}

function setSearchType(searchByTypeId, searchByNameId, searchTermsId)
{
	var searchByType = document.getElementById(searchByTypeId);
	var searchByName = document.getElementById(searchByNameId);
	var searchTerms = document.getElementById(searchTermsId);
	var searchType = getFromCookies("searchType", searchBusinessTypeDefaultValue);
	if (searchByType == null || searchByName == null)
	{
		return;
	}
	if (searchType == "0")
	{
		searchByType.checked = "checked";
		searchByName.checked = "";
	}
	else
	{
		searchByType.checked = "";
		searchByName.checked = "checked";
	}
	searchTermsHintBlur(searchTerms, searchByTypeId);
}

function inlineSearch(searchTerms)
{
	directToYellowPagesSearch(0, searchTerms, getLocationString('inlineSearchLocation'));
}

function getLocationString(id)
{
	var location = document.getElementById(id);
	var locationString = location.value;

	return locationString;
}

function trim(param)
{
	return param.replace(/^\s+/, "").replace(/\s+$/, "");
}

function directToYellowPagesSearch(clueType, clue, locationClue)
{
	var url = "http://www.yellowpages.com.au/search/postSearchEntry.do";
	url = url + "?clueType=" + clueType;
	url = url + "&clue=" + encodeURIComponent(trim(clue));
	url = url + "&locationClue=" + encodeURIComponent(trim(locationClue));
	url = url + "&serviceAreaModifiedByUser=true";
	url = url + "&referrer=ysb_TweedShireCouncil";
    window.open(url, "yellowpagesWindow", "location=yes,menubar=yes,resizable=yes,directories=yes,scrollbars=yes,status=yes,toolbar=yes,width=800,height=600");
}

function openYellow()
{
	var url="http://www.yellow.com.au?ref=hay";
	window.open(url, "yellowWindow", "location=yes,menubar=yes,resizable=yes,directories=yes,scrollbars=yes,status=yes,toolbar=yes,width=800,height=600");
}


function saveAndUpdateSearchLocations(searchLocation)
{
	var searchLocationString = trim(searchLocation);
	var ids = new Array("contextSearchLocation", "inlineSearchLocation", "businessSearchLocation", "yellowSearchLocation");
	saveInCookies('searchLocation', searchLocationString);
	for (i = 0; i < ids.length; i++)
	{
		var object = document.getElementById(ids[i]);
		if (object != null)
		{
			object.value = searchLocationString;
			if (object.value == searchLocationDefaultString)
			{
				object.className = "text";
			}
			else
			{
				object.className = "activetext";
			}
		}
	}
}

function businessSearch()
{
	searchYellow('businessSearchName', 'businessSearchTerms', 'businessSearchLocation', 'businessSearchTermsMissing');
}


function yellowSearch()
{
	searchYellow('yellowSearchName', 'yellowSearchTerms', 'yellowSearchLocation', 'yellowSearchTermsMissing');
}


function searchYellow(searchByNameId, searchTermsId, searchLocationId, missingSearchTermsId)
{
	var searchByName = document.getElementById(searchByNameId);
	var searchTerms = document.getElementById(searchTermsId);
	var searchString = trim(searchTerms.value);
	var clueType = 0;
	if (searchByName != null && searchByName.checked)
	{
		clueType = 1;
	}
	if (searchString == "" || searchString == searchTermsDefaultString || searchString == searchNameDefaultString)
	{
		show(missingSearchTermsId);
		return;
	}
	hide(missingSearchTermsId);
	directToYellowPagesSearch(clueType, searchString, getLocationString(searchLocationId));
}

function getDaysInYear(date)
{
	var numberOfDaysInYear = 365;
	var year = date.getYear();

	if(year % 4 == 0)
	{
		if(year % 100 != 0)
		{
			numberOfDaysInYear = 366;
		}
		else
		{
			if(year % 400 == 0)
			{
				numberOfDaysInYear = 366;
			}
		}
	}

	return numberOfDaysInYear;
}

	setValueFromCookies('yellowSearchLocation', 'searchLocation', searchLocationDefaultString);
	setYellowSearchType();
