function getImageList()
{
    var url="proc.php";
    var vars="m=imagesmod";
    
    ddCommand(url, vars, null, getImageListDone);
}

function getImageListDone()
{
    //alert("here");
    //ddCommandDone("page");
    
    var response="";
    if (xhttp.readyState==4 || xhttp.readyState=="complete"){
        
        response=xhttp.responseText;
        //alert(response);
        var cBlock=response.split("(~)");
        
        if (cBlock[0]=="ok") {
        
            //alert(cBlock[1]);
            loadImageBlock(cBlock[1], cBlock[2]);
            
            
        } else {
        
            if (response.length==0)
                alert("there was a server error.  empty reply.  please try again.");
            else {
            
                if (response.match("( ! )")!=null) {
                    
                    document.getElementById("debug").innerHTML="<div style=\"background:darkred; color:white; padding:10px;\">"+response+"</div>";
                    
                } else 
                    alert("server error:\n\n"+response);
                
            }
            
        }
        
    }
    
}

var imageLoadDone=false;
var srcImages=[];
var allNames=[];
var allImages=[];
var imagesLoaded=[];
var progress=0;
function loadImageBlock(snames, simages)
{
    //document.getElementById("debug").innerHTML=snames;

    allNames=snames.split(",");
    allImages=simages.split(",");
    
    for (var t=0;t<allImages.length;t++) {
    
        srcImages[t]=new Image();
        srcImages[t].src=allImages[t];
    
        imagesLoaded[t]=false;
    }
    
    imageLoadCheck();
    
}

function imageLoadCheck()
{
    var sw=false;
    
    for (var t=0;t<allImages.length;t++) {
    
        if (srcImages[t].complete==true && imagesLoaded[t]==false) {
        
            progress++;
            sw=true;
            imagesLoaded[t]=true;
            
            document.getElementById("progressbar").innerHTML=Math.round( (progress/allNames.length)*100 )+"%";
            
            break;
        
        }
    
    }
    
    if (progress < allNames.length) {
        setTimeout(imageLoadCheck, 10);
    } else {
        document.getElementById("progressbar").style.display="none";
        imageLoadDone=true;
    }
    
} 

function getIndex(iname)
{
    //alert(allNames.length);
    for (var t=0;t<allNames.length;t++) {
    
        if (allNames[t]==iname) {
        
            //alert(t);
            return t;
        
        }
        
    }
    
}

function assocImage(id, iname)
{
    
    for (var t=0;t<allNames.length;t++) {
    
        if (allNames[t]==iname) {
        
            document.getElementById(id).src=allImages[t];
            break;
        
        }
        
    }
    
}

function assocAnimation(id, beginRange, rangeIndex)
{
    var start=getIndex(beginRange);
    var curIndex = start+rangeIndex;
    
    document.getElementById(id).src=allImages[curIndex];
}

var curTrans=0;
var transId=[];
var trans=[];
var transCount=[];
var longestTrans=0;
var doCallBack=false;

function resetAssocTrans(callback)
{
    doCallBack=callback;
    curTrans=0;
    transId=[];
    trans=[];
    transCount=[];
    longestTrans=0;
}

function assocTransparency(id, seq)
{
    if (seq.length > longestTrans)
        longestTrans=seq.length;
        
    transId[curTrans]=id;
    trans[curTrans]=seq;
    transCount[curTrans]=seq.length;
    
    curTrans++;
}

var curTransFrame=0;
function triggerTransAnimation()
{
    curTransFrame=0;
    doTransAnimation();
}

function doTransAnimation()
{
    if (curTransFrame < longestTrans) {
        
        for (var t=0;t<curTrans;t++) {
        
            if (curTransFrame < transCount[t]) {
            
                setOpacity(transId[t], trans[t][curTransFrame]);
            
            }
        
        }
        
        curTransFrame++;
        
        setTimeout(doTransAnimation, 40);
        
    } else {
        //this is only temporary and should be changed for each project
        if (doCallBack==true)
            
            setTimeout(triggerAfterSlideWipe,40);
    
    }
}

function setOpacity(name, opacity)
{
    //alert(name + " " + opacity);
    opacity = (opacity == 100)?99.999:opacity;
        
    var obj = document.getElementById(name);
    
    // IE/Win
    obj.style.filter = "alpha(opacity:"+opacity+")";
    
    // Safari<1.2, Konqueror
    obj.style.KHTMLOpacity = opacity/100;
    
    // Older Mozilla and Firefox
    obj.style.MozOpacity = opacity/100;
    
    // Safari 1.2, newer Firefox and Mozilla, CSS3
    obj.style.opacity = opacity/100;
}


