var Size = {
	/*opperators and values
	skip(int)
	pause(int)
	maxHeight(child|int|same)
	maxWidth(child|int|same)
	timerVar(string)
	*/
	grow: function(ref,para){
		//set default paramenters
		var paraObj = {
		skip: 10,
		pause: 20,
		maxHeight: "child",
		maxWidth: "child",
		timerVar: "t"
		}
		
		//incorporate adjusted parameters
		paraObj = Object.extend(paraObj,para)
		
		ref = Element.toId(ref)
		
		if(paraObj.maxHeight == "child" || paraObj.maxWidth == "child"){
			//get dementions of inner container
			var temp = Element.getChildDem($(ref))
			
			if(paraObj.maxHeight == "child"){
				paraObj.maxHeight = temp.height
			}
			if(paraObj.maxWidth == "child"){
				paraObj.maxWidth = temp.width
			}
		}
		
		Global.timerVarH = paraObj.timerVar + "h"
		Global.timerVarW = paraObj.timerVar + "w"
		
		//grow width
		if(paraObj.maxWidth !== "same"){
			clearInterval(Global[Global.timerVarW])
			//Size.growI('width',ref,paraObj.maxWidth,paraObj.skip,Global.timerVarW)
			Global[Global.timerVarW] = setInterval("Size.growI('width','"+ref+"',"+paraObj.maxWidth+","+paraObj.skip+",'"+Global.timerVarW+"')",paraObj.pause)
		}
		
		//grow height
		if(paraObj.maxHeight !== "same"){
			clearInterval(Global[Global.timerVarH])
			//Size.growI('height',ref,paraObj.maxWidth,paraObj.skip,Global.timerVarH)
			Global[Global.timerVarH] = setInterval("Size.growI('height','"+ref+"',"+paraObj.maxHeight+","+paraObj.skip+",'"+Global.timerVarH+"')",paraObj.pause)
		}
	},
	/*opperators and values
	skip(int)
	pause(int)
	minHeight(innerDiv|int|same)
	minWidth(innerDiv|int|same)
	timerVar(string)
	*/
	shrink: function(ref,para){
		//set default paramenters
		var paraObj = {
		skip: 10,
		pause: 20,
		minHeight: 0,
		minWidth: 0,
		timerVar: "t"
		}
		
		//incorporate adjusted parameters
		paraObj = Object.extend(paraObj,para)
		
		ref = Element.toId(ref)
		
		if(paraObj.minHeight == "child" || paraObj.minWidth == "child"){
			//get dementions of inner container
			var temp = Element.getChildDem($(ref))
			if(paraObj.minHeight == "child"){
				paraObj.minHeight = temp.height
			}
			if(paraObj.minWidth == "child"){
				paraObj.minWidth = temp.width
			}
		}
		
		Global.timerVarH = paraObj.timerVar + "h"
		Global.timerVarW = paraObj.timerVar + "w"
		
		//shrink width
		if(paraObj.minWidth !== "same"){
			clearInterval(Global[Global.timerVarW])
			Size.shrinkI('width',ref,paraObj.maxWidth,paraObj.skip,Global.timerVarW)
			Global[Global.timerVarW] = setInterval("Size.shrinkI('width','"+ref+"',"+paraObj.minWidth+","+paraObj.skip+",'"+Global.timerVarW+"')",paraObj.pause)
		}
		
		//shrink height
		if(paraObj.minHeight !== "same"){
			clearInterval(Global[Global.timerVarH])
			Size.shrinkI('height',ref,paraObj.maxWidth,paraObj.skip,Global.timerVarH)
			Global[Global.timerVarH] = setInterval("Size.shrinkI('height','"+ref+"',"+paraObj.minHeight+","+paraObj.skip+",'"+Global.timerVarH+"')",paraObj.pause)
		}
	},
	
	growI: function(d,r,p,i,t){
		var obj = $(r).style
		if((parseInt(obj[d] || Element.getStyle($(r),d)) + i) <= p)return obj[d] = parseInt(obj[d] || Element.getStyle($(r),d)) + i + 'px'
		if(parseInt(obj[d] || Element.getStyle($(r),d)) < p)return obj[d] = p + 'px'
		clearInterval(Global[t])
	},
	
 	shrinkI: function(d,r,p,i,t){
		var obj = $(r).style
		if((parseInt(obj[d] || Element.getStyle($(r),d)) - i) >= p)return obj[d] = parseInt(obj[d] || Element.getStyle($(r),d)) - i + 'px'
		if(parseInt(obj[d] || Element.getStyle($(r),d)) > p)return obj[d] = p + 'px'
		clearInterval(Global[t])
	}

}
	
