CLIENT_VERSION_SUPPORT_MP3PURCHASE = 7;
SEARCH_SITE_DOMAIN = getSiteDomain();
SEARCH_HOST = "http://search.bearshare.com";
CLIENT_HOST = "http://wa." + SEARCH_SITE_DOMAIN;
CLIENT_EXISTS = 1;

var params = new Array();

var resultsLoc = "web";
var firefox = document.getElementById && !document.all;

function _addEventToObj(pObj,pEventName,pFunc)
{
	var extEventName="on"+pEventName;
	if (pObj.addEventListener)
		pObj.addEventListener(pEventName,pFunc,false);
	else if (pObj.attachEvent)
		pObj.attachEvent(extEventName,pFunc);
	else
	{
		var eventFunc=pObj[extEventName];
		pObj[extEventName]=function()
		{
			var eh=eventFunc.apply(this,arguments);
			var ehAlt=pFunc.apply(this,arguments);
			return eh==undefined?ehAlt:(ehAlt==undefined?eh:ehAlt&&eh);
		}
	}
}

function getSiteDomain()
{
	return window.location.hostname.replace(/.*?\./,"");
}

function getEventElement(event)
{
	if (!event) 
		var event = window.event;
	if (event.srcElement)
		elem = event.srcElement;
	else
		elem = event.target;
	return elem;
}

function setInputDirection(event, obj)
{
	var a = "[\u0000- !-@[-`{-\u00bf\u00d7\u00f7\u02b9-\u02ff\u2000-\u2bff]";
	var d = new RegExp("^"+a+"*([0-9]"+a+"*$|[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u2c00-\ufb1c\ufdfe-\ufe6f\ufefd-\uffff])");
	var e = new RegExp("^"+a+"*$");
	if (event)
		input = getEventElement(event);
	else
		input = obj;
	inputDir = d.test(input.value)?"ltr":(e.test(input.value)?"":"rtl");

	input.dir = inputDir;
	if (ssgObj.ac && ssgObj.ac.sd)
		try{ssgObj.ac.sd(inputDir);}catch(e){}
}

function handleLtrInput(obj)
{
	if (obj)
	{
		_addEventToObj(obj, "input", setInputDirection);
		_addEventToObj(obj, "propertychange", setInputDirection);
		setInputDirection(null, obj);
	}
}


function saveCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else
		expires = "";
	document.cookie = name+"="+value+expires+"; domain=."+SEARCH_SITE_DOMAIN+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i<ca.length;i++) {
	var c = ca[i];
	while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return parseReturn(c.substring(nameEQ.length,c.length));
	}
	return null;
}

function parseReturn(value) {
	if (value == 'true') {
		return true;
	} else if (value == 'false') {
		return false;
	} else {
		return value;
	}
}

function getParams()
{
	var locationSearch = document.location.search.toString();
	locationSearch = (locationSearch.substring(0,1) == "?") ? locationSearch.substring(1) : locationSearch;
	var searchParamsArr = locationSearch.split("&");
	for (var i=0; i<searchParamsArr.length; i++)
	{
		var searchParamArr = searchParamsArr[i].split("=");
		for (var y=0; y<searchParamArr.length; y++)
		{
			if (y == 0)
			{
				params[searchParamArr[y]] = "";
			}
			else
			{
				params[searchParamArr[0]] = searchParamArr[y];
			}
		}
	}
}

function addParamToUrl(pVal,pUrlName,pSign)
{
	if (!pSign)
		pSign = "&";
	return (pVal != null && pVal != "") ? pSign + pUrlName + "=" + pVal : "";
}

