/*
*/

function createXMLHttpRequest()
    {
    var xmlReq = false;

    if(window.XMLHttpRequest)
	{
	try
	    {
            xmlReq = new XMLHttpRequest();
            }
        catch(e)
    	    {
            xmlReq = false;
            }
	}
    else
	if(window.ActiveXObject)
	    {
            try
        	{
                xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
                }
            catch(e)
        	{
                try
            	    {
                    xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                catch(e)
            	    {
                    xmlReq = false;
                    }
                }
            }

    return xmlReq;
    }

var userAgent = { };
userAgent.isAJAX = (createXMLHttpRequest()?true:false);
userAgent.isMozilla = (navigator.userAgent.match(/\bGecko\b/));
userAgent.isOpera = (navigator.userAgent.match(/\bOpera\b/));
userAgent.isInternetExplorer = (navigator.userAgent.match(/\bMSIE\b/) && !userAgent.isOpera);

function progressbar( form )
    {
    document.getElementById("status").value = "";

    document.getElementById("buttonCheck").disabled = true;
    document.getElementById("buttonParse").disabled = true;
    document.getElementById("buttonClear").disabled = true;

    document.getElementById("buttonStop").style.display = "";
    document.getElementById("progressbar").style.display = "";

    document.getElementById("i").value = 0;
    document.getElementById("proxycheck").value = 0;
    }

function stop( form )
    {
    document.getElementById("status").value = "stop";

    document.getElementById("buttonCheck").disabled = false;
    document.getElementById("buttonParse").disabled = false;
    document.getElementById("buttonClear").disabled = false;

    document.getElementById("buttonStop").style.display = "none";
    document.getElementById("progressbar").style.display = "none";
    }

function tmpCallServer( url, arg, filename )
    {
    var proxylist = document.getElementById("proxylist").value;
    var proxycounter = document.getElementById("proxycounter");

    proxylist = proxylist.replace( /\n/g, '<br>');
    proxylist = proxylist.split("<br>");
    tmpurl = url;
    tmpfilename = filename;
    proxycounter.value = proxylist.length;

    if( parseInt(document.getElementById("i").value) == 0 )
	{
	if( parseInt(proxylist.length) > 10 )
	    {
	    max_i = 10;
	    }
	else
	    {
	    max_i = proxylist.length;
	    }

	document.getElementById("i").value = max_i - 1;

	for( i = 0; i < max_i; i++ )
	    {
	    url = tmpurl + "?proxylist="+proxylist[i]+"&filename="+filename+"&rnd="+Math.random();
	    callServer( url, arg, tmpurl, tmpfilename, showHTML );
	    }
	}
    else
	{
	if( document.getElementById("status").value != "stop" &&
	    parseInt(document.getElementById("i").value) + 1 < parseInt(document.getElementById("proxycounter").value) )
	    {
	    i = parseInt(document.getElementById("i").value) + 1;

	    document.getElementById("i").value = i;

	    url = tmpurl + "?proxylist="+proxylist[i]+"&filename="+filename+"&rnd="+Math.random();
	    callServer( url, arg, tmpurl, tmpfilename, showHTML );
	    }
	}
    }

function tmpCallServer2( url, arg )
    {
    document.getElementById("buttonParse").disabled = true;
    document.getElementById("buttonCheck").disabled = true;
    document.getElementById("buttonClear").disabled = true;

    var parseurl = document.getElementById("parseUrl").value;

    url = url + "?url="+parseurl+"&rnd="+Math.random();
// пропустил тут tmpfilename?!?!?!?!

    callServer( url, arg, url, '', showTEXTAREA );
    }

function callServer( url, arg, tmpurl, tmpfilename, funct )
    {
    method = 'GET';
    data = null;

    var xmlReq = createXMLHttpRequest();

    if( xmlReq )
	{
        xmlReq.onreadystatechange = function()
    	    {
            if (xmlReq.readyState == 4)
        	{
                funct( arg, xmlReq.responseText, xmlReq.responseXML, xmlReq.status, xmlReq.statusText, tmpurl, tmpfilename );
                }
            };

	xmlReq.open(method, url, true);

	xmlReq.send(data);

        return false;
        }

    return true;
    }

function showTEXTAREA( element, responseText, responseXML, statusCode, statusText, tmpurl )
    {
    element = document.getElementById(element);

    document.getElementById("proxycounter").value = responseText.split("\n").length;

    if ( statusCode == 200 || statusCode == 201 )
        {
        element.value = responseText;

        document.getElementById("buttonParse").disabled = false;
        document.getElementById("buttonCheck").disabled = false;
        document.getElementById("buttonClear").disabled = false;
        }
    else
        {
        alert("Загрузить информацию не удалось:\n"+statusText+"statusCode: "+statusCode);
        }
    }

function showHTML(element, responseText, responseXML, statusCode, statusText, tmpurl, tmpfilename )
    {
    if (typeof(element)=="string") element=document.getElementById(element);

    var proxycheck = document.getElementById("proxycheck");

    proxycheck.value = parseInt(proxycheck.value) + 1;

    if (statusCode==200 || statusCode==201)
	{
	var proxycounter = document.getElementById("proxycounter");

        element.innerHTML = element.innerHTML + responseText;

        if( parseInt(proxycheck.value) >= parseInt(proxycounter.value) )
    	    {
    	    end();
	    }
	else
	    {
	    tmpCallServer( tmpurl, element, tmpfilename );
	    }
	}
    else
	{
        alert("Загрузить информацию не удалось:\n"+statusText+"statusCode: "+statusCode);
        }
    }

function end()
    {
    document.getElementById("buttonCheck").disabled = false;
    document.getElementById("buttonParse").disabled = false;
    document.getElementById("buttonClear").disabled = false;

    document.getElementById("progressbar").style.display = "none";
    document.getElementById("buttonStop").style.display = "none";
    }