var Opacity = {
	/*opperators and values
	skip(int)
	pause(int)
	maxO(float)
	timerVar(string)
	onComplete
	*/
	plus: function(ref,para){
		
		//set default paramenters
		var paraObj = {
			skip: .05,
			pause: 40,
			maxO: 1,
			timerVar: "t",
			onComplete: false
		}
		
		paraObj = Object.extend(paraObj,para)
		ref = Element.toId(ref)
		Global.timerVar = paraObj.timerVar
		
		clearInterval(Global[Global.timerVar])
		Opacity.plusI(ref,paraObj.maxO,paraObj.skip,Global.timerVar,paraObj.onComplete)
		Global[Global.timerVar] = setInterval("Opacity.plusI('"+ref+"',"+paraObj.maxO+","+paraObj.skip+",'"+Global.timerVar+"',"+paraObj.onComplete+")",paraObj.pause)
	},
	
	/*opperators and values
	skip(int)
	pause(int)
	minO(float)
	timerVar(string)
	*/
	minus: function(ref, para){
		//set default paramenters
			var paraObj = {
			skip: .05,
			pause: 40,
			minO: 0,
			timerVar: "t",
			onComplete: false
		}
		
		paraObj = Object.extend(paraObj,para)
		
		ref = Element.toId(ref)
		
		Global.timerVar = paraObj.timerVar
		
		clearInterval(Global[Global.timerVar])
		Opacity.minusI(ref,paraObj.minO,paraObj.skip,Global.timerVar,paraObj.onComplete)
		Global[Global.timerVar] = setInterval("Opacity.minusI('"+ref+"',"+paraObj.minO+","+paraObj.skip+",'"+Global.timerVar+"',"+paraObj.onComplete+")",paraObj.pause)
	},
	
	plusI: function(r,o,i,t,c){
		
		if(Global.ie){
			var co = parseInt($(r).filters.Alpha.Opacity)
			if(co < (parseFloat(o)*100))return $(r).filters.Alpha.Opacity = co + (parseFloat(i)*100)
			clearInterval(Global[t])
			if(c)c()
		}else{
			var co = parseFloat($(r).style.opacity || Element.getStyle($(r),'opacity'))
			if(co < parseFloat(o))return $(r).style.opacity= (co + parseFloat(i))
			clearInterval(Global[t])
			if(c)c()
		}
	},
	
	minusI: function(r,o,i,t,c){
		if(Global.ie){
			var co = parseInt($(r).filters.Alpha.Opacity)
			if(co > (parseFloat(o)*100))return $(r).filters.Alpha.Opacity = co - (parseFloat(i)*100)
			clearInterval(Global[t])
			if(c)c()
		}else{
			var co = parseFloat($(r).style.opacity || Element.getStyle($(r),'opacity'))
			if(co > parseFloat(o))return $(r).style.opacity= (co - parseFloat(i))
			clearInterval(Global[t])
			if(c)c()
		}
	}
}

