﻿
var FLAGS_NONE = 0;
var FLAGS_FLAT_TOP = 1;
var FLAGS_FLAT_BOTTOM = 2;
var FLAGS_TOP_NONE = 4;

// ** //
function CreateBorderElement(elementID, overrideWidth, style, bgColor, flags)
{
    var repObj = document.getElementById( elementID );
    if (typeof(repObj)=="undefined" || repObj==null) return;

    if (typeof(flags)=="undefined") flags = FLAGS_NONE;
    
    overrideWidth = NullIt( overrideWidth );
    style = NullIt( style, "raised" );
   
    bgColor = NullIt(bgColor);
    
    var TABLE = document.createElement( "table" );
    TABLE.cellPadding = 0;
    TABLE.cellSpacing = 0;
    TABLE.setAttribute( "border", "0" );
    if (bgColor!=null)TABLE.style.backgroundColor = bgColor;
    
    var TBODY = document.createElement( "tbody" );
    TABLE.appendChild( TBODY );
    
    if (!((flags & FLAGS_TOP_NONE)==FLAGS_TOP_NONE)) {
        
        var TR = document.createElement( "tr" );
        TBODY.appendChild( TR );
        
        var TD = document.createElement( "td" );
        if ((flags & FLAGS_FLAT_TOP)==FLAGS_FLAT_TOP)
            TD.className = "border-" + style + "-tl-square";
        else
            TD.className = "border-" + style + "-tl";
        TR.appendChild( TD );
        
        TD = document.createElement( "td" );
        TD.className = "border-" + style + "-tm";
        TR.appendChild( TD );
        
        TD = document.createElement( "td" );
        if ((flags & FLAGS_FLAT_TOP)==FLAGS_FLAT_TOP)
            TD.className = "border-" + style + "-tr-square";
        else
            TD.className = "border-" + style + "-tr";
        TR.appendChild( TD );
    }
    
    TR = document.createElement( "tr" );
    TBODY.appendChild( TR );
    
    TD = document.createElement( "td" );
    TD.className = "border-" + style + "-ml";
    TR.appendChild( TD );
    
    var TD_content = document.createElement( "td" );
        
    if (overrideWidth!=null) TD_content.setAttribute( "width" , overrideWidth );
    TR.appendChild( TD_content );

    TD = document.createElement( "td" );
    TD.className = "border-" + style + "-mr";
    TR.appendChild( TD );
    
    TR = document.createElement( "tr" );
    TBODY.appendChild( TR );
    
    TD = document.createElement( "td" );
    if ((flags & FLAGS_FLAT_BOTTOM)==FLAGS_FLAT_BOTTOM)
        TD.className = "border-" + style + "-bl-square";
    else
        TD.className = "border-" + style + "-bl";
    TR.appendChild( TD );
    
    TD = document.createElement( "td" );
    if ((flags & FLAGS_FLAT_BOTTOM)==FLAGS_FLAT_BOTTOM)
        TD.className = "border-" + style + "-bm-square";
    else
        TD.className = "border-" + style + "-bm";
    TR.appendChild( TD );
    
    TD = document.createElement( "td" );
    if ((flags & FLAGS_FLAT_BOTTOM)==FLAGS_FLAT_BOTTOM)
        TD.className = "border-" + style + "-br-square";
    else
        TD.className = "border-" + style + "-br";
        
    TR.appendChild( TD );
    
    var newun = repObj.parentNode.insertBefore( TABLE, repObj ); 
    TD_content.appendChild( repObj );
    
}

