var TIMER = 5; var SLIDE = 200;
var timerID = new Array(); var startTime = new Array(); var obj = new Array(); var endWidth = new Array();
var endHeight = new Array(); var moving = new Array(); var dir = new Array();
var BlockWidth = new Array(); var BlockHeight = new Array();
var StartWidth = new Array(); var StartHeight = new Array();

function ProjectInfo(objname,ButtonEvent) {
		var DivWidthPx = document.getElementById('ImgSrc').style.width;
		var DivWidth = parseInt(DivWidthPx);
		var NewimageWidth = DivWidth+BlockWidth[objname]+85+10;
		document.getElementById('GalleryMT').style.width = NewimageWidth+"px";
		
		if(ButtonEvent == "ButtonLeft") {ButtonLeftDisplay = "none"; ButtonUpDisplay = "block";}
		else if(ButtonEvent == "ButtonUp") {ButtonLeftDisplay = "block"; ButtonUpDisplay = "none";}
		document.getElementById('ButtonLeft').style.display = ButtonLeftDisplay;
		document.getElementById('ButtonUp').style.display = ButtonUpDisplay;
}
function slideleft(objname,BLOCKWIDTH,BLOCKHEIGHT,StartWIDTH,StartHEIGHT){
        if(moving[objname])
                return;
        if(document.getElementById(objname).style.width != "200px")
                return; // cannot slide left something that is already visible
		BlockWidth[objname] = parseInt(BLOCKWIDTH); BlockHeight[objname] = parseInt(BLOCKHEIGHT);
		StartWidth[objname] = parseInt(StartWIDTH); StartHeight[objname] = parseInt(StartHEIGHT);
        ProjectInfo(objname,'ButtonLeft');
        moving[objname] = true;
        dir[objname] = "left";
        startslide(objname);
}
function slidedown(objname){
		moving[objname] = true;
		dir[objname] = "down";
		startslide(objname);
}
function slideup(objname,BLOCKWIDTH,BLOCKHEIGHT,StartWIDTH,StartHEIGHT){
		if(moving[objname])
				return;
		if(document.getElementById(objname).style.width == "200px")
				return; // cannot slide up something that is already hidden
		BlockWidth[objname] = parseInt(BLOCKWIDTH); BlockHeight[objname] = parseInt(BLOCKHEIGHT);
		StartWidth[objname] = parseInt(StartWIDTH); StartHeight[objname] = parseInt(StartHEIGHT);
        ProjectInfo(objname,'ButtonUp');
		moving[objname] = true;
		dir[objname] = "up";
		startslide(objname);
}
function slideright(objname){
        moving[objname] = true;
        dir[objname] = "right";
        startslide(objname);
}
function startslide(objname){
		obj[objname] = document.getElementById(objname);
		endWidth[objname] = parseInt(obj[objname].style.width)
		endHeight[objname] = parseInt(obj[objname].style.height)
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "left"){
         		obj[objname].style.width = StartWidth[objname]+"px";
        		obj[objname].style.height = StartHeight[objname]+"px";
       }
        obj[objname].style.display = "block";
        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',TIMER);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];
        if(elapsed > SLIDE) {
               	endSlide(objname);
		} else  {
            var x =Math.round(elapsed / SLIDE * BlockWidth[objname]);
            var d =Math.round(elapsed / SLIDE * BlockHeight[objname]);
 			//document.getElementById('test').value = x+"="+d;
				if(dir[objname] == "up" && (d < (BlockHeight[objname]-StartHeight[objname]))) {
                		d = BlockHeight[objname] - d;
                		obj[objname].style.height = d + "px"; }
				else if(dir[objname] == "right" && (x < (BlockWidth[objname]-StartWidth[objname]))) {
                        x = BlockWidth[objname] - x;
                        obj[objname].style.width = x + "px"; }
                        
				else if(dir[objname] == "left" && x > StartWidth[objname]) {
						obj[objname].style.width = x + "px"; }
				else if(dir[objname] == "down" && d > StartHeight[objname]) {
						obj[objname].style.height = d + "px"; }
        }
        return;
}
function endSlide(objname){
		clearInterval(timerID[objname]);
		
        if(dir[objname] == "left") {
        		obj[objname].style.width = BlockWidth[objname] + "px";
				slidedown(objname);
				return; 
				}
        else if(dir[objname] == "down") {
        		obj[objname].style.height = BlockHeight[objname] + "px"; 
        		}
        else if(dir[objname] == "up") {
        		obj[objname].style.height = StartHeight[objname]+"px";
				slideright(objname);
				return; 
				}
        else if(dir[objname] == "right") {
                obj[objname].style.width = StartWidth[objname]+"px";
                obj[objname].style.display = "block"; 
                }

		delete(timerID[objname]);
		delete(startTime[objname]);
		delete(moving[objname]);
		delete(endWidth[objname]);
		delete(endHeight[objname]);
		delete(BlockWidth[objname]);
		delete(BlockHeight[objname]);
		delete(StartWidth[objname]);
		delete(StartHeight[objname]);
		delete(obj[objname]);
		delete(dir[objname]);
		return;
}