function sf()
{
	if (query != undefined && query != null && query != "")
	{
		query=decodeURIComponent(query);
		if (window.RegExp) {
			document.f.q.value = query.replace(/\+/g, " ");
		} else {
			document.f.q.value = query;
		}
	}
	if (CLIENT_EXISTS && document.getElementById("searchOptions"))
	{
		document.getElementById("searchOptions").style.display = "";
	}
	if (params["fileType"] != null && params["fileType"] != "")
	{
		for(var i=0;i<document.all["fileType"].options.length;i++)
		{
			if (params["fileType"] == document.all["fileType"].options[i].value)
				document.all["fileType"].options[i].selected = true;
		}
	}
	if (params["searchType"] != null && params["searchType"] != "")
	{
		for(var i=0;i<document.all["searchType"].options.length;i++)
		{
			if (params["searchType"] == document.all["searchType"].options[i].value)
				document.all["searchType"].options[i].selected = true;
		}
	}
	document.f.q.focus();
}
function IMSearch(query)
{
	if (query != "")
	{
		if (currentPage == "IMResults")
			document.f.action = '';
		else
			document.f.action = musicSearchPage + 'music';
		document.forms['f'].submit();
	}
	else if (document.getElementById("query"))
	{
		document.getElementById("query").focus();
	}
}
function IMSearchPage(query)
{
	var searchParams = "";
	if (document.all["fileType"] != null)
		searchParams += "&fileType=" + document.all["fileType"].value
	if (document.all["searchType"] != null)
		searchParams += "&searchType=" + document.all["searchType"].value

	location.href = musicSearchPage + 'IMSearch.html?q=' + query + searchParams;
}
getParams();
var query = (params['q']!= undefined)? params['q']:'';
var source = (params['src']!= undefined)? params['src']:'';
var fileType = (params['fileType']!= undefined)?params['fileType']:0 ;
var searchType = (params['searchType']!= undefined)?params['searchType']:'Query' ;

if (source.toLowerCase() == "ssb" && document.location.pathname.length == (document.location.pathname.lastIndexOf("/")+1))
	location.replace("/sidebar.html");

// language selection functions
function showHideLanguages(pShow)
{
	var langDiv = document.getElementById("languageSelection");
	if (pShow && langDiv.style.display=="none")
	{
		langDiv.style.display="";
	}
	else
	{
		langDiv.style.display="none";
	}
}

function removeCookieIdParam(pCookieVal, pName)
{
	cookieParams = pCookieVal.split("|");
	cookieStr = "";
	for (var i=0;i<cookieParams.length;i++)
	{
		paramElement = cookieParams[i].split("=");
		if (paramElement.length==1)
			cookieStr += "|" + paramElement[0];
		else if (paramElement[0] != pName)
			cookieStr += "|" + paramElement[0] + "=" + paramElement[1];
	}
	cookieStr = cookieStr.substring(1);
	
	return cookieStr;
}

function updateUrlParam(obj, paramName, paramValue)
{
	var urlElements = obj.href.split("?");

	if (urlElements.length == 2)
	{
		obj.href = replaceUrlParam(paramName, paramValue, urlElements[0] + "?", urlElements[1].split("&"))
	}

	return true;
}

function replaceUrlParam(pName, pValue, url, paramsArray)
{
	if (!url)
		url = searchPage + resultsLoc + "?";
	pValue = encodeURIComponent(pValue);
	if (!paramsArray)
	{
		for (param in params)
			url += param + "=" + (param == pName ? pValue : params[param]) + "&";
	}
	else
	{
		for (i=0; i<paramsArray.length; i++)
		{
			paramsObj = paramsArray[i].split("=");
			url += paramsObj[0] + "=" + (paramsObj[0] == pName ? pValue : paramsObj[1]) + "&";
		}
	}

	url = url.substring(0, url.length-1);
	return url;
}

function gotoTranslation(lang, url)
{
	cookieidVal = removeCookieIdParam(decodeURIComponent(readCookie("cookieid")), "lng");
	saveCookie('cookieid',cookieidVal,10000);

	saveCookie('hlng',lang,10000);
	if (!url)
		location.reload();
	else
		location.href = replaceUrlParam("hl", lang);
}

