function addToFavorites( softId, subs ) {
    var visitorId = 0;

    var visitorId = getValue('visitor_id');
    if (!visitorId) {
        afterAuthFunction = 'addToFavorites('+softId+');';
        showFloatAuthForm();
        return;
    }

    if (typeof(subs) == 'undefined') {
        subs = 0;
    }

    var url = 'ajax.php';
    var pars = {dj: 0, module: 'soft_favorites', 'response_xml': true, soft_id: softId, subs: subs, event: 'add'};

    document.body.style.cursor = 'wait';

    var myAjax = new Ajax.Request(
	    url, 
        {
		    method: 'get', 
		    parameters: pars,
            asynchronous: false,
            onFailure: function() {
                alert("Запрос AJAX закончился неудачей");
                document.body.style.cursor = 'default';
            },
            onSuccess: function(transport) {
                document.body.style.cursor = 'default';
/*
                if (json.error != '') {
                    alert("Произошла ошибка:\n"+json.error);
                }
                else if (json.result != '') {
                    alert(json.result);
                }
*/
                var xmlDoc = transport.responseXML;
                var root = xmlDoc.getElementsByTagName("root")[0];
                var error = root.getElementsByTagName("error")[0].childNodes[0];

                if (error) {
                    alert(error.nodeValue);
                    return;
                }

                //$('row_'+softId).hide();

                var result = root.getElementsByTagName("result")[0];

                if (result.getElementsByTagName("error")[0] && result.getElementsByTagName("error")[0].childNodes[0]) {
                    alert(result.getElementsByTagName("error")[0].childNodes[0].nodeValue);
                }

                if (result.getElementsByTagName("message")[0] && result.getElementsByTagName("message")[0].childNodes[0]) {
                    alert(result.getElementsByTagName("message")[0].childNodes[0].nodeValue);
                }

                if (result.getElementsByTagName("count")[0] && result.getElementsByTagName("count")[0].childNodes[0]) {
                    var count = result.getElementsByTagName("count")[0].childNodes[0].nodeValue;
                    $('favorites_count').innerHTML = "&nbsp;("+ count +")";
/*
                    if (count == 0) {
                        if ($('row_fav_not_empty')) {
                            $('row_fav_not_empty').hide();
                        }
                        $('row_fav_is_empty').show();
                    }
*/
                }
            }
        }
    );
}


function removeFromFavorites( softId ) {
    var visitorId = 0;

    var visitorId = getValue('visitor_id');
    if (!visitorId) {
        afterAuthFunction = 'removeFromFavorites('+softId+');';
        showFloatAuthForm();
        return;
    }

    if (confirm("Удалить из \"Избранных программ\"?") == false) {
        return;
    }

    var url = 'ajax.php';
    var pars = {dj: 0, module: 'soft_favorites', 'response_xml': true, soft_id: softId, event: 'remove'};

    document.body.style.cursor = 'wait';

    var myAjax = new Ajax.Request(
	    url, 
        {
		    method: 'get', 
		    parameters: pars,
            asynchronous: false,
            onFailure: function() {
                alert("Запрос AJAX закончился неудачей");
                document.body.style.cursor = 'default';
            },
            onSuccess: function(transport) {
                document.body.style.cursor = 'default';

                var xmlDoc = transport.responseXML;
                var root = xmlDoc.getElementsByTagName("root")[0];
                var error = root.getElementsByTagName("error")[0].childNodes[0];

                if (error) {
                    alert(error.nodeValue);
                    return;
                }

                $('row_'+softId).hide();

                var result = root.getElementsByTagName("result")[0];

                if (result.getElementsByTagName("error")[0] && result.getElementsByTagName("error")[0].childNodes[0]) {
                    alert(result.getElementsByTagName("error")[0].childNodes[0].nodeValue);
                }

                if (result.getElementsByTagName("message")[0] && result.getElementsByTagName("message")[0].childNodes[0]) {
                    alert(result.getElementsByTagName("message")[0].childNodes[0].nodeValue);
                }

                if (result.getElementsByTagName("count")[0] && result.getElementsByTagName("count")[0].childNodes[0]) {
                    var count = result.getElementsByTagName("count")[0].childNodes[0].nodeValue;
                    $('fav_count').innerHTML = count;

                    if (count == 0) {
                        if ($('row_fav_not_empty')) {
                            $('row_fav_not_empty').hide();
                        }
                        $('row_fav_is_empty').show();
                    }
                }
            }
        }
    );
}


