// Functions for the error / msg / debugmsg boxes
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function hidediv(id) {
    //safe function to hide an element with a specified id
    if (document.getElementById) { // DOM3 = IE5, NS6
        document.getElementById(id).style.display = 'none';
    }
    else {
        if (document.layers) { // Netscape 4
            document.id.display = 'none';
        }
        else { // IE 4
            document.all.id.style.display = 'none';
        }
    }
}

function showdiv(id) {
    //safe function to show an element with a specified id
    if (document.getElementById) { // DOM3 = IE5, NS6
        document.getElementById(id).style.display = 'block';
    }
    else {
        if (document.layers) { // Netscape 4
            document.id.display = 'block';
        }
        else { // IE 4
            document.all.id.style.display = 'block';
        }
    }
}

function resizediv(divID, sizeX, sizeY) {
        // alert(divID + " = " + sizeY);
    if(document.all && !document.getElementById) {
        if(sizeX > 0)   document.all[divID].style.pixelWidth            = sizeX+'px';
        if(sizeY > 0)   document.all[divID].style.pixelHeight           = sizeY+'px';
    } else {
        if(sizeX > 0)   document.getElementById(divID).style.width      = sizeX+'px';
        if(sizeY > 0)   document.getElementById(divID).style.height     = sizeY+'px';
    }
}

// Sushi race stuff
function OpenWin() {
    
    var winURL = "/sushirace_gioco/gioco.html";
    var winName = "SushiRace";
    var winWidth = 640;
    var winHeight = 620;
    window.open(winURL, winName, "width=" + winWidth + ",height=" + winHeight + ",menubar=no,toolbar=no,scrollbars=no,location=no"); // " ,left=" + winX + ",top=" + winY +
}

function getSWF(name) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[name];
    } else {
        return document[name];
    }
}

function playVideo(videoFile, itemID) {
    // Set the active styles
    YAHOO.util.Dom.removeClass('videoItem'+currentID, 'active');
    currentID   = itemID;
    YAHOO.util.Dom.addClass('videoItem'+currentID, 'active');
    
    // Play the swf
    var swf     = getSWF("videoItem_container");
    if(swf)
        swf.playMovie(videoFile);

    return false;            
}

function getPage(pageNr, currentID) {                
    var callback = {
        success:handleGetPageSuccess,
        failure:handleFailure
    };
    YAHOO.util.Connect.asyncRequest( "get", '/video/page/?page='+pageNr+'&currentID='+currentID, callback );                
    return false;
}

function handleGetPageSuccess( r ) {                
    var contentXML = r.responseXML.getElementsByTagName("content");
    if(contentXML.length == 1) {
        var xhtml   = getNodeText(contentXML[0]);                    
        var divObj  = document.getElementById('itemHolder');
        if(divObj) {
            divObj.innerHTML        = xhtml;
        }
    }
}

function handleFailure() {                            
    alert("Unable to retrieve content");
}

function getNodeText(xmlNode) {
    var strNodeText = '';
    var xmlChildNodes = xmlNode.childNodes;
    for( var i = 0; i < xmlChildNodes.length; i++ ) {
        if( xmlChildNodes[ i ].nodeType == 3 || xmlChildNodes[ i ].nodeType == 4 )
            strNodeText += xmlChildNodes[ i ].data;
        else
            strNodeText += getNodeText( xmlChildNodes[ i ] );
    }
    return strNodeText;
}
