//AJAX
var objXMLHttp = null;
var gEventHandler = null;

function GetXmlHttpObject()
{ 
	if (window.XMLHttpRequest)
	{
		objXMLHttp = new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp =  new ActiveXObject("Microsoft.XMLHTTP")
	}

	return objXMLHttp;
}


function AJAX_Request(sURL, funEventHandler)
{
	gEventHandler = funEventHandler;

	objXMLHTTP = GetXmlHttpObject();
	objXMLHTTP.open('GET', sURL, true);
    objXMLHTTP.onreadystatechange = AJAX_ResponseHandler;
	objXMLHTTP.send(null);
}


function AJAX_ResponseHandler()
{
	if((objXMLHTTP.readyState == 4) && (objXMLHTTP.status == 200))
	{
		if (objXMLHTTP.responseText != null)
		{
			gEventHandler(objXMLHTTP.responseText);
		}
	}
}


function SetCookie(sName, sValue)
{
	var dteExpiration = new Date();
	dteExpiration.setFullYear(dteExpiration.getFullYear() + 5);

	if (sValue != '')
	{
		document.cookie = sName + '=' + escape(sValue) + '; expires=' + dteExpiration.toUTCString();
	}
}


function GetCookie(sName)
{
	var arrCookie = document.cookie.split(';');

	for (var i = 0; i < arrCookie.length; i++)
	{
		var arrNameValue = arrCookie[i].split('=');

		if (arrNameValue[0].indexOf(sName) >= 0)
		{
			return unescape(arrNameValue[1]);
		}
	}

	return null;
}


function GoToMixCombineFilter(sTitle, sFeedURL)
{
	location.href = 'mix-combine-filter-rss-feeds.aspx' + ((sFeedURL.indexOf('[bc_') < 0) ? '?feedurls=' + sTitle + '[bc_sep]' + escape(sFeedURL) : '');
}


function Bookmark(sTitle, sURL)
{
	if((window.external) && (!window.sidebar)) // IE
	{
		window.external.AddFavorite(sURL, sTitle);
	}
	else if (window.sidebar) // Firefox
	{
		window.sidebar.addPanel(sTitle, sURL, '');
	}
}


function Trim(sValue)
{
	return sValue.replace(/^\s+|\s+$/g, '');
}


function RemoveAmp(sValue)
{
	while (sValue.indexOf('&amp;') >= 0)
	{
		sValue = sValue.replace('&amp;', '&')
	}

	while (sValue.indexOf('&AMP;') >= 0)
	{
		sValue = sValue.replace('&AMP;', '&')
	}

	return sValue;
}