function subscribe( softId ) {
    var visitorId = 0;

    var visitorId = getValue('visitor_id');
    if (!visitorId) {
        afterAuthFunction = 'removeFromFavorites('+softId+');';
        showFloatAuthForm();
        return;
    }
/*
    if (confirm("Подписаться на рассылку обновлений этой программы?") == false) {
        return;
    }
*/
    var url = 'ajax.php';
    var pars = {dj: 0, module: 'soft_favorites', 'response_xml': true, soft_id: softId, event: 'subscribe'};

    document.body.style.cursor = 'wait';

    var myAjax = new Ajax.Request(
	    url, 
        {
		    method: 'get', 
		    parameters: pars,
            asynchronous: false,
            onFailure: function() {
                alert("Запрос AJAX закончился неудачей");
                document.body.style.cursor = 'default';
            },
            onSuccess: function(transport) {
                document.body.style.cursor = 'default';

                var xmlDoc = transport.responseXML;
                var root = xmlDoc.getElementsByTagName("root")[0];
                var error = root.getElementsByTagName("error")[0].childNodes[0];

                if (error) {
                    alert(error.nodeValue);
                    return;
                }

                var result = root.getElementsByTagName("result")[0];

                if (result.getElementsByTagName("error")[0] && result.getElementsByTagName("error")[0].childNodes[0]) {
                    alert(result.getElementsByTagName("error")[0].childNodes[0].nodeValue);
                }

                if (result.getElementsByTagName("message")[0] && result.getElementsByTagName("message")[0].childNodes[0]) {
                    alert(result.getElementsByTagName("message")[0].childNodes[0].nodeValue);
                }

                if (result.getElementsByTagName("ok")[0] && result.getElementsByTagName("ok")[0].childNodes[0]) {
                    var ok = result.getElementsByTagName("ok")[0].childNodes[0].nodeValue;
                    if (ok == 1) {
                        $('td_subs_'+softId).innerHTML = '<a href="javascript:void(null);" onClick="unsubscribe('+ softId +');"><img src="/img/main/ico/ico4.gif" width="19" height="19" alt="Отписаться"><p class="sm"/><b>Отписаться</b></a>';
                    }
                }
            }
        }
    );
}


function unsubscribe( softId ) {
    var visitorId = 0;

    var visitorId = getValue('visitor_id');
    if (!visitorId) {
        afterAuthFunction = 'removeFromFavorites('+softId+');';
        showFloatAuthForm();
        return;
    }
/*
    if (confirm("Отменить подписку на получение уведомлений о выходе новых версий для этой программы?") == false) {
        return;
    }
*/
    var url = 'ajax.php';
    var pars = {dj: 0, module: 'soft_favorites', 'response_xml': true, soft_id: softId, event: 'unsubscribe'};

    document.body.style.cursor = 'wait';

    var myAjax = new Ajax.Request(
	    url, 
        {
		    method: 'get', 
		    parameters: pars,
            asynchronous: false,
            onFailure: function() {
                alert("Запрос AJAX закончился неудачей");
                document.body.style.cursor = 'default';
            },
            onSuccess: function(transport) {
                document.body.style.cursor = 'default';

                var xmlDoc = transport.responseXML;
                var root = xmlDoc.getElementsByTagName("root")[0];
                var error = root.getElementsByTagName("error")[0].childNodes[0];

                if (error) {
                    alert(error.nodeValue);
                    return;
                }

                //$('row_'+softId).hide();

                var result = root.getElementsByTagName("result")[0];

                if (result.getElementsByTagName("error")[0] && result.getElementsByTagName("error")[0].childNodes[0]) {
                    alert(result.getElementsByTagName("error")[0].childNodes[0].nodeValue);
                }

                if (result.getElementsByTagName("message")[0] && result.getElementsByTagName("message")[0].childNodes[0]) {
                    alert(result.getElementsByTagName("message")[0].childNodes[0].nodeValue);
                }

                if (result.getElementsByTagName("ok")[0] && result.getElementsByTagName("ok")[0].childNodes[0]) {
                    var ok = result.getElementsByTagName("ok")[0].childNodes[0].nodeValue;
                    if (ok == 1) {
                        //alert($('td_subs_'+softId).childElements());
                        $('td_subs_'+softId).innerHTML = '<a href="javascript:void(null);" onClick="subscribe('+ softId +');"><img src="/img/main/ico/ico4o.gif" width="19" height="19" alt="Подписаться"><p class="sm"/><b>Подписаться</b></a>';
                        //alert($('td_subs_'+softId).innerHTML);
                    }
                }
            }
        }
    );
}



