/*** Creation des variables ***/
if(!window.JSFX)
JSFX=new Object();
JSFX.ImageZoomRunning = false;
JSFX.zoomOn = function(img, zoomStep, maxZoom){
    if(img){
        if(!zoomStep){
            if(img.mode == "EXPAND")
                zoomStep = img.height/10;
            else
                zoomStep = img.width/10;
        }
        if(!maxZoom){
            if(img.mode == "EXPAND")
                maxZoom = img.height/2;
            else
                maxZoom = img.width/2;
        }
        if(img.state == null){
            img.state = "OFF";
            img.index = 0;
            img.orgWidth = img.width;
            img.orgHeight = img.height;
            img.zoomStep = zoomStep;
            img.maxZoom = maxZoom;
        }
        if(img.state == "OFF"){
            img.state = "ZOOM_IN";
            start_zooming();
        }
        else if( img.state == "ZOOM_IN_OUT" || img.state == "ZOOM_OUT"){
            img.state = "ZOOM_IN";
        }
    }
}

JSFX.zoomIn = function(img, zoomStep, maxZoom){
    img.mode = "ZOOM";
    JSFX.zoomOn(img, zoomStep, maxZoom);
}

JSFX.stretchIn = function(img, zoomStep, maxZoom){
    img.mode = "STRETCH";
    JSFX.zoomOn(img, zoomStep, maxZoom);
}

JSFX.expandIn = function(img, zoomStep, maxZoom){
    img.mode = "EXPAND";
    JSFX.zoomOn(img, zoomStep, maxZoom);
}

JSFX.zoomOut = function(img){
    if(img){
        if(img.state=="ON"){
            img.state="ZOOM_OUT";
            start_zooming();
        }
        else if(img.state == "ZOOM_IN"){
            img.state="ZOOM_IN_OUT";
        }
    }
}

function start_zooming(){
    if(!JSFX.ImageZoomRunning)
        ImageZoomAnimation();
}

JSFX.setZoom = function(img){
    if(img.mode == "STRETCH"){
        img.width = img.orgWidth + img.index;
        img.height = img.orgHeight;
    }
    else if(img.mode == "EXPAND"){
        img.width = img.orgWidth;
        img.height = img.orgHeight + img.index;
    }
    else{
        img.width = img.orgWidth + img.index;
        img.height = img.orgHeight + img.index;
    }
}

function ImageZoomAnimation() {
    JSFX.ImageZoomRunning = false;
    for(i=0 ; i<document.images.length ; i++){
        var img = document.images[i];
        if(img.state){
            if(img.state == "ZOOM_IN"){
                img.index+=img.zoomStep;
                if(img.index > img.maxZoom)
                img.index = img.maxZoom;
                JSFX.setZoom(img);
                if(img.index == img.maxZoom)
                img.state="ON";
            else
                JSFX.ImageZoomRunning = true;
            }
            else if(img.state == "ZOOM_IN_OUT"){
                img.index+=img.zoomStep;
                if(img.index > img.maxZoom)
                    img.index = img.maxZoom;
                    JSFX.setZoom(img);
                if(img.index == img.maxZoom)
                    img.state="ZOOM_OUT";
                    JSFX.ImageZoomRunning = true;
            }
            else if(img.state == "ZOOM_OUT"){
                img.index-=img.zoomStep;
                if(img.index < 0)
                    img.index = 0;
                    JSFX.setZoom(img);
                    if(img.index == 0)
                        img.state="OFF";
                    else
                    JSFX.ImageZoomRunning = true;
            }
        }
    }
    if(JSFX.ImageZoomRunning)
        setTimeout("ImageZoomAnimation()", 40);
}