var mp_timerlen = 5;
var mp_slideAniLen = 400;
var mp_timerID = new Array();
var mp_startTime = new Array();
var mp_obj = new Array();
var mp_endHeight = new Array();
var mp_moving = new Array();
var mp_dir = new Array();

function mp_slidedown(objname){
        if(mp_moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; 

        mp_moving[objname] = true;
        mp_dir[objname] = "down";
        mp_startslide(objname);
}

function mp_slideup(objname){
        if(mp_moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; 

        mp_moving[objname] = true;
        mp_dir[objname] = "up";
        mp_startslide(objname);
}

function mp_startslide(objname){
        mp_obj[objname] = document.getElementById(objname);

        mp_endHeight[objname] = parseInt(mp_obj[objname].style.height);
        mp_startTime[objname] = (new Date()).getTime();

        if(mp_dir[objname] == "down"){
                mp_obj[objname].style.height = "1px";
        }

        mp_obj[objname].style.display = "block";

        mp_timerID[objname] = setInterval('mp_slidetick(\'' + objname + '\');',mp_timerlen);
}

function mp_slidetick(objname){
        var elapsed = (new Date()).getTime() - mp_startTime[objname];

        if (elapsed > mp_slideAniLen)
                mp_endslide(objname)
        else {
                var d =Math.round(elapsed / mp_slideAniLen * mp_endHeight[objname]);
                if(mp_dir[objname] == "up")
                        d = mp_endHeight[objname] - d;

                mp_obj[objname].style.height = d + "px";
        }

        return;
}

function mp_endslide(objname){
        clearInterval(mp_timerID[objname]);

        if(mp_dir[objname] == "up")
                mp_obj[objname].style.display = "none";

        mp_obj[objname].style.height = mp_endHeight[objname] + "px";

        delete(mp_moving[objname]);
        delete(mp_timerID[objname]);
        delete(mp_startTime[objname]);
        delete(mp_endHeight[objname]);
        delete(mp_obj[objname]);
        delete(mp_dir[objname]);

        return;
}

function mp_closegroup(objprefix){
    var oAllDivs = document.getElementsByTagName("div");
	var iNoOfDivs = oAllDivs.length;
	for (var iLoop = 0; iLoop < iNoOfDivs ; iLoop ++){
		var oThisDiv = oAllDivs[iLoop];
		if ((oThisDiv.id.indexOf(objprefix + 'Row') > -1)) {
		    mp_slideup(oThisDiv.id);
		}
		if ((oThisDiv.id.indexOf(objprefix + 'Header') > -1)) {
		    oThisDiv.className = 'summaryRow';
		}
	} 
	return true;
}

function mp_toggleslide(objname){
  if(document.getElementById(objname).style.display == "none"){
    mp_slidedown(objname);
  }else{
    mp_slideup(objname);
  }
}






function mp_slideRight(objname) {
    if (mp_moving[objname])
        return;

    if (document.getElementById(objname).style.display != "none")
        return;

    mp_moving[objname] = true;
    mp_dir[objname] = "right";
    mp_startslideHorizontal(objname);
}

function mp_slideLeft(objname) {
    if (mp_moving[objname])
        return;

    if (document.getElementById(objname).style.display == "none")
        return;

    mp_moving[objname] = true;
    mp_dir[objname] = "left";
    mp_startslideHorizontal(objname);
}

function mp_startslideHorizontal(objname) {
    mp_obj[objname] = document.getElementById(objname);

    mp_endHeight[objname] = parseInt(mp_obj[objname].style.width);
    mp_startTime[objname] = (new Date()).getTime();

    if (mp_dir[objname] == "right") {
        mp_obj[objname].style.width = "1px";
    }

    mp_obj[objname].style.display = "block";

    mp_timerID[objname] = setInterval('mp_slidetickHorizontal(\'' + objname + '\');', mp_timerlen);
}

function mp_slidetickHorizontal(objname) {
    var elapsed = (new Date()).getTime() - mp_startTime[objname];

    if (elapsed > mp_slideAniLen)
        mp_endslideHorizontal(objname)
    else {
        var d = Math.round(elapsed / mp_slideAniLen * mp_endHeight[objname]);
        if (mp_dir[objname] == "left")
            d = mp_endHeight[objname] - d;

        mp_obj[objname].style.width = d + "px";
    }

    return;
}

function mp_endslideHorizontal(objname) {
    clearInterval(mp_timerID[objname]);

    if (mp_dir[objname] == "left")
        mp_obj[objname].style.display = "none";

    mp_obj[objname].style.width = mp_endHeight[objname] + "px";

    delete (mp_moving[objname]);
    delete (mp_timerID[objname]);
    delete (mp_startTime[objname]);
    delete (mp_endHeight[objname]);
    delete (mp_obj[objname]);
    delete (mp_dir[objname]);

    return;
}
