/**
 * Copyright Marius Chincisan/www.zalsoft.com & EnjoyDecor 
*/
window.onload = startSlide;

var MODE = {
    SLIDE   : 1,
    FADE    : 2,
    FADE_BRD: 3, //fade with bordders
    PAUSE   : 100,
    SPEED   : 4,
    SLEEP   : 16,
    LMARGIN : 69,   
    TMARGIN : 0
};
var _mode  = MODE.SLIDE;
var _idx1  = 0;
var _anim = 0;
var _pause = 0;
var _images;// = new Array();

function ImgCoord(x,y,z,img) {

    this.rx = (ctx.canvas.width - img.width) / 2;
    this.ry = 0;
    this.x = this.rx;
    this.y = this.ry;
    this.z = 0;
    this.zoom = 0;
    this.img = img;
}

function loadImages(w, h)
{
    <!-- These images are copyright by enjoydecor.com-->
    var description = new Array("web/images/slideshow/web11.jpg",
		                        "web/images/slideshow/web9.jpg",
		                        "web/images/slideshow/web4.jpg",
		                        "web/images/slideshow/web7.jpg",
		                        "web/images/slideshow/web17.jpg",
		                        "web/images/slideshow/web8.jpg",
		                        "web/images/slideshow/web10.jpg",
		                        "web/images/slideshow/web1.jpg",
		                        "web/images/slideshow/web15.jpg",
		                        "web/images/slideshow/web20.jpg",
		                        "web/images/slideshow/web6.jpg",
		                        "web/images/slideshow/web16.jpg",
		                        "web/images/slideshow/web2.jpg",
		                        "web/images/slideshow/web12.jpg",
		                        "web/images/slideshow/web13.jpg",
		                        "web/images/slideshow/web14.jpg",
		                        "web/images/slideshow/web3.jpg",
		                        "web/images/slideshow/web5.jpg",
		                        "web/images/slideshow/web18.jpg",
		                        "web/images/slideshow/web19.jpg");
    if(w==0)
    {
        _images = description;
        return description;
    }
    var pictures = new Array(description.lenth);
    for (var i=0;i<description.length;i++)
    {
        var picture = new Image();
        picture.src = description[i];
        pictures[i] = new ImgCoord(0, 0, 0, picture);
    }
    return pictures;
}

function log(s)
{
    var log = document.getElementById("log");
    log.innerHTML = s + "<BR>";
}

function startSlide()
{
    //log("starting");
    var sb = document.getElementById("status_bar");
    
    var cont = document.getElementById("id_content");
    //log(sb.offsetTop -  cont.offsetTop);
    if(sb.offsetTop -  cont.offsetTop < 599)
        cont.style.height = (sb.offsetTop-128) + "px";
    
    var canvas = document.getElementById("thecanvas");
    if( canvas && canvas.getContext )
    {
        sie = document.getElementById("stupidie");
        sie.innerHTML = "";
        sie.style.height = 0;
        sie.style.visibility = "hidden";

        ctx = canvas.getContext("2d");
        var images = loadImages(ctx.canvas.width, ctx.canvas.height);
        setInterval(render,MODE.SLEEP, images, ctx.canvas.width, ctx.canvas.height);//, images, ctx.rect.w, ctx.rect.h);
    }
    else
    {
        sie = document.getElementById("notie");
        sie.innerHTML = "";        
        sie.style.height = 0;
        sie.style.visibility = "hidden";
        loadImages(0, 0);                
        renderIE();            
    }
}

function Sin(x)
{
    return Math.sin((Math.PI/180.0) * x) + 1;
}

function render(images, w, h)
{
    switch (_mode)
    {
        case MODE.SLIDE:
            slide(images, w, h); 
            break;
        case MODE.FADE:
            fade(images, w, h); 
            break;
        case MODE.FADE_BRD:
            fade(images, w, h); 
            break;
    }     
}

function setMode(mode)
{
    _idx1 = 0;
    _anim = 0;
    _mode = mode;
}

function fade(images, w, h)
{
    function draw(a,b)
    {
        ctx.fillStyle = "rgb(255,255,255)";
        ctx.fillRect(0,0,ctx.canvas.width,ctx.canvas.height);
        if(a>0)
        { 
            ctx.globalAlpha = a;
            ctx.drawImage(images[_idx1].img, MODE.LMARGIN, MODE.TMARGIN, images[_idx1].img.width, images[_idx1].img.height);
        }
        if(b>0)
        {
            ctx.globalAlpha = b; 
            ctx.drawImage(images[idx2].img, MODE.LMARGIN, MODE.TMARGIN, images[idx2].img.width, images[idx2].img.height);
        }
    }

    if(_anim >= 1.0)
    {
        if(_pause < MODE.PAUSE)
        {
            _pause++;
            return;
        }
         _pause = 0;
         _anim  = 0;
         _idx1  = (_idx1+1) % images.length;
         return;
    }
    idx2 = (_idx1+1) % images.length;
    _anim += .05;
    draw(1.0 - _anim, _anim);
}

function slide(images, w, h)
{
    function draw(a, b, c)
    {
        ctx.fillStyle = "rgb(255,255,255)";
        ctx.fillRect(0,0,ctx.canvas.width,ctx.canvas.height);
 
        var d1 = depl + images[_idx1].img.width;
        var d2 = d1+ images[idx2].img.width;
 
       
        ctx.globalAlpha = Math.max(0.1,a);
        ctx.drawImage(images[_idx1].img, MODE.LMARGIN + depl, MODE.TMARGIN, images[_idx1].img.width, images[_idx1].img.height);


        ctx.globalAlpha = Math.max(0.1,c);
        ctx.drawImage(images[idx3].img, MODE.LMARGIN+d2 , MODE.TMARGIN, images[idx3].img.width, images[idx3].img.height);
        
        ctx.globalAlpha = Math.max(0.1,b);
        ctx.drawImage(images[idx2].img, MODE.LMARGIN+d1, MODE.TMARGIN, images[idx2].img.width, images[idx2].img.height);
       // log(images[idx2].img.src);
    }
    _anim++;
    if(_anim > (images[_idx1].img.width))
    {
        if(_pause < MODE.PAUSE)
        {
            _pause++;

            if(0 == _pause)
            {
                draw(.03,1,0.2);
            }
            return;
        }
        _anim  = 0;
        _pause = 0;
        _idx1  = (_idx1+1) % images.length;
    }
    idx2     = (_idx1+1) % images.length;
    idx3     = (_idx1+2) % images.length;
    _anim    += (MODE.SPEED);
    var depl = -_anim;


    draw(1 - (Math.min(1.0, Math.abs(depl) / images[_idx1].img.width)),
              Math.min(1.0, Math.abs(depl) / images[_idx1].img.width),
              0.2);        
}

function renderIE()
{
    idx2  = (_idx1+1) % _images.length;
    idx3  = (_idx1+2) % _images.length;
    document.getElementById("ie0").innerHTML  = "<img src=\'"+_images[_idx1] +"\' class=\'ietrans\' />";
    document.getElementById("ie1").innerHTML  = "<img src=\'"+_images[idx2]  +"\' />";
    document.getElementById("ie2").innerHTML  = "<img src=\'"+_images[idx3]  +"\' class=\'ietrans\' />";
    _idx1  = (_idx1+1) % _images.length;
    setTimeout("renderIE()", 2000);

}