function handleLanguageTableDisplay()
{
	document.onclick = function (event)
	{
		elem = getEventElement(event);
		if (elem.parentNode && elem.parentNode.id != "languagesLink")
		{
			showHideLanguages(false);
		}
	}
}
/******************* ASK SEARCH FUNCTIONS ******************/

var searchPath = window.location.pathname.substr(0,window.location.pathname.lastIndexOf("/")+1);
var searchPage = SEARCH_HOST + searchPath;
var musicSearchPage = SEARCH_HOST + searchPath;

currentPage = (typeof currentPage == "undefined") ? "" : currentPage;
localeCountry = (typeof localeCountry == "undefined") ? "" : localeCountry;
geoParam = (typeof geoParam == "undefined") ? "" : geoParam;

var globalSearchWord = "";

function loadFunctions()
{
	if (params["q"] != null)
		window.scrollTo(0,0);
}

function setLanguage()
{
	var lr;
	if (params["lr"] != null)
	{
		lr = parseInt(params["lr"], 10);
		if (isNaN(lr))
			lr = null;
	}
	else
	{
		if (localeCountry != "")
			lr = readCookie("lr_" + localeCountry.toLowerCase());
	}
	if (document.f.lr != null)
	{
		if (lr != null && document.f.lr[lr])
			document.f.lr[lr].checked = true;
		else
			document.f.lr[0].checked = true;
	}
}

if (params["hl"] == null || params["hl"] == "")
	params["hl"] = "en";

if (currentPage == "webResults")
{
	if (params["q"] == null || decodeURIComponent(params["q"]).replace(/^\s*|\s*$/g,"") == "")
	{
		location.href = "./";
	}
	else
	{
		params["q"] = params["q"].replace(/\%20|\+/ig," ").replace(/( )+/ig," ").replace(/^\s*|\s*$/g,"");
	}
}

function gotoImages(query, sidebarLink)
{
	imagesLocation = "http://www.ask.com/pictures?o=13047&l=dis&q=";
	gotoLink(query, imagesLocation, sidebarLink);
}
function gotoVideos(query, sidebarLink)
{
	videosLocation = "http://www.ask.com/video?q=";
	gotoLink(query, videosLocation, sidebarLink);
}
function gotoIMSearch(query, sidebarLink)
{
	if (query.replace(/^\s*|\s*$/g,"") == "")
	{
		sidebarLink.href = "IMSearch.html";
		return true;
	}
	else
	{
		IMSearch(query);
		return false;
	}
}

function submitForm()
{
    gotoResults(1,1);
	return false;
}

function gotoLink(query, url, sidebarLink)
{
	if (url)
	{
		uLocation = url + encodeURIComponent(query);
		if (sidebarLink)
		{
			sidebarLink.href = uLocation;
			return true;
		}
		else
		{
			location.href = uLocation;
			return false;
		}
	}
	else
	{
		gotoResults(1,1);
		return false;
	}
}

function showTab(id, tooltip, url)
{
	submitForm = function(){gotoLink(document.f.q.value, url);return false;}

	for (var i=0; i<5; i++)
	{
		if (document.getElementById(i+'a'))
		{
			if (i+'a' == id)
				document.getElementById(i+'a').className = "tabText";
			else
				document.getElementById(i+'a').className = "regLink";
		}
	}
	document.getElementById('query').title = tooltip;
	document.getElementById('btnWebSearch').title = tooltip;
	document.getElementById('query').focus();
}

