var resizeDisplayTimer;
var resizeDisplayObj;
var resizeDisplayToHeight;
var resizeDisplayToWidth;

function resizeDisplay( obj, fx, toHeight, toWidth, amount){
	var defaultFX = 'unfold';
	var defaultAmount = 4;
	resizeDisplayObj = obj;
	resizeDisplayToHeight = toHeight;
	resizeDisplayToWidth = toWidth;
	if(fx == '' || fx == null){ fx = defaultFX;}
	if(amount == '' || amount == null){ amount = defaultAmount;}

	if(resizeDisplayToHeight == null || resizeDisplayToHeight == '' && resizeDisplayToWidth == null || resizeDisplayToWidth == ''){
		actionFX( 'close', fx, amount);
	}else {
		actionFX( 'open', fx, amount);
	}
}

function actionFX( action, fx, amount){

	if(fx == 'unfold'){
		if(action == 'open'){
			if(parseInt(resizeDisplayObj.style.height) < resizeDisplayToHeight){
				resizeDisplayObj.style.height = (parseInt(resizeDisplayObj.style.height) + amount) + 'px';
				resizeDisplayObj.style.top = (parseInt(resizeDisplayObj.style.top) - (amount / 2)) + 'px';
			}else if(parseInt(resizeDisplayObj.style.width) < resizeDisplayToWidth){
				resizeDisplayObj.style.width = (parseInt(resizeDisplayObj.style.width) + (amount * 2)) + 'px';
				resizeDisplayObj.style.left = (parseInt(resizeDisplayObj.style.left) - amount) + 'px';
			}
		
			if(parseInt(resizeDisplayObj.style.height) < resizeDisplayToHeight || parseInt(resizeDisplayObj.style.width) < resizeDisplayToWidth){
				resizeDisplayTimer = setTimeout( "actionFX( '" + action + "', '" + fx + "', " + amount + ")", 2);
			}else {
				clearTimeout(resizeDisplayTimer);
				//if there is a child node, set display to block
				if(resizeDisplayObj.childNodes[0] != null){ resizeDisplayObj.childNodes[0].style.display = 'block';}
			}
		}
		else if(action == 'close'){
			//if there is a child node, set display to none 
			if(resizeDisplayObj.childNodes[0] != null){ resizeDisplayObj.innerHTML = '';}
			
			if(parseInt(resizeDisplayObj.style.width) > 10){
				if((parseInt(resizeDisplayObj.style.width) - (amount * 2)) <= 10){
					resizeDisplayObj.style.width = 10 + 'px';
				}else{
					resizeDisplayObj.style.width = (parseInt(resizeDisplayObj.style.width) - (amount * 2)) + 'px';
					resizeDisplayObj.style.left = (parseInt(resizeDisplayObj.style.left) + amount) + 'px';
				}
			}else if(parseInt(resizeDisplayObj.style.height) > 10){
				if((parseInt(resizeDisplayObj.style.height) - amount) <= 10){
					resizeDisplayObj.style.height = 0 + 'px';
					resizeDisplayObj.style.width = 0 + 'px';
				}else{
					resizeDisplayObj.style.height = (parseInt(resizeDisplayObj.style.height) - amount) + 'px';
					resizeDisplayObj.style.top = (parseInt(resizeDisplayObj.style.top) + (amount / 2)) + 'px';
				}
			}
			if(parseInt(resizeDisplayObj.style.width) > 10 || parseInt(resizeDisplayObj.style.height) > 10){
				resizeDisplayTimer = setTimeout( "actionFX( '" + action + "', '" + fx + "', " + amount + ")", 2);
			}else {
				clearTimeout(resizeDisplayTimer);			
				document.body.removeChild(resizeDisplayObj);
				unfreeze();
			}
		}
	}
	
	if(fx == 'fade'){
	//  filter: alpha(opacity = 100); opacity: 1; -moz-opacity: 1;
		if(action == 'open'){
			if(resizeDisplayObj.style.MozOpacity){
				if(resizeDisplayObj.style.MozOpacity < 1.0){ resizeDisplayObj.style.MozOpacity += 0.1;}
				if(resizeDisplayObj.style.MozOpacity < 1.0){
					resizeDisplayTimer = setTimeout( "actionFX( '" + action + "', '" + fx + "', " + amount + ")", 2);
				}else {
					clearTimeout(resizeDisplayTimer);
				}
			}else if(resizeDisplayObj.style.opacity){
				if(resizeDisplayObj.style.opacity < 1.0){ resizeDisplayObj.style.opacity += 0.1;}
				if(resizeDisplayObj.style.opacity < 1.0){
					resizeDisplayTimer = setTimeout( "actionFX( '" + action + "', '" + fx + "', " + amount + ")", 2);
				}else {
					clearTimeout(resizeDisplayTimer);
				}
			}else if(resizeDisplayObj.filters.alpha.opacity){
				if(resizeDisplayObj.style.opacity < 100){ resizeDisplayObj.style.opacity += 10;}
				if(resizeDisplayObj.style.opacity < 100){
					resizeDisplayTimer = setTimeout( "actionFX( '" + action + "', '" + fx + "', " + amount + ")", 2);
				}else {
					clearTimeout(resizeDisplayTimer);
				}
			}
		}
		else if(action == 'close'){
			if(resizeDisplayObj.style.opacity){
				if(resizeDisplayObj.style.opacity > 0){ resizeDisplayObj.style.opacity -= 0.1;}
				if(resizeDisplayObj.style.opacity > 0){
					resizeDisplayTimer = setTimeout( "actionFX( '" + action + "', '" + fx + "', " + amount + ")", 2);
				}else {
					clearTimeout(resizeDisplayTimer);	
					document.body.removeChild(resizeDisplayObj);
					unfreeze();
				}
			}else if(resizeDisplayObj.filters.alpha.opacity){
				if(resizeDisplayObj.style.opacity > 0){ resizeDisplayObj.style.opacity -= 10;}
				if(resizeDisplayObj.style.opacity > 0){
					resizeDisplayTimer = setTimeout( "actionFX( '" + action + "', '" + fx + "', " + amount + ")", 2);
				}else {
					clearTimeout(resizeDisplayTimer);	
					document.body.removeChild(resizeDisplayObj);
					unfreeze();
				}
			}
		}
	}

}