﻿function pageWidth() 
{
    return window.innerWidth != null? window.innerWidth: 
           document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:
           document.body != null ? document.body.clientWidth:
           null;
}

function pageHeight() 
{
    return window.innerHeight != null? window.innerHeight: 
           document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:
           document.body != null ? document.body.clientHeight:
           null;
}

function posLeft() 
{
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:
           document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft:
           document.body.scrollLeft ? document.body.scrollLeft:
           0;
}

function posTop() 
{
    return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:
           document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop: 
           document.body.scrollTop ? document.body.scrollTop:
           0;
}

function $(x)
{
    return document.getElementById(x);
}

function scrollFix()
{
    var obol = $('ol');
    obol.style.top = posTop() + 'px';
    obol.style.left = posLeft() + 'px'
}

function sizeFix()
{
    var obol = $('ol');
    obol.style.height = pageHeight() + 'px';
    obol.style.width = pageWidth() + 'px';
}

function kp(e)
{
    ky=e ? e.which : event.keyCode;
    if(ky == 88 || ky == 120)
        hm();
    return false
}

function inf(h) {
    tag = document.getElementsByTagName('select');
    for(i = tag.length-1 ; i >= 0 ; i--)
        tag[i].style.visibility = h;
    tag=document.getElementsByTagName('iframe');
    for(i = tag.length-1 ; i >= 0 ; i--)
        tag[i].style.visibility = h;
    /*tag=document.getElementsByTagName('object');
    for(i = tag.length-1 ; i >= 0 ; i--)
        tag[i].style.visibility = h;        */
}

// *** DO NOT CHANGE *** 
function sm_OriginalVersion(obl, Player, wd, ht)
{
    var h = 'hidden';
    var b = 'block';
    var p = 'px';
    var obol = $('ol'); 
    var obbxd = $('mbd');
    obbxd.innerHTML = $(obl).innerHTML;
    obol.style.height = pageHeight() + p;
    obol.style.width = pageWidth() + p;
    obol.style.top = posTop() + p;
    obol.style.left = posLeft() + p;
    obol.style.display = b;
    var tp = posTop() + ((pageHeight() - ht) / 2) - 12;
    var lt = posLeft() + ((pageWidth() - wd) / 2 ) - 12;
    var obbx = $('mbox');
    obbx.style.top = (tp < 0 ? 0 : tp) + p;
    obbx.style.left = (lt <0 ? 0 : lt) + p;
    obbx.style.width = wd + p;
    obbx.style.height = ht + p;
    inf(h);
    obbx.style.display = b;   
    switch (Player.toLowerCase())
    {
        case "windowsmedia" :
            $(Player).controls.play();
            break;
        case "silverlight" :
            //createSilverlight(); // do not place this on the first line , because the block has not been shown , will be useless
        break;
    }
    return false;
}

function sm(avBox, Player, wd, ht) // ol --> mbox --> here --> avBox
{ 
    var ol = $('ol'); 
    ol.style.display = 'block';    
    ol.style.height = pageHeight() + 'px';
    ol.style.width = pageWidth() + 'px';
    ol.style.top = posTop() + 'px';
    ol.style.left = posLeft() + 'px';
    var mbox = $('mbox');    
    mbox.style.display = 'block';    
    var tp = posTop() + ((pageHeight() - ht) / 2) - 12;
    var lt = posLeft() + ((pageWidth() - wd) / 2 ) - 12;   
    mbox.style.top = (tp < 0 ? 0 : tp) + 'px';
    mbox.style.left = (lt <0 ? 0 : lt) + 'px';
    mbox.style.width = wd + 'px';
    mbox.style.height = ht + 'px';
    $('here').style.display = 'block';
    $(avBox).style.display = 'block';    
    $('here').appendChild($(avBox));

    inf('hidden');
    
    switch (Player.toLowerCase())
    {
        case "windowsmedia" :
            $(Player).controls.play();
            break;
        case "silverlight" :
            //createSilverlight(); // do not place this on the first line , because the block has not been shown , will be useless
        break;
    }
    return false;
}

// *** DO NOT CHANGE *** 
function hm_OriginalVersion(avBox, Player)
{
    var v = 'visible';
    var n = 'none';
    $('ol').style.display = n;
    $(avBox).style.display = n;
    $('mbox').style.display = n;    
    inf(v);
    document.onkeypress = ''
    switch (Player.toLowerCase())
    {
        case "windowsmedia" :
            $(Player).controls.stop();
            break;
        case "silverlight" :
            media_stopById();
            break;            
    }   
}