var Scroll = {
	/*opperators and values
	skip(int)
	pause(int)
	point(px)
	timerVar(string)
	onComplete
	*/
	down: function(ref, para){
		
		//set default paramenters
			var paraObj = {
			skip: 10,
			pause: 10,
			point: 0,
			timerVar: "t",
			onComplete: false
		}
		
		paraObj = Object.extend(paraObj,para)
		
		ref = Element.toId(ref)
		
		Global.timerVar = paraObj.timerVar
		clearInterval(Global[Global.timerVar])
		Scroll.minusI('top',ref,paraObj.point,paraObj.skip,Global.timerVar,paraObj.onComplete)
		Global[Global.timerVar] = setInterval("Scroll.minusI('top','"+ref+"',"+paraObj.point+","+paraObj.skip+",'"+Global.timerVar+"',"+ paraObj.onComplete +")",paraObj.pause)
	},
	
	up: function(ref, para){
		
		//set default paramenters
			var paraObj = {
			skip: 10,
			pause: 10,
			point: 0,
			timerVar: "t",
			onComplete: false
		}
		
		paraObj = Object.extend(paraObj,para)
		
		ref = Element.toId(ref)
		
		Global.timerVar = paraObj.timerVar
		
		clearInterval(Global[Global.timerVar])
		Scroll.plusI('top',ref,paraObj.point,paraObj.skip,Global.timerVar,paraObj.onComplete)
		Global[Global.timerVar] = setInterval("Scroll.plusI('top','"+ref+"',"+paraObj.point+","+paraObj.skip+",'"+Global.timerVar+"',"+ paraObj.onComplete +")",paraObj.pause)
	},
	
	left: function(ref, para){
		//set default paramenters
			var paraObj = {
			skip: 10,
			pause: 10,
			point: 0,
			timerVar: "t",
			onComplete: false
		}
		
		paraObj = Object.extend(paraObj,para)
		
		ref = Element.toId(ref)
		
		Global.timerVar = paraObj.timerVar
		clearInterval(Global[Global.timerVar])
		Scroll.plusI('left',ref,paraObj.point,paraObj.skip,Global.timerVar,paraObj.onComplete)
		Global[Global.timerVar] = setInterval("Scroll.plusI('left','"+ref+"',"+paraObj.point+","+paraObj.skip+",'"+Global.timerVar+"',"+ paraObj.onComplete +")",paraObj.pause)
	},
	
	right: function(ref,para){
		//set default paramenters
			var paraObj = {
			skip: 10,
			pause: 10,
			point: 0,
			timerVar: "t",
			onComplete: false
		}
		
		paraObj = Object.extend(paraObj,para)
		
		ref = Element.toId(ref)
		
		Global.timerVar = paraObj.timerVar
		clearInterval(Global[Global.timerVar])
		Scroll.minusI('left',ref,paraObj.point,paraObj.skip,Global.timerVar,paraObj.onComplete)
		Global[Global.timerVar] = setInterval("Scroll.minusI('left','"+ref+"',"+paraObj.point+","+paraObj.skip+",'"+Global.timerVar+"',"+ paraObj.onComplete +")",paraObj.pause)
	},
	
	minusI: function(d,r,p,i,t,c){
		var obj = $(r).style
		if((parseInt(obj[d] || Element.getStyle($(r),d)) - i) >= p)return obj[d] = parseInt(obj[d] || Element.getStyle($(r),d)) - i + 'px'
		if(parseInt(obj[d] || Element.getStyle($(r),d)) > p)return obj[d] = p + 'px'
		clearInterval(Global[t])
		if(c)c()
	},
	
	plusI: function(d,r,p,i,t,c){
		var obj = $(r).style
		if((parseInt(obj[d] || Element.getStyle($(r),d)) + i) <= p)return obj[d] = parseInt(obj[d] || Element.getStyle($(r),d)) + i + 'px'
		if(parseInt(obj[d] || Element.getStyle($(r),d)) < p)return obj[d] = p + 'px'
		clearInterval(Global[t])
		if(c)c()
	}
	
	
}

var Move = {
	down: Scroll.up,
	up: Scroll.down,
	left: Scroll.right,
	right: Scroll.left
}















