function ProcessThemeXML(xmlDoc)
{
    var iThemeID = XmlGetElement(xmlDoc, "ID", 0);
    var oE = document.getElementById('Theme' + iThemeID + 'DownloadsTotal');
    if (oE)
        oE.innerText = XmlGetElement(xmlDoc, "DownloadsTotal", 0);
        
    oE = document.getElementById('Theme' + iThemeID + 'DownloadsPeriod');
    if (oE)
        oE.innerText = XmlGetElement(xmlDoc, "DownloadsPeriod", 0);

    oE = document.getElementById('Theme' + iThemeID + 'CurrentRating');
    if (oE)
        oE.src = "/Images/Ratings/Rated" + XmlGetElement(xmlDoc, "Rating", 0) + ".gif";

    oE = document.getElementById('Theme' + iThemeID + 'Rating');
    if (oE)
        oE.innerText = XmlGetElement(xmlDoc, "Rating", 0);

    oE = document.getElementById('Theme' + iThemeID + 'RatedCount');
    if (oE)
        oE.innerText = XmlGetElement(xmlDoc, "RatedCount", 0);

    if (document.getElementById("imgRating1"))
    {
        iRating = XmlGetElement(xmlDoc, "Rating", 0);
        RatingSet();
    }
}
function ProcessThemes(objRequest)
{
    if (iThemeDetails < a_strThemeDetails.length)
    {
        var iRandom=Math.floor(Math.random()*1000);
        objRequest.open('GET', a_strThemeDetails[iThemeDetails] + '?' + iRandom, true);
        iThemeDetails++;
        objRequest.onreadystatechange = 
        function (aEvt) 
        {
            if (objRequest.readyState == 4) 
            {
                if(objRequest.status == 200 && objRequest.responseXML.documentElement != null)
                {
                    ProcessThemeXML(objRequest.responseXML.documentElement);
                    ProcessThemes(objRequest);
                }
                else
                    alert("Error loading page\n");
            }
        };
        objRequest.send(null); 
    }
}

var a_strThemeDetails = [];
var iThemeDetails = -1;
function OnLoad()
{   
    var objRequestThemes; 
    
    
    objRequestThemes=GetXmlRequestObject();
    if(objRequestThemes!=null)
    {
        iThemeDetails=0;
        ProcessThemes(objRequestThemes);
    }

    if (document.getElementById("divSubDirectories"))
    {
        var objRequestDirectory=GetXmlRequestObject();
        DirectoryFetch(objRequestDirectory);
    }
    if (document.getElementById("divDirectoryVertical"))
    {
        var objRequestDirectoryVertical=GetXmlRequestObject();
        DirectoryVertiaclFetch(objRequestDirectoryVertical);
    }
    if (document.getElementById("divThread"))
    {
        var objRequestThread=GetXmlRequestObject();
        ThreadFetch(objRequestThread, "Thread1.htm");
    }
    if (document.getElementById("divDirectoryVertical"))
    {
        var objRequestDirectoryVertical=GetXmlRequestObject();
        DirectoryVertiaclFetch(objRequestDirectoryVertical);
    }
    if (document.getElementById("divDirectoryVerticalRoot"))
    {
        var objRequestDirectoryVerticalRoot=GetXmlRequestObject();
        DirectoryVertiaclRootFetch(objRequestDirectoryVerticalRoot);
    }

}

function ThreadCall(strPage)
{
    var objRequestThread=GetXmlRequestObject();
    ThreadFetch(objRequestThread, strPage);
}

// START - Ratings
var strRatingImgLocation = "/Images/ImageIcons/";
var bRateable = true;

function RatingHighlight(iRating)
{
    if (bRateable)
    {
        for (var iLoop = 1; iLoop < 6; iLoop++)
            document.getElementById("imgRating" + iLoop).src = iRating >= iLoop ? strRatingImgLocation + "StarRateMe.gif" : strRatingImgLocation + "StarUnRated.gif";
        clearTimeout(objTimer);
        objTimer = setTimeout( "RatingSet()", 3000);
    }
}
function RatingSet()
{
    for (var iLoop = 1; iLoop < 6; iLoop++)
        document.getElementById("imgRating" + iLoop).src = iRating >= iLoop ? strRatingImgLocation + "StarRated.gif" : strRatingImgLocation + "StarUnRated.gif";
}
function RatingSelect(iNewRating)
{
    document.getElementById("divRateMe").style.display="none";
    clearTimeout(objTimer);
    bRateable = false;
    var objRequest;
    objRequest = GetXmlRequestObject();
    if(objRequest!=null)
    {
    objRequest.open('GET', '/Services/RateTheme.asmx/Rate?Theme=' + strThemeGUID + '&Rating=' + iNewRating, true);
    objRequest.onreadystatechange = 
    function (aEvt) 
    {
        if (objRequest.readyState == 4) 
        {
            if(objRequest.status == 200)
            {
                var R = objRequest.responseXML.documentElement;
                if (R!=null)
                {
                    iRating = R.getAttribute('Rating');
                    oE = document.getElementById('Theme' + R.getAttribute('ThemeID') + 'RatedCount');
                    if (oE)
                        oE.innerText = R.getAttribute('RatedCount');
                    RatingSet();
                }
            }
        }
    };
    objRequest.send(null); 
    }
}
// END - Ratings

// START - Directory Listing
function DirectoryFetch(objRequest)
{
    if(objRequest!=null)
    {
        clearTimeout(objTimer);
        objRequest.open('GET', 'SubDirectory.htm', true);
        objRequest.onreadystatechange = 
        function (aEvt) 
        {
            if (objRequest.readyState == 4) 
            {
                if(objRequest.status == 200)
                {
                    var R = objRequest.responseText;
                    if (R!=null)
                    {
                        document.getElementById("divSubDirectories").innerHTML = R;
                    }
                }
            }
        };
        objRequest.send(null); 
    }
}
// END - Directory Listing
// START - Thread Fetch
function ThreadFetch(objRequest, strPage)
{
    if(objRequest!=null)
    {
        clearTimeout(objTimer);
        objRequest.open('GET', strPage, true);
        objRequest.onreadystatechange = 
        function (aEvt) 
        {
            if (objRequest.readyState == 4) 
            {
                if(objRequest.status == 200)
                {
                    var R = objRequest.responseText;
                    if (R!=null)
                    {
                        document.getElementById("divThread").innerHTML = R;
                    }
                }
            }
        };
        objRequest.send(null); 
    }
}
// END - Thread Fetch

