//GetElementsByID Shorthand
function $()
{
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++)
    {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);
        if (arguments.length == 1)
            return element;
        elements.push(element);
    }
    return elements;
}

// Crossbrowser XMLHttpRequest Object
function createXMLHttpRequest()
{
	try { return new ActiveXObject("MSXML3.XMLHTTP") } catch(e) {}
	try { return new ActiveXObject("MSXML2.XMLHTTP.3.0") } catch(e) {}
	try { return new ActiveXObject("Msxml2.XMLHTTP") } catch(e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
    try { return new XMLHttpRequest();                   } catch(e) {}
    window.status = "XMLHttpRequest not supported";
    return null;
}

function XMLHttpSendRequest(url, callbackResponseFunc, cacheProtect, p)
{
	var request = createXMLHttpRequest();
	if (request == null) return;

    request.onreadystatechange = function ()
	{
	    if (request.readyState == 4)
	    {
	        if (request.status == 200)
	        {
	        	callbackResponseFunc(request.responseXML, request.responseText, p);
	            window.status = "";
	        }
	        else
	        {
	            window.status = "Проблемы при отправке данных.";
	        }
	    }
	    else
	    {
	        window.status = "Подождите, идёт отправка данных.";
	    }
	}
	if (cacheProtect)
	{
		var time = new Date();
		url += "&rand=" + time.getTime();
	}
    request.open("GET", url, true);
    request.send(null);
}
