/**
 * Linkuje obrazek. "Wklada" wskazany obrazek do linka ze specjalna klasa. Na
 * tej klasie pozniej operuje lightbox, ktory montuje podglad
 * 
 * @param img
 *            obiekt JQ obrazka
 * @param path
 *            sciezka do obrazka powiekszonego
 * @return
 */
var lightBoxCreateA = function(img, path) {
    var link = $('<a href="' + path + '" class="virtual-lightbox"></a>');
    link.insertBefore(img).append(img);
    var align = img.attr('align');
    if (align == 'left' || align == 'right') {
        img.css('float', align);
    } else {
        img.css('float', 'right');
    }

    if (typeof (img.attr('title')) != "undefined") {
        link.attr('title', img.attr('title'));
    }
}

/**
 * Przczesuje tresc artykulu w poszukiwaniu obrazkow ktore nie sa wlozone w
 * linki Jesli sciezka do obrazka ma postac: .resized_AAAxBBB_NAME.CCC to tworze
 * automatycznie linka do pliku NAME.CCC. Wynika to ze sposobu dzialania edytora
 * Xinha.
 * 
 * @return
 */
var lightBoxLinker = function() {
    $('.xtext img').each(function(i, domObj) {
        var parent = $(this).parent();
        if (parent.get(0).tagName.toLowerCase() != 'a') {
            // alert(parent.get(0).tagName.toLowerCase()+ ' '+domObj.src);
            /* Wyciagam prawidlowa nazwe pliku */
            var a = /(.+)\.resized_\d{1,4}x\d{1,4}_([a-zA-Z0-9\._-]+)/.exec(domObj.src);
            if (a != null && a.length == 3) {
                lightBoxCreateA($(this), a[1] + a[2]);
            }
        }
    });
}

/**
 * Czasem zdarza sie, ze Xinha zamiast pomnijeszenia obrazka i nadania nazwy
 * .resized linkuje zrodlowy obrazek, zmniejszajac jego rozmiar jedynie
 * atrybutami. niestety na pozimie JS nie jestem w stanie okreslic rozmiaru
 * plikow wiec, zbieram wszystkie takie przypadki i wysylam zadanie AJAX do
 * serwera z prosba o analize obrazkow. W odpowiedzi dostaje tablice obiektow
 * JSON, np:
 * [{"width":300,"height":425,"key":0,"path":"\/uploads_x\/loydsiso.gif"}]
 * 
 * @return
 */
var lightBoxLinker2 = function() {
    var data = new Array();
    var objArray = new Array();
    $('.xtext img').each(function(i, domObj) {
        var parent = $(this).parent();
        var h = parseInt($(domObj).attr('height'));
        var w = parseInt($(domObj).attr('width'));
        if (parent.get(0).tagName.toLowerCase() != 'a' && !isNaN(h) && !isNaN(w)) {
            var element = {
                "src" : domObj.src, "height" : h, "width" : w
            };
            data.push(element);
            objArray.push($(this));
        }
    });
    if (data.length > 0) {
        $.post('/imginfo/index', {
            'data' : data
        }, function(data) {
            var key;
            for ( var i = 0; i < data.length; i++) {
                key = parseInt(data[i].key);
                lightBoxCreateA(objArray[key], data[i].path);
            }
            lightBoxStart();
        }, 'json');
        return true;
    } else {
        return false;
    }
}

var lightBoxStart = function() {
    $(".xtext .virtual-lightbox").lightbox(
            {
                fileLoadingImage : '/img/lightbox/loading.gif',
                fileBottomNavCloseImage : '/img/lightbox/closelabel.gif',
                fitToScreen : false,
                scaleImages : false,
                xScale : 1.2,
                yScale : 1.2,
                displayDownloadLink : true,
                displayHelp : false,
                loopImages : true,
                strings : {
                    help : ' \u2190 / P - previous image\u00a0\u00a0\u00a0\u00a0\u2192 / N - next image\u00a0\u00a0\u00a0\u00a0ESC / X - close image gallery',
                    prevLinkTitle : 'poprzednia grafika', nextLinkTitle : 'następna grafika', prevLinkText : '&laquo; Wstecz', nextLinkText : 'Dalej &raquo;',
                    closeTitle : 'Zamknij', image : 'Obraz ', of : ' z ', download : 'Pobierz'
                }, imageClickClose : false, disableNavbarLinks : true
            });
}

$(function() {
    //lightBoxLinker();
    if (!lightBoxLinker2()) {
        lightBoxStart();
    }
});
