/*

Domanium2.ru, 2009
Ajax функции для кнопок

*/

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 callServer( url, result, mode, i )
    {
    url = url + "&mode=" + mode;
    method = 'GET';
    dataType = 'application/xml';

    var xmlReq = createXMLHttpRequest();

    if( xmlReq )
	{
        xmlReq.onreadystatechange = function()
    	    {
            if ( xmlReq.readyState == 4 )
        	{
                showHTML( result, xmlReq.responseText, xmlReq.responseXML, xmlReq.status, xmlReq.statusText, mode, i );
                }
            };

	xmlReq.open( method, url, true );

	if ( userAgent.isMozilla ) dataType = dataType + ';charset=utf-8';

	xmlReq.send( '1' );

        return false;
        }

    return true;
    }

function showHTML( result, responseText, responseXML, statusCode, statusText, mode, i )
    {
    DivResult = result;

    if (typeof(result) == "string") result = document.getElementById(result);

    if ( statusCode == 200 || statusCode == 201 )
	{
        result.innerHTML = responseText;
        }
    else
	{
        alert( "Отправить информацию не удалось:\n" + statusText );
        }

    if( mode == "add" || mode == "del" )
	{
	document.getElementById("AjaxLoad"+i).style.display = "none";
	}

    if( mode == "add" )
	{
	document.getElementById("ButtonDel"+i).style.display = "block";
	}

    if( mode == "del" )
	{
	document.getElementById("ButtonAdd"+i).style.display = "block";
	}

    DoFade( StartFadeAt, DivResult );
    }

var FadeInterval = 400;
var StartFadeAt = 6;

var FadeSteps = [];
FadeSteps[FadeSteps.length] = "ff";
FadeSteps[FadeSteps.length] = "ee";
FadeSteps[FadeSteps.length] = "dd";
FadeSteps[FadeSteps.length] = "cc";
FadeSteps[FadeSteps.length] = "bb";
FadeSteps[FadeSteps.length] = "aa";
FadeSteps[FadeSteps.length] = "99";

function DoFade( colorId, targetId )
    {
    if ( colorId >= 0 )
	{
        document.getElementById(targetId).style.backgroundColor = "#ffff" + FadeSteps[colorId];

        if ( colorId == 0 )
    	    {
    	    document.getElementById(targetId).style.backgroundColor = "transparent";
    	    }

	colorId--;

	setTimeout("DoFade("+colorId+",'"+targetId+"')", FadeInterval);
	}
    }