// ** //
function CreateImageElement( elementID, linkURL, borderStyle, borderWidth, center )
{
    var img = document.getElementById( elementID );
    if (typeof(img)=="undefined" || img==null) return;

    center = NullIt(center,false);

    linkURL = NullIt(linkURL);
    borderStyle = NullIt(borderStyle, "raised");
    borderWidth = NullIt( borderWidth );
    
    // get some attributes from the img node
    var width = NullIt(img.width);
    var height = NullIt(img.Height);
    var caption = NullIt(img.alt);
    
if (center) {    
    var TABLE = document.createElement("table");
    TABLE.cellSpacing = "0";
    TABLE.cellPadding = "0";
    TABLE.border = "0";
    TABLE.setAttribute("width","100%");

    var TBODY = document.createElement("tbody");
    TABLE.appendChild(TBODY);

    var TR = document.createElement("TR");
    TBODY.appendChild(TR);

    var TD = document.createElement("TD");
    TD.setAttribute("align","Center");
    TR.appendChild(TD);
}

    // create outer div
    var DIV = document.createElement( "div" );
    DIV.id = elementID + "_container";
    DIV.className = "image-container";
    var parent = DIV;

var newun = null;

if (center) {
    newun = img.parentNode.insertBefore( TABLE, img ); 
    TD.appendChild(DIV);
} else newun = img.parentNode.insertBefore( DIV, img );         
        
    // create a link
    if (linkURL!=null) {
        var A = document.createElement( "a" );
        A.setAttribute( "href", linkURL );
        A.setAttribute( "target", "view_image" );
        A.setAttribute( "title", "Click to view larger image" );
        parent = DIV.appendChild( A );
    }
    
    // modify image attribute
    img.setAttribute( "alt", (caption==null?"":caption) );
    img.className = "image";

    // now apply new nodes
    parent.appendChild( img );
    
    // add a caption
    if (caption!=null && caption!="") {
        var P = document.createElement( "p" );
        P.className="media-caption";
        P.innerHTML = caption;
        DIV.appendChild( P );
    }
    
    // border
    if (borderStyle!=null && borderStyle!="none" && borderStyle!="") 
        CreateBorderElement(DIV.id, borderWidth, borderStyle );
}

// ** //
function CreateDownloadElement( elementID, altext ) {
    var anchor = document.getElementById( elementID );
    if (typeof(anchor)=="undefined" || anchor==null) return;

    // get the href (file)
    var file = anchor.href;
    var extension="unknown";
    var shortfile = file;
    var details = anchor.innerHTML;
    
    if (typeof(altext)!="undefined" && altext!=null) 
        extension = altext;
    else {

        var pos = file.lastIndexOf(".");
        if (pos>0) {
            var ext = file.substring(pos+1,999).toLowerCase();
            switch (ext) {
                case "rar":
                    extension="winrar";
                    break;
                case "mb":
                case "ma":
                    extension="maya";
                    break;
                case "pdf":
                    extension="pdf";
                    break;
            }
        }
    }
    
    var pos = file.lastIndexOf("/");
    if (pos>=0) shortfile=file.substring(pos+1,999);

    // create table
    var TABLE = document.createElement( "table" );
    TABLE.setAttribute( "cellpadding", "0" );
    TABLE.setAttribute( "cellspacing", "0" );
    TABLE.setAttribute( "border", "0" );
    TABLE.setAttribute( "class", "download" );
    
    var TBODY = document.createElement( "tbody" );
    TABLE.appendChild( TBODY );
        
    // create row
    var TR = document.createElement( "tr" );
    TBODY.appendChild( TR );
    
    // create icon cell
    var TDIcon = document.createElement( "td" );
    TDIcon.className = "icon-download-" + extension;
    TR.appendChild( TDIcon );

    // text
    var TDtext = document.createElement( "td" );
    TDtext.className = "link-text";
    TDtext.setAttribute( "valign", "top" );
    TDtext.setAttribute( "align", "left" );
    
    TR.appendChild( TDtext );
    
    // create link
    anchor.setAttribute( "title", shortfile );
    anchor.innerHTML = "";
    
    // create span
    var SPAN = document.createElement( "span" );
    SPAN.className = "link-filename";
    SPAN.innerHTML = shortfile;
    anchor.appendChild( SPAN );

    anchor.appendChild( document.createElement("br") );
    
    SPAN = document.createElement( "span" );
    SPAN.innerHTML = details;
    anchor.appendChild( SPAN );

    // now apply new nodes
    var newun = anchor.parentNode.insertBefore( TABLE, anchor ); 
    TDtext.appendChild( anchor );
}

