

var makeArray  = function(obj) {
    if(obj.constructor != Array ) {
        return [ obj ];
    } else {
        return obj;
    }
};

var vignManager = function() {
    var galleries = {};
    var loadedID = '';
    var pageID = 0;

    var loadGallery = function(vignUrl, idString) {
        $.getScript(vignUrl + 'getvignjson.jsp?jquery=1&' + idString, loadGalleryCallback);
    };

    var loadGalleryCallback = function() {
        galleries[loadedID] = new vignGallery(jsonarray);
        galleries[loadedID].getPage(pageID);
    };
	 
     // idSelected is 0..4 (for now), for JPG_ROOM_SCENE_[1-5]
    var getGallery = function(vignUrl, idString, idSelected) {
        pageID = idSelected;
        loadedID = idString;
        createLightbox();
        if(!checkGallery(idString)) {
            loadGallery(vignUrl, idString);
        } else {
            galleries[loadedID].getPage(pageID);
        }
    };

    var checkGallery = function(idString) {
        return !!(galleries[idString]);
    };

    var getCurrentGallery = function() {
        return galleries[loadedID];
    }

    return {
        getGallery : getGallery,
        galleries : galleries,
        getCurrentGallery : getCurrentGallery
    };

}();

var vignGallery = function(json) {
    this.json = json;
    this.pageHTML = [];
    this.loaded = false;
}

vignGallery.prototype = {
    getPage : function(pageNum) {
        if(!(this.pageHTML[pageNum])) {
            this.loadPage(pageNum);
        }
        $('#lightbox-copy').html(this.pageHTML[pageNum]);
        if(! this.loaded) {
            ieWidthFix();
            this.loaded = true;
        }
    },

    loadPage : function (pageNum) {
        //this.pageHTML[pageNum] = '<img src="'+makeArray(this.json[pageNum].VignGallery.VignImage)[1].imagepath+'" />';
        this.pageHTML[pageNum] = '<div id="vign-gallery">' +
                                 '<div class="lightbox-canvasClose"><img src="/common/images/btn-closeLightbox.gif" width="9" height="9" alt="Close" border="0" onClick="killLightbox();" /></div>' +
                                 '<img src="'+makeArray(this.json[pageNum].VignGallery.VignImage)[1].imagepath+'" border="0" class="vign-image" alt="'+makeArray(this.json[pageNum].VignGallery.VignImage)[1].name+'" />' +
                                 '<div class="vign-captionPagingation clearfix">' +
                                 '<div class="vign-caption"></div>' +
                                 '<div class="vign-pagination">';
        if(pageNum != 0) {
            this.pageHTML[pageNum] += '<span><a href="#" onclick="vignManager.getCurrentGallery().getPage(';
            this.pageHTML[pageNum] += pageNum - 1;
            this.pageHTML[pageNum] += '); return false;"><img src="/common/images/btn-previousEnlargedImage.gif" width="7" height="8" alt="Previous Image" border="0" /></a></span>';
        }
        for(var i = 0, vigGalLen = this.json.length; i < vigGalLen; i++) {
            this.pageHTML[pageNum] +=  '<span><a href="#" onclick="vignManager.getCurrentGallery().getPage(' + i + '); return false;"';
            if (i == pageNum) { this.pageHTML[pageNum] += ' style="font-weight:bold; color:#444;"'; }
            this.pageHTML[pageNum] +=  '>';
            this.pageHTML[pageNum] +=	eval(i) + 1;
            this.pageHTML[pageNum] +=	'</a></span>';
        }
        if(pageNum < (this.json.length - 1)) {
            this.pageHTML[pageNum] += '<span><a href="#" onclick="vignManager.getCurrentGallery().getPage(';
            this.pageHTML[pageNum] += eval(pageNum) + 1;
            this.pageHTML[pageNum] += '); return false;"><img src="/common/images/btn-nextEnlargedImage.gif" width="7" height="8" alt="Next Image" border="0" /></a></span>';
        } else {
            this.pageHTML[pageNum] += '<span><img src="/common/images/spacer.gif" width="7" height="8" alt="" border="0" /></span>';
        }
        this.pageHTML[pageNum] +=  '</div>' +
                                   '</div>' +
                                   '<div id="vign-prodList" class="clearfix">';

        var sectionNumber = $.query()['sectionNumber'];
        var subsectionNumber = $.query()['subsectionNumber'];
        var tertiarySectionNumber = $.query()['tertiarySectionNumber'];
        var navQueryString = ""
        if (sectionNumber != null) navQueryString += "&sectionNumber=" + sectionNumber;
        if (subsectionNumber != null) navQueryString += "&subsectionNumber=" + subsectionNumber;
        if (tertiarySectionNumber != null) {
            navQueryString += "&tertiarySectionNumber=" + tertiarySectionNumber;
        } else {
            var productNumber = $.query()['productNumber'];
            if (sectionNumber != null) navQueryString += "&tertiarySectionNumber=" + productNumber;
        }

        for(var j = 0, vigItemLen = makeArray(this.json[pageNum].VignGallery.VignItem).length; j < vigItemLen; j++) {
            var temp = makeArray(this.json[pageNum].VignGallery.VignItem)[j]
            this.pageHTML[pageNum] += '<div><ul><li class="link"><a href="'+temp.detailurl+navQueryString+'" >'+temp.name+'</a></li></ul></div>';
        }
        this.pageHTML[pageNum] +=  '</div></div>';
    }

}



