﻿


Entegris.ProductCatalog.DocumentList = function(){
    this.docLists = [];
};



Ext.extend(Entegris.ProductCatalog.DocumentList, Ext.util.Observable, {
 
    AddDocumentList: function (ItemID, DivID) {
        this.docLists.push({ItemID: ItemID, DivID: DivID});
    },
 
    Process: function() {
    
        var d = Ext.select('.DocumentHolder').elements;
        for (var i = 0, n; n = d[i]; i++) {
            var firstOnly;
            try {
                firstOnly = eval(n.attributes["FirstOnly"].value);
            } catch (e) {
                firstOnly = false;
            }
            
            this.docLists.push({ID: i, ItemID: n.attributes["ItemID"].value, el: n, FirstOnly: firstOnly});
        }
        
        var xml = '<Items>';
        for (var i = 0, n; n = this.docLists[i]; i++) {
            xml += '<Item UIid="' + n.ID + '" ItemID="' + n.ItemID + '"/>';
        }
        xml += '</Items>';
        Entegris.API.ProductCatalog.ProductCatalog.GetDocumentListXHTML(xml, this.get_process.createDelegate(this));    
    },

   


    get_process: function (response) {
        try {
            var DocumentList = response.value.documentElement;
            var t = new Ext.Template(
		        '<div class="{FileExtension}">',
			        '<a href="{Href}" target="_blank">{Caption}</a> ({Bytes})',
		        '</div>'
            );
            
            var tVideobox = new Ext.Template(
		        '<div class="{FileExtension}">',
			        '<a href="{Href}" onclick="javascript: showVideo(this); return false;" asset="{Href}" title="{Caption}">{Caption}</a> ({Bytes})',
		        '</div>'
            );
            
            for (var i = 0, n; n = this.docLists[i]; i++) {
                if (n.FirstOnly) 
                {
                    var d = Ext.DomQuery.select('Document[@UIid=' + n.ID + ']', DocumentList)[0];
                    this.AppendTemplate(n.el, t, tVideobox, d.getAttribute('Extension'), d.getAttribute('AssetPath'), d.getAttribute('Caption'), C4.Utility.RenderBytes(d.getAttribute('Bytes')));
                } 
                else 
                {
                    var d = Ext.DomQuery.select('Document[@UIid=' + n.ID + ']', DocumentList);
                    for (var j = 0, m; m = d[j]; j++) 
                    {
                        this.AppendTemplate(n.el, t, tVideobox, m.getAttribute('Extension'), m.getAttribute('AssetPath'), m.getAttribute('Caption'), C4.Utility.RenderBytes(m.getAttribute('Bytes')));
                    }
                }
            }
        } catch (e) {
            for (var i = 0, n; n = this.docLists[i]; i++) {
                Ext.get(n.el).update('');
            }
        }
    },
    
    AppendTemplate: function (node, template, videoTemplate, extension, href, caption, bytes) {
        if(extension == "SWF" || extension == "WMV")
        {
            videoTemplate.append(node, {FileExtension: extension, Href: href, Caption: caption, Bytes: bytes});
        }
        else
        {
            template.append(node, {FileExtension: extension, Href: href, Caption: caption, Bytes: bytes});
        }
    }
    
});

function showVideo(sender)
{
    try
    {
        //sender.href = 'http://smu.prod.atomicplaypen.net/Resources/Images/3056.swf';
        sender.href = 'http://www.mediacollege.com/video/format/windows-media/streaming/videofilename.wmv';

        var vWidth = '800';
        var vHeight = '531';

        //Its a SWF file.
        if(sender.href.indexOf('.swf',0) > 0)
        {
            var elementId = 'videoObject-' + Math.floor(Math.random()*1000);
            var videoContainer = Ext.get("vcontainer");

            var t = new Ext.Template(
		            '<div id="{id}"></div>'
                );
            t.overwrite(videoContainer,{id: elementId});
            
            var so = new SWFObject(sender.href, sender.title, vWidth, vHeight, "7", "#000000");  
            so.write(elementId); 
        }
        else if(sender.href.indexOf('.wmv',0) > 0)
        {
            var elementId = 'videoObject-' + Math.floor(Math.random()*1000);
            var videoContainer = Ext.get("vcontainer");
        
            var t = new Ext.Template( 
                '<div id="{id}">' +
                    '<object NAME="Player" WIDTH="{Width}" HEIGHT="{Height}" align="left" hspace="0" type="application/x-oleobject" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">' +
                        '<param NAME="URL" VALUE="{Href}"><param>' +
                        '<param NAME="AUTOSTART" VALUE="false"></param>' +
                        '<param name="showControls" value="true"></param>' +
                        '<embed WIDTH="{Width}" HEIGHT="{Height}" align="left" hspace="0" SRC="{Href}" TYPE="application/x-oleobject" AUTOSTART="false"></embed>' + 
                    '</object>' + 
                '</div>');
            t.overwrite(videoContainer,{id: elementId, Href: sender.href, Width: vWidth, Height: vHeight});    
        }
        
        showModal('modalSubmission');
    }
    catch (e) 
    {
        alert(e);
    }
    
    return false;
}

function showModal(ref){

    if (document.getElementById(ref).style.display == "block"){
        document.getElementById(ref).style.display = "none";
    }else{
        document.getElementById(ref).style.top = getScrollY();
        document.getElementById(ref).style.display = "block";
        window.onscroll = function () { document.getElementById(ref).style.top = getScrollY(); };
    }
}

function getScrollY(){

    scrollY = 0;

    if ( document.documentElement && document.documentElement.scrollTop ){

        scrollY = document.documentElement.scrollTop;

    }else if ( document.body && document.body.scrollTop ){

        scrollY = document.body.scrollTop;

    }else if ( window.pageYOffset ){

        scrollY = window.pageYOffset;

    }else if ( window.scrollY ){

        scrollY = window.scrollY;

    }

    return scrollY + "px";

}
