var GalleryModule = function(mobile, array, muse) {

    var getEventTarget = function(e) {
        e = e || window.event;
        return e.target || e.srcElement;
    }

    var getPost = function(value) {
        target = getEventTarget(value);
        for (var i = 0; i < 10; i++) {
            if (target.nodeName == "DIV") {
                if ($(target).attr('id').search('post') > -1) {
                    return target;
                    break;
                } else {
                    target = target.parentNode;
                }
            } else {
                target = target.parentNode;
            }
        }
        return null;
    }

    var startUpSlider = function() {
        for (var id in array) {

            var ob = array[id];

            $("#slider_" + id).easySlider({
                prevId: 'left_arrow_' + id,
                nextId: 'right_arrow_' + id,
                prevText: 'prev',
                Id: '' + id,
                nextText: 'next',
                orientation: 'horizontal',
                counter: 'currentitem_' + id
            });
        }
    }

    var addEventListeners = function() {
        $('.post-button-magnify').bind('click', function(event) {
            openUpLightBox(getPost(event));
        });
        $('.slider li').bind('click', function(event) {
            openUpLightBox(getPost(event), event);
        });
        $("html").bind('slideshow_close', function(event) {
            muse.disableScroll(false);
        });
    }

    var openUpLightBox = function(post, event) {
        muse.disableScroll(true);
        post = $(post);
        var position = 0;

        if (event != undefined) {
            target = getEventTarget(event);
            for (var i = 0; i < 4; i++) {
                if ($(target).attr('class').substr(0, 5) != "slide") {
                    target = target.parentNode;
                } else {
                    position = parseInt($(target).attr('class').substr(6, 2));
                }
            }
        }

        var postId = post.attr('id').substr(5);
        var sources = new Array();
        var titles = new Array();
        var descriptions = new Array();

        for (var id in array[postId]) {
            var source = array[postId][id];
            sources.push(source['url']);
            titles.push(source['title']);
            descriptions.push(source['description']);
        }

        $.prettyPhoto.open(sources, titles, descriptions, position, mobile);
    }

    var toReturn = {
        init: function() {
            startUpSlider();
//            addEventListeners();
            $.fn.prettyPhoto();
        }
    }

    return toReturn;
}

