function getDocHeight() {
    var db = document.body;
    var dde = document.documentElement;
    return Math.max(db.scrollHeight, dde.scrollHeight, db.offsetHeight, dde.offsetHeight, db.clientHeight, dde.clientHeight);
}

function checkerIn(fromNode, toNode, gsw, gsh) {
    tmpNode = dojo.clone(fromNode);
    tmpNode.innerHTML = toNode.innerHTML;
    coord = dojo.coords(fromNode,false);
    //h = dojo.style(idTextNode,"height");
    //w = dojo.style(idTextNode,"width");
    //l = dojo.style(idTextNode,)

    console.debug("coordinates : " + coord.w + " " + coord.h + " " + coord.x + " " + coord.y);

    w = Math.round((coord.w / gsw))+1;
    h = Math.round((coord.h / gsh))+1;

    //n = dojo.create("div")

    y = coord.y;
    x = coord.x;
    nh = coord.h;
    nw = coord.w;


    animT = dojo.fadeIn({node:fromNode,duration:1});

    var d = 0;

    var a,totala=[],cn,fct;
    //var destr = function(xn) { return function(){dojo.destroy(xn);} };
    //alert("ok");
    for (i=1;i<=gsh;i++) {
        //y = coord.y;
        for (j=1;j<=gsw;j++) {
            cn=dojo.clone(tmpNode);
            //alert(cn.innerHTML);
            //rect(top,right,bottom,left)
            dojo.body().appendChild(cn);
            console.debug("rect("+(h*(i-1))+"px,"+(w*(j)+1)+"px,"+(h*(i)+1)+"px,"+(w*(j-1))+"px) for (w:" + nw + " h:" +nh + " x:" + x + " y:" + y + ")" );
            dojo.style(cn,{position:"absolute",top:y,left:x,visibility:"visible",opacity:0,clip:"rect("+(h*(i-1))+"px,"+(w*(j)+1)+"px,"+(h*(i)+1)+"px,"+(w*(j-1))+"px)"});
            //dojo.style(cn[i,j],{position:"absolute",top:y,left:x,visibility:"visible",opacity:1});


            d = (i+j-2)*200;
            //a1 = dojo.fadeIn({node:cn,duration:500,delay:d});
            a = dojo.animateProperty({node:cn,duration:500,delay:d,properties:{backgroundColor:{start:'rgb(190,230,180)',end:'rgb(49,81,81)'},opacity:1 } });
            //a = dojo.fx.combine([a2]);
            //dojo.connect(a,"play",this,destr);
            fct=function(xn){
                return function(){
                dojo.destroy(xn);
                };
            }(cn);

            dojo.connect(animT,"onEnd",this,fct);

            //d += 100;
            totala.push(a);

            //y = Math.round(y + h);
        }

        //totala.push(a);
        //x = Math.round(x + w);
        //alert(i);
    }

    anim3 = dojo.fx.combine(totala);

    dojo.connect(anim3,"onBegin",function() {
        fromNode.innerHTML = toNode.innerHTML;
        dojo.style(fromNode,{opacity:0,visibility:"visible"});
    });

    return dojo.fx.chain([anim3,animT]);
}

function checkerOut(fromNode, toNode, gsw, gsh) {
    tmpNode = dojo.clone(toNode);
    //tmpNode.innerHTML = toNode.innerHTML;
    coord = dojo.coords(fromNode,false);
    //h = dojo.style(idTextNode,"height");
    //w = dojo.style(idTextNode,"width");
    //l = dojo.style(idTextNode,)

    console.debug("coordinates : " + coord.w + " " + coord.h + " " + coord.x + " " + coord.y);

    w = Math.round((coord.w / gsw))+1;
    h = Math.round((coord.h / gsh))+1;

    //n = dojo.create("div")

    y = coord.y;
    x = coord.x;
    nh = coord.h;
    nw = coord.w;


    animT = dojo.fadeIn({node:fromNode,duration:1});

    var d = 0;

    var a,totala=[],cn,fct;
    //var destr = function(xn) { return function(){dojo.destroy(xn);} };
    //alert("ok");
    for (i=1;i<=gsh;i++) {
        //y = coord.y;
        for (j=1;j<=gsw;j++) {
            cn=dojo.clone(tmpNode);
            //alert(cn.innerHTML);
            //rect(top,right,bottom,left)
            dojo.body().appendChild(cn);
            console.debug("rect("+(h*(i-1))+"px,"+(w*(j)+1)+"px,"+(h*(i)+1)+"px,"+(w*(j-1))+"px) for (w:" + nw + " h:" +nh + " x:" + x + " y:" + y + ")" );
            dojo.style(cn,{position:"absolute",top:y,left:x,visibility:"visible",opacity:0,clip:"rect("+(h*(i-1))+"px,"+(w*(j)+1)+"px,"+(h*(i)+1)+"px,"+(w*(j-1))+"px)"});
            //dojo.style(cn[i,j],{position:"absolute",top:y,left:x,visibility:"visible",opacity:1});


            d = (gsw+gsh-i-j)*200;
            //a1 = dojo.fadeIn({node:cn,duration:500,delay:d});
            /*fctVisible = function(xn) {
                return function() {
                    dojo.style(xn,{opacity:0.5});
                };
            }(cn);    */
            a = dojo.animateProperty({node:cn,duration:500,delay:d,properties:{backgroundColor:{start:'rgb(190,230,180)',end:'rgb(49,81,81)'},opacity:1} });
            //dojo.connect(a2,"onBegin",this,fctVisible);

            //a = dojo.fx.combine([a2]);
            //dojo.connect(a,"play",this,destr);
            fct=function(xn){
                return function(){
                dojo.destroy(xn);
                };
            }(cn);

            dojo.connect(animT,"onEnd",this,fct);

            //d += 100;
            totala.push(a);

            //y = Math.round(y + h);
        }

        //totala.push(a);
        //x = Math.round(x + w);
        //alert(i);
    }

    anim3 = dojo.fx.combine(totala);

    dojo.connect(anim3,"onEnd",function() {
        fromNode.innerHTML = toNode.innerHTML;
        dojo.style(fromNode,{opacity:0,visibility:"hidden"});
    });

    return dojo.fx.chain([anim3,animT]);
}

function getFile(fileName, fct) {
	var xhrArgs = { url:fileName,handleAs:"text",preventCache:true,
			load:function(data) {
				//data = data.replace(/\n/g,"<br/>");
				data = data.replace(/\t/g,"&nbsp;&nbsp;&nbsp;");
                fct(data);
            }
	};
	dojo.xhrGet(xhrArgs);
}