// ** //
function CreateVideoElement( elementID, movieName, previewImage, caption, fileSizes, showMainHeader, borderStyle )
{
    var DIV_main = document.getElementById( elementID );
    if (typeof(DIV_main)=="undefined" || DIV_main==null) return;

    var id = DIV_main.id;

    caption = NullIt(caption,"");
    fileSizes = NullIt( fileSizes );
    borderStyle = NullIt( borderStyle, "raised" );
    showMainHeader = NullIt( showMainHeader, "true" );
    showSizes = (fileSizes!=null && fileSizes!="");
    
    var sizes = null;
    if (showSizes) sizes = fileSizes.split(",");
    
    showLargeSizes = (showSizes && sizes.length>2);
    
    DIV_main.innerHTML = "<div onmouseout='OnVideoClipOut(this);' onmouseover='OnVideoClipOver(this);'></div>";
    DIV_main = DIV_main.firstChild;
    DIV_main.id = id + "_container";    
    DIV_main.className = "video-container";
    
    if (showMainHeader) {
        var H1 = document.createElement( "h1" );
        H1.appendChild( document.createTextNode( "Watch Movie" ) );
        DIV_main.appendChild(H1);
    }
    
    var IMG = document.createElement( "img" );
    IMG.className = "video-preview";
    IMG.setAttribute( "src", previewImage );
    IMG.setAttribute( "alt", "" );
    
    DIV_main.appendChild( IMG );
    
    var DIV = document.createElement( "div" );
    DIV.className = "video-options-container";
    DIV_main.appendChild( DIV );
    
    var DIV2 = document.createElement( "div" );
    DIV2.id = id + "_container_options";
    DIV2.className = "video-options";
    DIV.appendChild( DIV2 );
    
    var TABLE = document.createElement( "table" );
    TABLE.setAttribute( "cellpadding", "1" );
    TABLE.setAttribute( "cellspacing", "1" );
    DIV2.appendChild(TABLE);
    
    var TBODY = document.createElement( "tbody" );
    TABLE.appendChild(TBODY);
    
    var TR = document.createElement( "TR" );
    TBODY.appendChild( TR );
    
    var TD = document.createElement( "TD" )
    TD.className = "video-option-icon";
    TR.appendChild( TD );
    
    IMG = document.createElement( "IMG" );
    IMG.setAttribute( "alt", "Windows Media" );
    IMG.setAttribute( "src", "images/windows-media-32x32.gif" );
    TD.appendChild( IMG );
    
    var TD = document.createElement( "TD" );
    TD.className = "video-option-text";
    TR.appendChild( TD );
    
    var A = document.createElement( "a" );
    A.setAttribute( "href", movieName + "_small.wmv" );
    A.appendChild( document.createTextNode( "Small wmv" + (showSizes ? (" (" + sizes[0] + ")") : "")  ) );
    TD.appendChild( A );
    
    if (showLargeSizes) {    
        TD.appendChild( document.createElement( "br" ) );
        
        A = document.createElement( "a" );
        A.setAttribute( "href", movieName + "_large.wmv" );
        A.appendChild( document.createTextNode( "Large wmv" + (showSizes ? (" (" + sizes[1] + ")") : "")  ) );
        TD.appendChild( A );
    }
    
    TABLE = document.createElement( "table" );
    TABLE.setAttribute( "cellpadding", "1" );
    TABLE.setAttribute( "cellspacing", "1" );
    DIV2.appendChild(TABLE);
    
    var TBODY = document.createElement( "tbody" );
    TABLE.appendChild(TBODY);
    
    var TR = document.createElement( "TR" );
    TBODY.appendChild( TR );
    
    var TD = document.createElement( "TD" )
    TD.className = "video-option-icon";
    TR.appendChild( TD );
    
    IMG = document.createElement( "IMG" );
    IMG.setAttribute( "alt", "Quicktime Media" );
    IMG.setAttribute( "src", "images/quicktime-media-32x32.gif" );
    TD.appendChild( IMG );
    
    var TD = document.createElement( "TD" );
    TD.className = "video-option-text";
    TR.appendChild( TD );
    
    var A = document.createElement( "a" );
    A.setAttribute( "href", movieName + "_small.mov" );
    A.appendChild( document.createTextNode( "Small mov" + (showSizes ? (" (" + (showLargeSizes?sizes[2]:sizes[1]) + ")") : "")  ) );
    TD.appendChild( A );

    if (showLargeSizes) {    
        TD.appendChild( document.createElement( "br" ) );
        
        A = document.createElement( "a" );
        A.setAttribute( "href", movieName + "_large.mov" );
        A.appendChild( document.createTextNode( "Large mov" + (showSizes ? (" (" + (showLargeSizes?sizes[3]:sizes[2]) + ")") : "")  ) );
        TD.appendChild( A );
    }
    
    if (caption!=null && caption!="") {
        var P = document.createElement( "p" );
        P.innerHTML = caption;
        DIV_main.appendChild( P );
    }
    
    if (borderStyle!="" && borderStyle!="none") {
        CreateBorderElement( DIV_main.id , null, borderStyle );
    }
}

