var timerlen = 5;
var slideAniLen = 250;
var direction = new Array();
var timers = new Array();
var startingTime = new Array();
var myObj = new Array();
var endwidth = new Array();
var animInProgressEvent = false;

function sliding(passedObj, passedDir){
		if(animInProgressEvent)
				return;
		else
				animInProgressEvent = true;
	
		if (passedObj == 'event2'){
			if (passedDir == "right"){
				slidingLeft('event1');
				slidingRight('event2');
				
			}else{
				slidingLeft('event3');
				slidingRight('event2');
				
			}
		}else if(passedObj == 'event1'){
			slidingLeft('event2');
			slidingRight('event1');
			
		}else{
			slidingLeft('event2');
			slidingRight('event3');
			
		}
}

function slidingRight(passedObj){
        direction[passedObj] = "right";
        startslideevent(passedObj);
}

function slidingLeft(passedObj){
        direction[passedObj] = "left";
        startslideevent(passedObj);
}

function startslideevent(passedObj){
        myObj[passedObj] = document.getElementById(passedObj);
        endwidth[passedObj] = parseInt(myObj[passedObj].style.width);
        startingTime[passedObj] = (new Date()).getTime();
        if(direction[passedObj] == "right"){
                myObj[passedObj].style.width = "1px";
        }
        myObj[passedObj].style.display = "block";
        timers[passedObj] = setInterval('slidetickevent(\'' + passedObj + '\');',timerlen);
}

function slidetickevent(passedObj){
        var elapsed = (new Date()).getTime() - startingTime[passedObj];
        if (elapsed > slideAniLen)
                endSlideEvent(passedObj)
        else {
                var d =Math.round(elapsed / slideAniLen * endwidth[passedObj]);
                if(direction[passedObj] == "left")
                        d = endwidth[passedObj] - d;
                myObj[passedObj].style.width = d + "px";
        }
        return;
}

function endSlideEvent(passedObj){
        clearInterval(timers[passedObj]);
        if(direction[passedObj] == "left")
                myObj[passedObj].style.display = "none";
        myObj[passedObj].style.width = endwidth[passedObj] + "px";
        delete(timers[passedObj]);
        delete(startingTime[passedObj]);
        delete(endwidth[passedObj]);
        delete(myObj[passedObj]);
        delete(direction[passedObj]);
		animInProgressEvent = false;
        return;
}