function showWebTab()
{
	submitForm = function(){gotoResults(1,1);return false;}

	if (document.getElementById('0a'))
		document.getElementById('0a').className = "tabText";
	if (document.getElementById('1a'))
		document.getElementById('1a').className = "regLink";
	if (document.getElementById('2a'))
		document.getElementById('2a').className = "regLink";
	document.getElementById('query').title = document.getElementById('btnWebSearch').value;
	document.getElementById('btnWebSearch').style.display = '';
	document.getElementById('btnImagesSearch').style.display = 'none';
	document.getElementById('btnVideosSearch').style.display = 'none';
}
function showImagesTab()
{
	submitForm = function(){gotoImages(document.f.q.value);return false;}

	if (document.getElementById('0a'))
		document.getElementById('0a').className = "regLink";
	if (document.getElementById('1a'))
		document.getElementById('1a').className = "tabText";
	if (document.getElementById('2a'))
		document.getElementById('2a').className = "regLink";
	document.getElementById('query').title = document.getElementById('btnImagesSearch').value;
	document.getElementById('btnWebSearch').style.display = 'none';
	document.getElementById('btnImagesSearch').style.display = '';
	document.getElementById('btnVideosSearch').style.display = 'none';
}
function showVideosTab()
{
	submitForm = function(){gotoVideos(document.f.q.value);return false;}

	if (document.getElementById('0a'))
		document.getElementById('0a').className = "regLink";
	if (document.getElementById('1a'))
		document.getElementById('1a').className = "regLink";
	if (document.getElementById('2a'))
		document.getElementById('2a').className = "tabText";
	document.getElementById('query').title = document.getElementById('btnVideosSearch').value;
	document.getElementById('btnWebSearch').style.display = 'none';
	document.getElementById('btnImagesSearch').style.display = 'none';
	document.getElementById('btnVideosSearch').style.display = '';
}

function setSpellWord(obj)
{
	if (firefox)
	{
		document.getElementById("query").value = obj.textContent;
		if (document.getElementById("query_bottom"))
			document.getElementById("query_bottom").value = obj.textContent;
	}
	else
	{
		document.getElementById("query").value = obj.innerText;
		if (document.getElementById("query_bottom"))
			document.getElementById("query_bottom").value = obj.innerText;
	}
	gotoResults(1,1);
}

function gotoResults(type, page, searchAssistant)
{
	var searchWord;
	var src="";

	if (!document.getElementById("src"))
	{
		src = addParamToUrl(params["src"],"src");
	}
	else
	{
		src = "&src=" + document.getElementById("src").value;
	}
	if (type == 1)
	{
		searchWord = document.getElementById("query").value;
	}
	else
	{
		searchWord = document.getElementById("query_bottom").value;
	}

	if (searchWord.replace(/^\s*|\s*$/g,"") == "")
	{
		if (currentPage == "webResults")
			location.href = searchPage;

		document.getElementById("query").value = "";
		document.getElementById("query").focus();
		return;
	}

	var pageStr = addParamToUrl(page,"page");

	if (searchAssistant != null && searchAssistant == true)
	{
		document.getElementById("hl").value = document.getElementById("hl").value.toLowerCase();
		document.forms[0].action = resultsLoc;
		document.forms[0].submit();
	}
	else
	{
		if (localeCountry != "" && document.forms[0].lr != null)
		{
			if (document.forms[0].lr[0] != null && document.forms[0].lr[0].checked)
			{
				saveCookie("lr_" + localeCountry, "0",365)
				var language = 0;
			}
			if (document.forms[0].lr[1] != null && document.forms[0].lr[1].checked)
			{
				saveCookie("lr_" + localeCountry, "1",365)
				var language = 1;
			}
			if (document.forms[0].lr[2] != null && document.forms[0].lr[2].checked)
			{
				saveCookie("lr_" + localeCountry, "2",365)
				var language = 2;
			}
		}
		queryStr = "?q=" + encodeURIComponent(searchWord) + "&hl=" + document.getElementById("hl").value.toLowerCase() + pageStr + ((language != null) ? "&lr=" + language : "") + src + (geoParam != "" ? "&geo="+geoParam : "");
		if (currentPage == "webResults")
			location.href = window.location.pathname + queryStr;
		else
			location.href = searchPage + resultsLoc + queryStr;
	}	
}