﻿oMapiaWindow = function() {
    this.windowResize = function() {
        var oWait = $("#idMapiaPopUpGr");
        oWait[0].style.top = (parseInt(getScrollTop(), 10) + ((getViewportHeight() - oWait.height()) / 2)) + "px";
        oWait[0].style.left = (parseInt(document.body.scrollLeft, 10) + ((getViewportWidth() - oWait.width()) / 2)) + "px";
    };
    this.resize = function() {
        if (MapiaWindow.timeOut)
            clearTimeout(MapiaWindow.timeOut);
        MapiaWindow.timeOut = window.setTimeout(MapiaWindow.windowResize, 6)

    };
    this.Create = function() {
        pleaseWait.Show();
        if ($("#idMapiaPopUpGr").length < 0)
            this.Hide();

        $("body").append(
		'<div id="idMapiaPopUpGr" class="popupBoxModel mapPopUp Mapia" style="z-index:-9;left:50%;position:fixed;top:20%;">' +
			'<div class="transparentBorder">' +
			  '<div class="popupContent" style="padding:0;">' +
				'<div class="closeSiteEnter closeSearchPopup"><a href="javascript:void(0);" rel="nofollow"  onclick="MapiaWindow.Hide();"><img height="11" width="12" alt="закрыть" src="http://img.address.ua/img/close_icon.gif"></a></div>' +
				'<iframe id="ifMapia" scrolling="no" height="420" frameborder="0" width="710" src="' + $("#divGrpAction").attr("popUrl") + '" marginwidth="0" marginheight="0"></iframe>' +
			  '</div>' +
			'</div>' +
		'</div>');
        oMapiaWindow.prototype.width = $("#ifMapia").width() + "px";
        oMapiaWindow.prototype.height = $("#ifMapia").height() + "px";
    };
    this.Show = function() {
        pleaseWait.Hide();
        //        MapiaWindow.resize();
        //        $(window).bind("resize", MapiaWindow.resize);
        //        $(window).bind("scroll", MapiaWindow.resize);
        $("#idMapiaPopUpGr").css("z-index", "200000");
    };
    this.Hide = function() {
        pleaseWait.Hide();
        //        $(window).unbind("resize", MapiaWindow.resize);
        //        $(window).unbind("scroll", MapiaWindow.resize);
        $("#idMapiaPopUpGr").hide().remove();
    };
};

var MapiaWindow = new oMapiaWindow();


var CollectIdsStart = function() {
    if (window.ListingIds == null) {
        window.ListingIds = new Array();
        return true;
    } else {
        alert("Предыдущий запрос еще не выполнился!\n Попробуйте выполить данное действие попозже.");
        return false;
    }
};
var CollectIds = function(e) 
{ window.ListingIds.push(parseInt(e[0].id.replace('grpAct', ''))); };
var CollectIdsEnd = function(method, goodMess) {
    if (window.ListingIds.length < 1) {
        window.ListingIds = null;
        alert("Выберите объявления!");
        return;
    }
    var str = "";
    $(window.ListingIds).each(function(i, e) { str += (str == "" ? '"' : ',"') + e + '"'; });
    CallWebService("/WebServices/WSListing.asmx/" + method, '{ "listingIds": [' + str + '] }',
        function() {
            if (/UserProfile\/MyListings/i.test(location) && method == !"RePublishingListings" && method != "ListingsToMiddleman")// simple test for user profile and several methods
                $(window.ListingIds).each(function(i, e) { var o = $('#act' + e); if (o && o.attr("update")) insertSource(o.attr("update"), 'act' + e); });
            else
                window.location.assign(window.location);

            if (goodMess)
                alert(goodMess);
        }, true,
        function() { window.ListingIds = null; });
};

