﻿


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: playVideo(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" || extension == "FLV")
        {
            videoTemplate.append(node, {FileExtension: extension, Href: href, Caption: caption, Bytes: bytes});
        }
        else
        {
            template.append(node, {FileExtension: extension, Href: href, Caption: caption, Bytes: bytes});
        }
    }
    
});

function playVideo(filename, width, height)
{
    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 path = 'Resources/images/' + filename;  
		var playerPath = "Resources/images/VideoPlayer.swf";
		var fileType = Right(filename, 3).toLowerCase();

		//document.getElementById("inline-video-container").style.width = width + "px"; // adjust div width in order to position 'close' button  
		
        if(fileType == 'swf')
        {	
            var elementId = 'videoObject-' + Math.floor(Math.random()*1000);
			
            var sObj = new SWFObject(path, "title", width, height, "7", "#000000");  
			showModal('modalSubmission');  
			sObj.addVariable("VideoPath", path); 
            sObj.write("vcontainer");   
        }
        else if(fileType == 'wmv')
        {
            var elementId = 'videoObject-' + Math.floor(Math.random()*1000);
            var videoContainer = Ext.get("vcontainer");

            var t = new Ext.Template(  
				'<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" id="player" width="' + width + '" height="' + height + '">' +
					'<param name="url" value="' + path + '" />' + 
					'<param name="src" value="' + path + '" />' + 
					'<param name="showcontrols" value="true" />' + 
					'<param name="autostart" value="true" />' + 
					'<embed url="' + path + '" src="' + path + '" width="' + width + '" height="' + height + '" autoplay="true" type="application/x-mplayer2" pluginspage="http://microsoft.com/windows/mediaplayer/en/download/" />' + 
				'</object>');
  
			showModal('modalSubmission');  
			
			t.overwrite(videoContainer,{id: elementId, Href: path, Width: width, Height: height});  
        } 
		else if(fileType == 'flv')
        {
			var elementId = 'videoObject-' + Math.floor(Math.random()*1000);
			
            var sObj = new SWFObject(playerPath, "title", width, height+20, "7", "#000000");  
			showModal('modalSubmission');  
			sObj.addVariable("VideoPath", filename); 
            sObj.write("vcontainer");   
        }

    }
    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";
		
		//  setBGHeight();  //  Set background height     
		
		//  Set background height  
		var h_ff = window.innerHeight;  // Firefox  and most browsers     
		var h_ie = document.documentElement.clientHeight; // IE    
		
		if (h_ff > 0) 
		{
			document.getElementById(ref).style.height = h_ff;  
		}		
		else if (h_ie > 0)
		{
			document.getElementById(ref).style.height = h_ie;
		}
		else 
		{
			document.getElementById(ref).style.height = 1000; 
		}
		
		var nav = detectBrowser();  // check for IE6  
		if (nav == 2)     
		{
        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";

} 

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


function detectBrowser()
{
	// var browser=navigator.appName;    
	// var b_version=navigator.appVersion;   
	// var version=parseFloat(b_version);    

	var agent=navigator.userAgent;   
	var ff = "Firefox"; 
	var x = agent.indexOf(ff);    
	var ie = "MSIE 6";   //  check for IE 6  
	var y = agent.indexOf(ie);

	//alert("db y= " + y + "  x = " + x); 
	
	if (x >= 0) 
	  {
		return 1;
	  }
	else if (y >= 0)  
	  { 
	    return 2;
	  }  
	else
	  {
		return 0;
	  }
	  
}

/* 
function getScrollY_alternate() {
  var scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
  } else if( document.body && document.body.scrollTop ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
  } else if( document.documentElement && document.documentElement.scrollTop ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
  }
  return scrOfY + "px";
}
*/ 

/*  
function setBGHeight()
{
	alert("setBGHeight() start");  

	//  Set background height  
	var h_ff = window.innerHeight;  // Firefox  and most browsers
	var h_ie = document.body.clientHeight; // IE    
	
	if (h_ff > 0) 
	{
		document.getElementById(ref).style.height = h_ff;  
	}		
	else if (h_ie > 0)
	{
		document.getElementById(ref).style.height = h_ie;
	}
	else 
	{
		document.getElementById(ref).style.height = 1000; 
	}
}
*/  