function hm(avBox, Player, originalPlace)
{   
    inf('visible');
    document.onkeypress = '';
    
    switch (Player.toLowerCase())
    {
        case "windowsmedia" :
            $(Player).controls.stop();
            break;
        case "silverlightaudio" :
            StopSilverlightAudio();
            break; 
        case "silverlightvideo" :
            StopSilverlightVideo();
            break;                           
    }
   
    //$(originalPlace).appendChild($(avBox));    
    //$(avBox).style.display = 'none';  // I adjusted the orders,then the second open of WindowsMedia get the same
    //$('here').style.display = 'none';   
    //$('mbox').style.display = 'none';  
    //$('ol').style.display = 'none';   
    
    // window.location.reload(false);  
    var loc = window.location; // this can disable the annoying reload warning message
    window.location=loc;
}

function initmb_OriginalVersion()
{
    var ab = 'absolute';
    var n = 'none';
    var obody = document.getElementsByTagName('body')[0];
    var frag = document.createDocumentFragment();
    var obol = document.createElement('div'); // <div id="ol" ...> --> Zindex:998
    obol.setAttribute('id','ol'); 
    obol.style.display = n;
    obol.style.position = ab;
    obol.style.top = 0;
    obol.style.left = 0;
    obol.style.zIndex = 998;
    obol.style.width = '100%';
    frag.appendChild(obol); // <div id="ol" ...>
    var obbx = document.createElement('div'); // <div id="mbox" ...> --> Zindex:999
    obbx.setAttribute('id','mbox');
    obbx.style.display = n;
    obbx.style.position = ab;
    obbx.style.zIndex = 999;
    var obl = document.createElement('span'); // <span ...>
    obbx.appendChild(obl); // <div id="mbox" ...> <span ...>
    var obbxd = document.createElement('div'); // <div id="mbd" ...>
    obbxd.setAttribute('id','mbd');
    obl.appendChild(obbxd); //  <div id="mbox" ...> <span ...> <div id="mbd" ...>
    frag.insertBefore(obbx, obol.nextSibling); // <div id="ol" ...> <div id="mbox" ...> <span ...> <div id="mbd" ...>
    obody.insertBefore(frag, obody.firstChild); // <body> <div id="ol" ...> <div id="mbox" ...> <span ...> <div id="mbd" ...>
    window.onscroll = scrollFix; 
    window.onresize = sizeFix;
}

function initmb()
{
    var ab = 'absolute';
    var n = 'none';
    var obody = document.getElementsByTagName('body')[0];
    var frag = document.createDocumentFragment();
    var obol = document.createElement('div'); // <div id="ol" ...> --> Zindex:998
    obol.setAttribute('id','ol'); 
    obol.style.display = n;
    obol.style.position = ab;
    obol.style.top = 0;
    obol.style.left = 0;
    obol.style.zIndex = 998;
    obol.style.width = '100%'; 
    frag.appendChild(obol); // <div id="ol" ...>
    var obbx = document.createElement('div'); // <div id="mbox" ...> --> Zindex:999
    obbx.setAttribute('id','mbox');
    obbx.style.display = n;
    obbx.style.position = ab;
    obbx.style.zIndex = 999;
    var obl = document.createElement('span'); // <span id="here" ...>
    obl.setAttribute('id', 'here');
    obbx.appendChild(obl); // <div id="mbox" ...> <span id="here" ...>
    frag.insertBefore(obbx, obol.nextSibling); // <div id="ol" ...> <div id="mbox" ...> <span id="here" ...>
    obody.insertBefore(frag, obody.firstChild); // <body> <div id="ol" ...> <div id="mbox" ...> <span id="here" ...>
    window.onscroll = scrollFix; 
    window.onresize = sizeFix;   
}

window.onload = initmb;

function chkReady(elementName,wd,ht)
{
    var timer;
    var target = "chkReady('" + elementName + "'," + wd + "," + ht + ")";
    if($('ol'))
    {
        //sm(elementName, '', 600, 450);
        sm(elementName, '', wd, ht);
        clearTimeout(timer)
    }
    else
        timer = setTimeout(target, 200);
}        
        