//depends on utils.js

_XHR = {
	//some 'constants' :)
	rsUninitialized : 0,
	rsLoading : 1,
	rsLoaded : 2,
	rsInteractive : 3,
	rsOK : 4,

	httpOK : 200,
	httpNotFound : 404,

	//get XMLHttpRequest
	get : function ()
	{
		var xhr;
		try 
		{
	    	xhr = new ActiveXObject("Msxml2.XMLHTTP");
	 	} 
		catch (e) 
		{
		    try 
			{
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
		    } 
			catch (E) 
			{
				xhr = false;
			}
		}
	
		if (!xhr && typeof XMLHttpRequest != 'undefined')
		{
			xhr = new XMLHttpRequest();
		}
	
		return xhr;
	}

}

//----
function refreshHotPicks()
{
	//stop slideshow
	clearInterval(slideShowProcess);

	xhr = _XHR.get();

	xhr.open("POST", getCurrentURL(), false);
	xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xhr.send('ajax=1&cmd=refreshHotPicks');

	d = _e("hotpicks");
	d.innerHTML = xhr.responseText;
	reinitJS(xhr.responseText);
}

//----
function execJS(txt)
{ 
	if (!txt) return; 

	var script = document.createElement('script');
	script.setAttribute('type', 'text/javascript');
	script.setAttribute('language', 'JavaScript'); 
	if (_isIE) 
		script.text = txt;
	else 
		script.appendChild( document.createTextNode( txt ) ); 

	var head = document.getElementsByTagName("head")[0] || document.documentElement; 
	head.insertBefore( script, head.firstChild ); 
	head.removeChild( script ); 
} 

function reinitJS(response)
{
	var jsFragment = '(?:<script.*?>)((\n|\r|\.)*?)(?:<\/script>)'; 

	var matchAll = new RegExp(jsFragment, 'img');
	var matchOne = new RegExp(jsFragment, 'im');

	var arr = response.match(matchAll) || [];
	var jsCode = [];

	for (var i=0; i < arr.length; i++)
	{
		var code = arr[i].match(matchOne);
		if (code && code[1] != '')
		{
			jsCode[jsCode.length] = code[1];
		}
	}

	response = response.replace(matchAll, '');

	for (var i=0; i < jsCode.length; i++)
		execJS(jsCode[i]);

	return response;
}
//----