﻿/// <reference name="MicrosoftAjax.js"/>
/// <reference path="../../jquery/jquery-1.3.2-vsdoc.js" />
/// <reference path="jExtend.js" />
/// <reference path="../../../Services/Photos.asmx" />


//"/images/image.aspx?imagefileid=" + imgID + "&rs=1&w=180"

Type.registerNamespace("AMS");
Type.registerNamespace("AMS.Site");
AMS.Site.Album = function () { }

AMS.Site.Album.prototype = {
    albumEl: {
        containerID: ""
        , albumID: ""
        , memberID: ""
        , colCount: 0
        , containerWidth: 0
        , photoPerPage: 0
        , photoCount: 0
        , pageNumber: 0
        , imgDID: "AMS.Site.Album.Img"
        , nameID: "AMS.Site.Album.Name"
    }
     , img: {
         lID: ""
       , nameID: ""
     }
    , jD: "AMS.Site.Album.Data"

        , Init: function (containerId, memberId, albumId, colCount, phPerPage, phCount, pageN) {
            this.albumEl.albumID = albumId;
            this.albumEl.memberID = memberId;
            this.albumEl.colCount = colCount; // columns of photos layout  2,3,4
            this.albumEl.containerID = containerId; // div id of photo container element (#album-widget-container)
            this.albumEl.photoPerPage = phPerPage; // number of photos to list per page
            this.albumEl.photoCount = phCount; // total number of photos
            this.albumEl.pageNumber = pageN; //page number
            this.albumEl.containerID = containerId;
            $(this.albumEl.containerID).data(this.jD, this);
            $("#album-photoCount").append(phCount + " Photos");
            this.BuildNav();
            this.GetPhotos(1); //load first page ( pageNum=1)
        }

    //---------------------------------------------------------------------
    //---------------------------------------------------------------------

        , GetPhotos: function (pageNum) {
            var e = this.albumEl.containerID;
            AMS.Web.Services.Photos.GetPhotos(this.albumEl.albumID, this.albumEl.photoPerPage, pageNum, this.svcSuccess, this.svcFail, this.albumEl.containerID);
        }

    //---------------------------------------------------------------------
    //---------------------------------------------------------------------

        , svcSuccess: function (rtn, uc, mn) {
            var _el = $(uc);
            var _this = _el.data("AMS.Site.Album.Data");
            var _width = _el.width();
            var _imgWidth = Math.floor(_width / _this.albumEl.colCount);
            _imgWidth -= 23;
            try {
                var plist = rtn;
                var row = 0;
                _el.children().remove();
                $("#album-loader").hide();
                for (i in plist) {
                    row++;
                    var ph = plist[i];


                    //var imgDiv = "<div id=\"imgdiv-" + ph.ImageID + "\" class=\"album-widget-photo\" style=\"width:" + _imgWidth + "px; \"><img id=\"imgPhoto-" + ph.ImageID + "\" src=\"/images/image.aspx?imagefileid=" + ph.ImageID + "&rs=1&w=" + _imgWidth + "\"/></div>"

                    var imgDiv = $("<div id=\"imgdiv-" + ph.ImageID + "\" class=\"album-widget-photo\" style=\"width:" + _imgWidth + "px; \"></div>");

                    _el.append(imgDiv);
                    var img = $("<img id=\"imgPhoto-" + ph.ImageID + "\" src=\"/images/image.aspx?imagefileid=" + ph.ImageFileID + "&rs=1&w=" + _imgWidth + "\" alt=\" " + ph.Caption + "\" /><div id=\"imgPhoto-" + ph.ImageID + "name\" style=\"clear:left; font-weight:bolder; overflow:hidden;\">" + ph.Name + "</div>").hide().appendTo(_el.children("#imgdiv-" + ph.ImageID));
                    //var img = $("<img id=\"imgPhoto-" + ph.ImageID + "\" src=\"/images/image.aspx?imagefileid=" + ph.ImageID + "&rs=1&w=" + _imgWidth + "\"/>").appendTo(_el.children("#imgdiv-" + ph.ImageID));

                    var imgL = $("#album-img-loader").clone().appendTo(_el.children("#imgdiv-" + ph.ImageID));
                    imgL.attr("id", imgL.attr("id") + "-" + ph.ImageID);
                    var _imgD = $.extend({}, albumManager.img, { lID: "#" + imgL.attr("id") });
                    //var _nameID = $.extend({}, guestBookManager.img, { nameID: "#imgName-" + ph.ImageID });
                    img.data(albumManager.albumEl.imgDID, _imgD);
                    //img.data(albumManager.albumEl.nameID, _nameID);

                    if (row == _this.albumEl.colCount) {
                        _el.append("<div style=\"clear:both;\"></br></div>");
                        row = 0;
                    }

                    img.onImagesLoaded(
                        function (img) {
                            var n = img.id;
                           
                

                            var d = $(img).data("AMS.Site.Album.Img");
                            $(d.lID).remove();
                            $(img).fadeIn(500);
                            if (n.indexOf("name") == n.length - 4) {

                                $("#" + n).hide();
                            }



                        }
                    );

                        img.mouseenter(
                                function (e) {
                                    var d = $(this).attr("id") + "name";
                                    $("#" + d).show();
                                    // alert(d);

                                }
                            )
                            .mouseleave(
                                function (e) {
                                    var d = $(this).attr("id") + "name";
                                    $("#" + d).hide();
                                    //alert(d);
                                }
                            );

                }
                _el.append("<div style=\"clear:both;\"></div>");
            }
            catch (ex) {
                // PageManager.RecordError("AMS.Site.Album.js - line 55 sender", "", null);
                return;
            }

        }

    //---------------------------------------------------------------------
    //---------------------------------------------------------------------

        , svcFail: function (err, uc, mn) {
            var _err = err;

        }

        , BuildNav: function () {
            /// build nav bar
            var nav = $("<div></div>");
            var c = 0;
            while (c < this.albumEl.pageNumber) {
                c += 1;

                var _nitem = $("<div class=\"album-nav-item btn" + c + "\">" + c + "</div>").appendTo(nav);

                _nitem.attr("d", c);

                _nitem.click(function (e) {

                    var _this = $(this);

                    albumManager.GetPhotos(_this.attr("d"));
                    var _d = parseInt(_this.attr("d"));

                });
                _nitem.mouseenter(function (e) {

                    // just toggle mouseover
                    var _this = $(this);
                    var _d = parseInt(_this.attr("d"));
                    var g = _d;
                    _this.removeClass("album-nav-item");
                    _this.addClass("album-nav-item-hover");


                });
                _nitem.mouseleave(function (e) {

                    var _this = $(this);
                    _this.removeClass("album-nav-item-hover");
                    _this.addClass("album-nav-item");
                });
            }

            nav.append("<div class=\"clear\"></div>");
            $("#album-body").children("#album-top-nav").append(nav);
            $("#album-body").children("#album-bottom-nav").append(nav.clone(true));

            $("#album-body").children("#album-top-nav").append("<div class=\"clear\"></div>");
            $("#album-body").children("#album-bottom-nav").append("<div class=\"clear\"></div>");


            //            if (this.commentEl.navLoc == 2) {
            // show to both
            $("#album-body").children("#album-bottom-nav").show();
            $("#album-body").children("#album-top-nav").show();
            //            }
            //            else {
            //                if (this.commentEl.navLoc == 0) { $(this.commentEl.el).children("#gb-header").children("#gb-top-nav").show(); }
            //                else if (this.commentEl.navLoc == 1) { $(this.commentEl.el).children("#gb-bottom-nav").show(); }
            //            }
        }
}




AMS.Site.Album.registerClass("AMS.Site.Album");
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();