Btv.Templating.Register([{id:"Photos2.ImageModule",fnc:function($data){var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};with($data){ Main = function(o, ht) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\r\n\n<h2 ');_write(o.Elem('Title'));_write('  style=\"');_write(o.Style());_write('\">');_write(o.InnerHTML());_write('</h2>\n<div ');_write(o.Elem('Root'));_write('  style=\"');_write(o.Style());_write('\">');_write(o.InnerHTML());_write('\n');_write(ht.DynPanel.Render());_write('\n<div style=\"clear:both;\"></div>\n</div>\n');;return($text.join(""));};
new (function(d, ui) {
var oThis = Btv.Lang.Extend(this, Btv.Cst.BaseTemplate, [$data, true]);
var htUI = ui;
var $el = oThis.El;

    var oElMan = oThis.ElMan();
    var oBtvModule, oDynPanel, aItems;
    var blnDisplay = !!d.Display;

    oThis.SetData = function(images)
    {
        aItems = [];
        for (var i=0; images && (i < images.length); i++)
        {
            aItems[i] = Btv.Templating.GetInstance('Photos2.ModuleThumbnail', {id: i, HideInfo: d.hideInfo, linkFormat: d.linkFormat});
            aItems[i].SetData(images[i]);
        }
        
        oDynPanel.SetItems(aItems);
    }

    oThis.Display = function(bln)
    {
        blnDisplay = bln;
        if (oBtvModule) oBtvModule.Display(blnDisplay);
    }

    function RenderView() {
        oElMan.InnerHTML("Title", d.title);
        
        oDynPanel = Btv.Templating.GetInstance('Container.DynamicPanel', {
                cols: d.numberOfColumns
                , Classes: { Outer: d.classNames }
        });

        oThis.Display(blnDisplay);

        return (htUI.Main(oThis, {
            DynPanel: oDynPanel
        }));
    }

    oBtvModule = Btv.Templating.GetInstance('Container.BtvModule', {
        body: { Render: RenderView }
        , classes: { Module: 'btv_module' }
    });


    oThis.DeclareVirtualMethods({
        Render: (oBtvModule ? oBtvModule.Render : RenderView)
    });
})($data, {Main:Main});
}return $text.join("");}},{id:"Photos2.ModuleThumbnail",fnc:function($data){var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};with($data){ Main = function(o, ht) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\r\n\n<div ');_write(o.Elem('Root'));_write(' class=\"gallery_single_wrap\" style=\"');_write(o.Style());_write('\">\n<div ');_write(o.Elem('ImageWrapper'));_write(' class=\"photo09_thumb_view_imgwrapper\" style=\"');_write(o.Style());_write('\">');_write(ht.fncRenderImage());_write('</div>\n<div ');_write(o.Elem('ImageInfo'));_write(' class=\"gallery_thumb_title\" style=\"');_write(o.Style());_write('\">\n<div ');_write(o.Elem('RatingCount'));_write(' class=\"photo09_thumb_view\">');_write(o.InnerHTML());_write('</div>\n<div ');_write(o.Elem('CommentCount'));_write(' class=\"photo09_thumb_comment\">');_write(o.InnerHTML());_write('</div>\n</div>\n</div>\n');;return($text.join(""));};
new (function(d, ui) {
var oThis = Btv.Lang.Extend(this, Btv.Cst.BaseTemplate, [$data, true]);
var htUI = ui;
var $el = oThis.El;

        var s;
        oThis.d = d;
        var oImg;
        var sizeImageBounds = {width:80, height:80};
        var strUrlTemplate = d.linkFormat || '/photos/galleryviewer.aspx?ai={0}&pi={1}&bIds={2}';

        function OnClick()
        {
            d.fncClick(d.id);
        }


        function BuildImageInfo()
        {
            if (d.info)
            {
                var oImageView;
                if(d.info.Views) oImageView = Btv.UI.Images.FindView(d.info.Views, sizeImageBounds, true);
                if(!oImageView && d.info.ImageViews) oImageView = Btv.UI.Images.FindView(d.info.ImageViews, sizeImageBounds, true);
                if (oImageView) return({Src: oImageView.Src, Size: {width: oImageView.Width, height: oImageView.Height}});
            }
            return(null);
        }


        function RenderImage()
        {
            oImg = Btv.Templating.GetInstance("SmartImage", {
                    sizeBounds: sizeImageBounds
                    , doCrop: true
                    , ImageInfo: BuildImageInfo()
                    , oCropAnchor: { width: .5, height: .25 }
                    , link: { href: $F(strUrlTemplate, d.info.AlbumId || -1, d.info.Id, '') }
                    , ChangeStrategy: 'View'
                });
            return(oImg.Render());
        }



        function Render()
        {
            return (htUI.Main(oThis, {
                fncRenderImage: RenderImage
            }));
        }


        oThis.SetData = function(info) {
            function UpdateImage() {
                if (idLocal == idSetDataCounter) {
                    oImg.UpdateImage(BuildImageInfo());
                    oThis.UpdateElements();
                }
            }


            d.info = info;
            var idLocal = ++idSetDataCounter;
            if (blnHasRendered) {
                var elRootName = oThis.htIds['Root'];
                if ($(elRootName)) {
                    UpdateImage();
                }
                else {
                    YAHOO.util.Event.onAvailable(elRootName, UpdateImage);
                }
            }
        }
        var idSetDataCounter = 0;
        
        
        
        function OnPostRender()
        {
            blnHasRendered = true;
        }
        var blnHasRendered = false;
        
        
        

        oThis.ElementProps = function(id, scope, name, isInit, params, ht)
        {
            switch(scope)
            {
                case "Root":
                    ht.style.visibility = (d.info) ? 'visible' : 'hidden';
                    break;
                case "RatingCount":
                    if (d.info) ht.innerHTML = d.info.RatingCount;
                    break;
                case "CommentCount":
                    if (d.info) ht.innerHTML = d.info.CommentCount;
                    break;
                case "ImageWrapper":
                    if (isInit) Btv.Styles.SetSize(ht, sizeImageBounds);
                    break;
                case "ImageInfo":
                    if(isInit && d.HideInfo) ht.style.display = 'none';
            }
        }


    oThis.DeclareVirtualMethods({
        Render: Render
        ,OnPostRender: OnPostRender
    });
        
})($data, {Main:Main});
}return $text.join("");}},{id:"SmartImage",fnc:function($data){var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};with($data){ Main = function(o, imageUI) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\r\n \n<div ');_write(o.Elem('outer'));_write('  style=\"position:relative; overflow:hidden; zoom:1;');_write(o.Style());_write('\">');_write(o.InnerHTML());_write('\n');_write(imageUI);_write('\n</div>\n');;return($text.join(""));};WithLink = function(o, ht) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\r\n\n<a ');_write(o.Elem('link'));_write('  href=\"\" style=\"');_write(o.Style());_write('\">');_write(o.InnerHTML());_write('\n<img ');_write(o.Elem('image1'));_write('  style=\"zoom:1; position:relative; border-width: 0px; visibility: hidden;');_write(o.Style());_write('\">');_write(o.InnerHTML());_write('</img>\n</a>\n');;return($text.join(""));};ImageOnly = function(o, ht) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\r\n\n<img ');_write(o.Elem('image2'));_write('  style=\"zoom:1; position:relative; border-width: 0px; visibility: hidden;');_write(o.Style());_write('\">');_write(o.InnerHTML());_write('</img>\n');;return($text.join(""));};
new (function(d, ui) {
var oThis = Btv.Lang.Extend(this, Btv.Cst.BaseTemplate, [$data, true]);
var htUI = ui;
var $el = oThis.El;

    oThis.d = d;
    var oElMan = oThis.ElMan();
    var oDefaultAnchor = {width:.5, height:.5};
    var s, img;
    
    function SetImageProperties(cstname, sizeImg)
    {
        function A(s)
        {
            oAnchor = (sizeScaledImage[s] > d.sizeBounds[s]) ? (d.oCropAnchor || oDefaultAnchor) : (d.oBoxAnchor || oDefaultAnchor);
            oElMan.Style(cstname, (s == 'width') ? 'left' : 'top', Math.round((d.sizeBounds[s] - sizeScaledImage[s]) * oAnchor[s]) + "px");
        }
        
        var flScale = Math[d.doCrop ? 'max' : 'min'](d.sizeBounds.height / sizeImg.height, d.sizeBounds.width / sizeImg.width);
        if (d.blnNoUpsize) flScale = Math.min(1, flScale);
        var sizeScaledImage = Btv.UI.Drawing.ScaleSize(sizeImg, flScale, true);
        A('width');
        A('height');
        oElMan.Style(cstname, 'width', sizeScaledImage.width + 'px');
        oElMan.Style(cstname, 'height', sizeScaledImage.height + 'px');
    }
    
    function ImageLoaded(elImg)
    {
        SetImageProperties(elImg, d.ImageInfo.Size);
        elImg.style.visibility = 'visible';
    }

    oThis.UpdateImage = function(oImageInfo) {
        function DoneChanging(elImg) {
            elImg.style.visibility = 'visible';
        }

        function Change(elImg) {
            elImg.style.visibility = 'hidden';
            elImg.src = oImageInfo.Src;
            
            if ($(oThis.htIds['image1'])) SetImageProperties('image1', oImageInfo.Size);
            if ($(oThis.htIds['image2'])) SetImageProperties('image2', oImageInfo.Size);
        }

        d.ImageInfo = oImageInfo;
        if (d.ChangeStrategy == 'Hide') {
            oElMan.Style('image1', 'visibility', 'hidden');
            oElMan.Style('image2', 'visibility', 'hidden');
        }

        if (!oImageChanger1 && $(oThis.htIds['image1'])) {
            oImageChanger1 = new Btv.UI.Imaging.ImageChanger($(oThis.htIds['image1']), true);
        }

        if (!oImageChanger2 && $(oThis.htIds['image2'])) {
            oImageChanger2 = new Btv.UI.Imaging.ImageChanger($(oThis.htIds['image2']), true);
        }

        if (oImageInfo) {
            if (oImageChanger1) oImageChanger1.Change(Change, DoneChanging);
            if (oImageChanger2) oImageChanger2.Change(Change, DoneChanging);
        }
    }
    var oImageChanger1;
    var oImageChanger2;

    function InitElements() {
        function fnc(oImg, bln) {
            if (bln) {
                SetImageProperties('image1', oImg);
                SetImageProperties('image2', oImg);
            }
        }
        
        oElMan.Style('outer', 'width', d.sizeBounds.width + 'px');
        oElMan.Style('outer', 'height', d.sizeBounds.height + 'px');

        if (d.ImageInfo) {
            oElMan.Style('image1', 'visibility', 'visible');
            oElMan.Style('image2', 'visibility', 'visible');
            oElMan.Attribute('image1', 'src', d.ImageInfo.Src);
            oElMan.Attribute('image2', 'src', d.ImageInfo.Src);

            if (d.ImageInfo.Size == null) {
                Btv.UI.Imaging.Load(d.ImageInfo.Src, fnc);
            }
            else {
                SetImageProperties('image1', d.ImageInfo.Size);
                SetImageProperties('image2', d.ImageInfo.Size);
            }
        }
    }

    oThis.ElementProps = function(id, scope, name, isInit, params, ht) {
        switch (scope) {
            case "link":
                if (isInit && d.link) {
                    ht.attr.href = d.link.href;
                    if (d.link.target) ht.attr.target = d.link.target;
                }
                break;
        }
    }

    function Render() {
        var imageUI = '';
        
        if (oThis.d.link == null) {
            imageUI = htUI.ImageOnly(oThis);
        }
        else {
            imageUI = htUI.WithLink(oThis);
        }
        InitElements();
        return (htUI.Main(oThis, imageUI));
    }

    oThis.DeclareVirtualMethods({
        Render: Render
    });

})($data, {Main:Main,WithLink:WithLink,ImageOnly:ImageOnly});
}return $text.join("");}},{id:"Container.DynamicPanel",fnc:function($data){var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};with($data){ Main = function(o, ht) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\r\n\n<div class=\"');_write(ht.Classes.Outer);_write('\">\n<div ');_write(o.Elem('body'));_write('  style=\"');_write(o.Style());_write('\">');_write(o.InnerHTML());_write('</div>\n<div style=\"clear:both;\"></div>\n</div>\n');;return($text.join(""));};Contents = function(o, ht) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\r\n\n');
var iNumRows = Math.ceil(ht.aItems.length / ht.iCols);
var iIndex = 0;
for (var iRow=0; iRow < iNumRows; iRow++) {
_write('\n<div style=\"clear:both; width:100%;\">\n'); for (var iCol=0; (iCol < ht.iCols) && ht.aItems[iIndex]; iCol++) { _write(' \n');if((iCol > 0)) {_write(ht.separator ? ht.separator.Render() : '');}_write(' \n');if((!ht.separator)) {_write('<div style=\"float:left; width:');_write((Math.floor(100/ht.iCols)));_write('%;\">');}_write(ht.aItems[iIndex++].Render());if((!ht.separator)) {_write('</div>');}_write('\n'); } _write(' \n</div>\n'); } _write(' \n');;return($text.join(""));};
new (function(d, ui) {
var oThis = Btv.Lang.Extend(this, Btv.Cst.BaseTemplate, [$data, true]);
var htUI = ui;
var $el = oThis.El;


    var oElMan = oThis.ElMan();

    oThis.SetItems = function(aItems)
    {
        var s = RenderContents(aItems);
        oElMan.InnerHTML('body', RenderContents(aItems));
        if (window["RunBtvTokenizer"]) window["RunBtvTokenizer"]();
    }


    function RenderContents(aItems)
    {
        return (htUI.Contents(oThis, {
            aItems: aItems
            , iCols: d.cols
            , separator: d.separator
        }));
    }


    function Render(s)
    {
        if (d.items && d.items.length) oThis.SetItems(d.items);
        return (htUI.Main(oThis, {
            Classes: d.Classes
        }));
    }


    oThis.DeclareVirtualMethods({
        Render: Render
    });

})($data, {Main:Main,Contents:Contents});
}return $text.join("");}},{id:"Container.BtvModule",fnc:function($data){var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};with($data){ _write('\n');Main = function(o) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\n<div ');_write(o.Elem('Root'));_write(' class=\"');_write((o.d.classes && o.d.classes.Module) ? o.d.classes.Module : 'btv_module');_write('\" style=\"');_write(o.Style());_write('\">\n<div class=\"btv_module_head\"><div class=\"c\"></div></div>\n<div class=\"btv_module_body\" ');_write(o.d.bodyStyle ? 'style="' + o.d.bodyStyle + '"' : '');_write('>\n<div class=\"c\">');if(o.d.header) {_write('<h2>');_write(o.d.header);_write('</h2>');}_write(o.d.body.Render());_write('</div>\n</div>\n<div class=\"btv_module_foot\"><div class=\"c\"></div></div>\n</div>\n');;return($text.join(""));};_write('\n');Version3 = function(o) {var $text = [];var _write = function(text) {$text.push((typeof text == "number")?text:(text||""));};_write('\n<div ');_write(o.Elem('Root'));_write(' class=\"content-container\">');_write(o.d.body.Render());_write('</div>\n');;return($text.join(""));};_write('\n');
new (function(d, fncMain, fncVersion3)
{
var s, oThis = Btv.Lang.Extend(this, Btv.Cst.BaseTemplate, arguments);
oThis.d = d;
var blnDisplay = true;
function Render()
{
var fnc = (Btv.iPageVersion == 3) ? fncVersion3 : fncMain;
if (!s) s = fnc(oThis);
return(s);
}
oThis.ElementProps = function(id, scope, name, isInit, params, ht)
{
switch(scope)
{
case "Root":
ht.style.display = blnDisplay ? 'block' : 'none';
break;
}
}
oThis.Display = function(bln)
{
blnDisplay = bln;
oThis.ElMan().Style('Root'
, 'display', (blnDisplay ? 'block' : 'none')
);
}
oThis.DeclareVirtualMethods({
Render: Render
});
})($data, Main, Version3);
_write('\n');}return $text.join("");}}]);
