function initScreen(obj) {
    
    var newObjId        = obj.getAttribute("screen"); 
    var newObj          = document.createElement("img"); 
    var newObjSrc       = document.createAttribute("src");
    newObjSrc.nodeValue = newObjId;
    newObj.setAttributeNode(newObjSrc);
    newObj.id           = newObjId;
    newObj.style.left   = "0px";
    newObj.style.top    = "0px";
	newObj.style.visibility = "hidden";
    newObj.fade         = null;
    newObj.move         = null; 
    document.getElementById("screen").appendChild(newObj);
    document.getElementById(newObjId).moveScreen   = new moveScreen(newObj);
    opaque(0, newObjId); 
    
    if (obj.tagName=='DIV') {
        showScreen(obj);
    } else if (obj.tagName=='H5') {
		if (obj==document.getElementsByTagName("H5")[0]) {nextScreen();}
        obj.onclick = function(){showScreen(this);};
        } else {
            obj.onmouseover = function(){showScreen(this);};
        }
}
  
function showScreen(obj) {
    var s               = document.getElementById('screen').getElementsByTagName('img');   
    var o               = document.getElementById(obj.getAttribute('screen')); 
    fadeIn(o.id); 
    for (i=0; i<s.length; i++) {
        if (o.id!=s[i].id) {
        clearTimeout(s[i].fade);
        opaque(0, s[i].id);
        }
    }
} 

function fadeIn(id) { 
    var obj             = document.getElementById(id);
    var step            = 0.20;
    var timeout         = 50;   
    var os = parseFloat(obj.style.opacity) + step; 
    if (os <= 1) {
    opaque(os, obj.id); 
    obj.fade = setTimeout(function(){fadeIn(id);}, timeout); 
    }  
} 

function opaque(opacity, id) { 
    var obj             = document.getElementById(id).style;  
    obj.opacity         = (opacity); 
    obj.MozOpacity      = (opacity); 
    obj.KhtmlOpacity    = (opacity); 
    obj.filter          = "alpha(opacity=" + (opacity*100) + ")"; 
} 


function getScroll() {
  var scrOfX            = 0;
  var scrOfY            = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function getViewport() {
  var myWidth           = 0;
  var myHeight          = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [ myWidth, myHeight ];
}

function moveScreen(obj) {

    winDim = getViewport(); 
    winScroll = getScroll();
    
    toX = parseFloat(((winDim[0] - obj.width)/2)+winScroll[0]);
    toY = parseFloat(((winDim[1] - obj.height)/2)+winScroll[1]);

    if (obj.style.left!='') {fromX = parseFloat(obj.style.left);} else {fromX = 0;} 
    if (obj.style.top!='') {fromY = parseFloat(obj.style.top);} else {fromY = 0;}  
    
    if ((fromY!=toY) || (fromX!=toX)) {
        
        if ((obj.style.visibility=="hidden") && (obj.width!=0)) {
            step = 1;
			obj.style.visibility = "visible";
        } else {
            step = 5;
        }
        
        speedX = (toX-fromX)/step;
        speedY = (toY-fromY)/step; 
        obj.style.left = fromX+speedX+'px';
        obj.style.top = fromY+speedY+'px';
    }

 	obj.move = setTimeout(function() {moveScreen(obj);}, 80);
}


function nextScreen() {
   var obj = document.getElementsByTagName('h5'); 
   for (var i=0; i<obj.length; i++) {if (obj[i].className == 'select') {obj[i].className = ''; break;}}
   if (i<obj.length-1) {i++;} else {i=0}; 
	
   showScreen(obj[i]);
   obj[i].className = 'select'; 
}



function initDoc(obj) {
   if ((obj.nodeType==1) && (obj.getAttribute('screen') != null)) {obj.init = new initScreen(obj);} 
   var children = obj.childNodes;
   for (var i=0; i<children.length; i++) {
       initDoc(children[i]);
   }
}

window.onload = function() {initDoc(document.getElementById('frame'));};