function CreateMainMenu( parentID )
{

    var parent = document.getElementById( parentID );
    if (NullIt(parent)==null) return;
    
    // Create tables
    var TABLE = document.createElement( "table" );
    //TABLE.setAttribute("border","1");
    //TABLE.setAttribute("width","100%");
    TABLE.setAttribute("cellpadding","0");
    TABLE.setAttribute("cellspacing","0");
    TABLE.cellPadding = "0";
    TABLE.cellSpacing = "0";
    
    parent.appendChild(TABLE);
    
    var TBODY = document.createElement( "tbody" );
    TABLE.appendChild( TBODY );
    
    var TRmain = document.createElement( "tr" );
    //TRmain.style.height = "24px";
    TBODY.appendChild( TRmain )
    
    // Create the menu options
    for (i=0; i<PageMenu.length; i++) {
        
        TD = document.createElement( "td" );
        TD.id = "menu-" + i;
        TD.className = "main-menu-cell";
        
        TD.onmouseover = function(){ShowMenu(this,true);}
        TD.onmouseout = function(){ShowMenu(this,false);}
        TRmain.appendChild( TD );
        
        var A = document.createElement( "a" );
        A.className = "main-menu-caption";
        A.setAttribute( "href", PageMenu[i][0][1] );
        A.innerHTML = PageMenu[i][0][3];
        TD.appendChild( A );
    
        // CREATE MENU HERE
        var DIV = document.createElement( "div" );
        DIV.style.textAlign = "left";
        TD.appendChild( DIV );
        
        
        DIV2 = document.createElement( "div" );
        DIV2.className = "popup-menu";
        DIV2.id = "menu-" + i + "-popup";
        DIV.appendChild( DIV2 );
        
        if (PageMenu[i].length==1) continue;
        
        TABLE = document.createElement( "table" );
        TABLE.cellSpacing = 0;
        TABLE.cellPadding = 0;
       
        TABLE.setAttribute("width",PageMenu[i][0][4]);
        DIV2.appendChild( TABLE );
        
        TBODY = document.createElement( "tbody" );
        TABLE.appendChild( TBODY );
        
        TR = document.createElement( "tr" );
        TR.style.height = "18px";
        TBODY.appendChild( TR );
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-tl";
        TR.appendChild( TD );
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-tm";
        TR.appendChild( TD );
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-tr";
        TR.appendChild( TD );
        
        TR = document.createElement( "tr" );
        TBODY.appendChild( TR );
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-ml";
        TR.appendChild( TD );
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-mm";
        TR.appendChild( TD );
        
        // Now add the menu links
        
        for (o=1; o<PageMenu[i].length; o++)
        {
            A = document.createElement( "a" );
            A.className = PageMenu[i][o][0];
            A.setAttribute( "href", PageMenu[i][o][1] );
            A.setAttribute( "target", PageMenu[i][o][2] );
            A.setAttribute( "title", PageMenu[i][o][3] );
            A.innerHTML = PageMenu[i][o][3];
            TD.appendChild( A );
            
        }
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-mr";
        TR.appendChild( TD );

        TR = document.createElement( "tr" );
        TR.style.height = "18px";
        TBODY.appendChild( TR );
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-bl";
        TR.appendChild( TD );
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-bm";
        TR.appendChild( TD );
        
        TD = document.createElement( "td" );
        TD.className = "popup-menu-border-br";
        TR.appendChild( TD );
        
    }
   
}
        
// ** //
function OnVideoClipOver( obj ) 
{
    obj = document.getElementById( obj.id + "_options" );
    if (typeof(obj)=="undefined" || obj==null) return;

    obj.style.visibility = "visible";
}

// ** //
function OnVideoClipOut( obj ) {
    obj = document.getElementById( obj.id + "_options" );
    if (typeof(obj)=="undefined" || obj==null) return;

    obj.style.visibility = "hidden";
}

