/**
*
* Ajax page that returns screenshots for the empire site
*
* @author  Kai Price <pricek@soe.sega.co.uk>
* @date    28 July 2008
*
**/

/**
*
* gets the screenshots for a given game group and territory
*
* @param    int     id of the gamegroup
* @param    int     id of the territory
* @param    int     starting offset of the resultset
* @param    int     maximum number of results that are to be returned
* @param    string  the root of the empire website
* @param    string  the root of the segawest website
* @param    int     id of the catgory that the screenshot is to be related to (optional)
* @param    boolean indicating whether to load the first image into the main frame
* @param    boolean indicating whether the results should be accompanied by pagination
* @param    boolean indicating whether to use ajax to load an image or us the $_GET method
* @access   public
*
**/
function getScreenshots(gamegroupid,territory,start,limit,htmltop,segawesttop,categoryid,updatebigimage,paginateres,updateusingajax){
    var xmlHttp = GetXmlHttpObject();

    if (xmlHttp==null) {
        alert ("Browser does not support HTTP Request")
        return
    }
    //set the 'loading' icon
    document.getElementById("screenshotsviewer").innerHTML='<div class="loadingajax" style="height:155px;">&nbsp;<\/div>';

    var url= htmltop + "ajax/ajax-getScreenShots.php"
    url    = url + "?gg="+gamegroupid;
    url    = url + "&t="+territory;
    url    = url + "&st="+start;
    url    = url + "&l="+limit;
    url    = url + "&c="+categoryid;

    //alert(url);
    xmlHttp.open("GET",url,true);

    xmlHttp.onreadystatechange = function() {
        switch (xmlHttp.readyState) {
            case 0 : case 1 : case 2 : case 3 : break;
            case 4 :
            case 'complete' :
                //tear apart the response text which is XML
                var xml = xmlHttp.responseXML;

                var thisset = xml.getElementsByTagName("result")[0].getAttribute("thisset");
                var count   = xml.getElementsByTagName("result")[0].getAttribute("count");
                var html    = '';

                for(var i=0; i<thisset; i++){
                    var smallthumb      = xml.getElementsByTagName("small")[i].firstChild.nodeValue;
                    smallthumb          = smallthumb.substring(1,smallthumb.length);
                    var mediumthumb     = xml.getElementsByTagName("medium")[i].firstChild.nodeValue;
                    mediumthumb         = mediumthumb.substring(1,mediumthumb.length);
                    var screenshotid    = xml.getElementsByTagName("screenshotid")[i].firstChild.nodeValue;

                    html += '<div class="screenshotItem">';
                    if(updateusingajax=='true'){
                        html += '<a onclick="setImg(\'' + segawesttop + mediumthumb + '\')">';
                    }else{
                        html += '<a href="gallery/screenshots.php?s=' + screenshotid + '&c=campaign,land,naval">';
                    }
                    html += '<div style="background: url(\'' + segawesttop + smallthumb + '\') no-repeat top center" class="image">';
                    html += '<\/div>';
                    html += '<\/a>';
                    html += '<\/div>';
                }

                html += '<div class="clear">&nbsp;</div>'; //make sure that there is a clearing div
                document.getElementById("screenshotsviewer").innerHTML = html;

                if(updatebigimage=='true' && thisset>0){//they wish to update the main image & there is an image to set it to
                    var mediumthumb     = xml.getElementsByTagName("medium")[0].firstChild.nodeValue;
                    mediumthumb         = mediumthumb.substring(1,mediumthumb.length);
                    setImg(segawesttop + mediumthumb);
                }else if(updatebigimage=='true'){//there is no image to set but they want to set the image
                    setImg(null);
                }

                if(paginateres=='true'){
                    //put all of the parameters that have been passed in into an array, in the order that they
                    //were called as we are going to need to use these variables in the pagination
                    var param_ar = new Array();
                    param_ar['gamegroupid']     = gamegroupid;
                    param_ar['territory']       = territory;
                    param_ar['start']           = start;
                    param_ar['limit']           = limit;
                    param_ar['htmltop']         = htmltop;
                    param_ar['segawesttop']     = segawesttop;
                    param_ar['categoryid']      = categoryid;
                    param_ar['updatebigimage']  = updatebigimage;
                    param_ar['paginateres']     = paginateres;
                    param_ar['updateusingajax'] = updateusingajax;

                    functionname                = 'getScreenshots'; //it also needs to know what function to call!

                    paginate(start, limit, count, param_ar, functionname); //paginate the results
                }
            break;
        }
    }


    xmlHttp.send(null)
}

function GetXmlHttpObject() {
    var xmlHttp=null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

var filterOpen = false;
function toggleFilter(element)
{
    if(filterOpen) {
        element.style.backgroundImage='url(../images/button6.gif)';
    } else {
        element.style.backgroundImage='url(../images/button5.gif)';
    }
    filterOpen = !filterOpen;
    new Effect.toggle('filter', 'slide');
}

/**
* sets the image of the main viewer
*
**/
function setImg(src){
    if(src!=null){//there is an image to set
        html = '<img style="margin: 0; padding: 0;" src="' + src + '" alt="" />';
    }else{//there is no image to set
        html = '<div style="height: 276px">&nbsp;</div>';
    }

    document.getElementById("mainscreenshot").innerHTML = html;
}