var ShowPointOnMapia = function(e) {
	var data;
	eval('data = {' + $(e).attr("data") + '}');
	var address = data.street + ' ' + data.buildNum;
	if (address.search(/[^\s]/) < 0)
		return;
	var title = address + ', ' + data.price + ', ID:' + data.complexId;
	var categoryName = data.complexType;
	MapiaWindow.MapiaData = [{
		city: data.region,
		marker: 'marker' + data.complexId, 
		address: data.coords?data.coords:address,
		data: {
			title: title,
			icon_url: data.root + '/img/key.gif',
			category_name: categoryName,
			logo: data.root + data.photo,
			url: $(e).attr("url")
		}
	}];
	MapiaWindow.Create();
}

var GroupAction = function(act) {
    if (act < 0)
        return;
    var Action = ([
{///*OpenInWindow*/
    start: function() { window.WOpened = new Array(); if (items.length > 10) alert("Только первые 10 объявлений будут открыты в отдельных окнах!"); },
    elm: function(e) { if (window.WOpened.length < 10) window.WOpened.push(window.open(e.attr("url"), "_blank")); },
    end: function() {/*
        if (window.WOpened.length > 0) {
            var arr = window.WOpened;
            window.WOpened = null;
            //$(window).unload(function() { $(arr).each(function(i, e) { e.close(); }) })
        }*/
    }
},
{///*ShowOnMapia*/
    start: function() { MapiaWindow.MapiaData = new Array(); },
    elm: function(e) {
        var data;
        eval('data = {' + e.attr("data") + '}');
        var address = data.street + ' ' + data.buildNum;
        if (address.search(/[^\s]/) < 0)
            return;
        var title = address + ', ' + data.price + ', ID:' + data.listingId;
        var categoryName = data.tranText + ', ' + data.realtyText;
        // if address was found
        MapiaWindow.MapiaData.push({ city: data.region, marker: 'marker' + data.listingId, address: (data.coords ? data.coords : address),
            data: {
                title: title,
                icon_url: data.root + '/img/key.gif',
                category_name: categoryName,
                logo: data.root + data.photo,
                url: e.attr("url")
            }
        });
    },
    end: function() { MapiaWindow.Create(); }
},
{///*Print*/
    start: CollectIdsStart,
    elm: CollectIds,
    end: function() {
        window.open($("#divGrpAction").attr("urlPrint").replace(/-params-$/, window.ListingIds), "_blank");
        window.ListingIds = null;
    }
},
{///*SendFriend*/
    start: function() { window.Listings = new Array(); if (items.length > 10) alert("Только первые 10 объявлений будут отправлены!"); },
    elm: function(e) {
        if (window.Listings.length < 10) window.Listings.push({ id: parseInt(e[0].id.replace('grpAct', '')), url: e.attr("url") });
    },
    end: function() {
        if (window.Listings.length > 0) {
            sendToFriend.listingIds = window.Listings;
            sendToFriend.Show();
        }
    }
},
{///*AddToCMA*/
    start: CollectIdsStart,
    elm: CollectIds,
    end: function() {
        if (window.ListingIds.length > 0) {
            var i, ids = "";
            for (i = 0; i < window.ListingIds.length; i++)
                ids += (i > 0 ? "," : "") + window.ListingIds[i];
            window.ListingIds = null;
            SelectCMA.Show(ids);
        }
    }
},
{///*Deleting*/
    start: CollectIdsStart,
    elm: CollectIds,
    end: function() {
        if (confirm("Вы действительно хотите удалить объявление? Данные нельзя будет восстановить."))
            CollectIdsEnd("DeleteListings", null);
        else
            window.ListingIds = null;
    }
},
{///*RePublishing*/
    start: function() {
        var d = new Date();
        d.setDate(d.getDate() + 30);
        if (!confirm("Срок публикации объявления продлён на 30 дней. Окончание публикации – " + d.getDate() + "." + (d.getMonth() + 1) + "." + d.getFullYear() + " !"))
            return false;
        CollectIdsStart();
    },
    elm: function(e) { if (e.attr("Publish") == "1") CollectIds(e); },
    end: function() {
        CollectIdsEnd("RePublishingListings");
    }
},
{///*AwayPublication*/
    start: CollectIdsStart,
    elm: function(e) { if (e.attr("Publish") == "1") CollectIds(e); },
    end: function() {
        CollectIdsEnd("ListingsAwayPublication", "Выбранные объявления сняты с публикации !");
    }
},
{///*ToMiddleman*/
    start: CollectIdsStart,
    elm: function(e) { if (e.attr("Publish") == "1") CollectIds(e); },
    end: function() {
        CollectIdsEnd("ListingsToMiddleman", "В выбранных объявлениях изменен статус на \"Через посредника\" !");
    }
},
{///*Booklet*/
    start: function() {
        window.Listings = new Array();
        if (items.length > 10)
            alert("Только первые 10 объявлений войдут в буклет!");
    },
    elm: function(e) {
        if (e.attr("Publish") == "1") {
            if (window.Listings.length < 10)
                window.Listings.push(parseInt(e[0].id.replace('grpAct', '')));
        } else if (!window.Listings.IsAsked) {
            window.Listings.IsAsked = true;
            alert("Вы не можете добавлять в буклет неактивные объявления");
        }
    },
    end: function() {
        if (window.Listings != null && window.Listings.length > 0)
            window.open($("#divGrpAction").attr("urlBooklet").replace(/-params-$/, window.Listings), "_blank");
        window.Listings = null;
    }
},
{///*Add Sindication*/
    start: CollectIdsStart,
    elm: CollectIds,
    end: function() {
        if (window.ListingIds.length > 0) {
            var i, ids = "";
            for (i = 0; i < window.ListingIds.length; i++)
                ids += (i > 0 ? "," : "") + window.ListingIds[i];
            window.ListingIds = null;
            PaymentAddShow(ids, false, null, true);
        }
    }
},
{///*Delete from ASPO*/
    start: CollectIdsStart,
    elm: CollectIds,
    end:  function() {
            if (confirm("Вы действительно хотите удалить объявление? Данные нельзя будет восстановить."))
                CollectIdsEnd("DeleteListingsFromSindication", null);
            else
                window.ListingIds = null;
            }
},
{///*Sindication report*/
    start: CollectIdsStart,
    elm: CollectIds,
    end: function() {
        if (window.ListingIds.length > 0) {
            var i, ids = "";
            for (i = 0; i < window.ListingIds.length; i++)
                ids += (i > 0 ? "," : "") + window.ListingIds[i];

            OpenSindicationWindow(ids, $("#divGrpAction").attr("urlSindicationStatistic"));
            window.ListingIds = null;
        }
    }
},
{///*Add to Favorites*/
    start: CollectIdsStart,
    elm: CollectIds,
    end: function() {
        if (window.ListingIds.length > 0) {
            CollectIdsEnd("AddListingToFavorites", null);
        }        
    }
},
{///*Delete from Favorites*/
    start: CollectIdsStart,
    elm: CollectIds,
    end: function() {
        if (window.ListingIds.length > 0) {
            if (confirm("Вы действительно хотите удалить объявления из избранного?"))
            {
                CollectIdsEnd("DeleteListingFromFavorites", null);
            }
            else
                window.ListingIds = null;
            
        }
    }
}
])[act];
    // if address wasn't found
    var Exists = false;
    var items = [];
    $("input[id^='grpAct']").each(function(i, e) { if (e.checked) items.push(e) });
    if (items.length > 0) {
        if (Action.start)
            if (Action.start() === false)
            return;
        $(items).each(function(i, e) {
            Action.elm($(e));
        });
        if (Action.end)
            Action.end();
    } else
        alert("Выберите объявления!");

};

$(document).ready(function() {
    var elms = $("input[id^='grpAct']");
    elms.each(
            function(i, e) {
                $(e.parentNode).click(stopBubbling).bind('mousedown', stopBubbling);
            });
    elms.click(function() { elms.each(function(i, e) { return ($("#grpCheckbox")[0].checked = e.checked); }) });
    $("#grpCheckbox").click(function() { var val = this.checked; $("input[id^='grpAct']").each(function() { this.checked = val; }) })
})


