function getSections(elName) {

	/* GET SECTIONS */
	var mainEl = document.getElementById(elName);
	var childNum = mainEl.childNodes.length;
	var sectionNum = 0;
	
	for (i=0; i<childNum; i++) {
	
		var newEl = mainEl.childNodes[i];
		
		/* SORT SECTIONS ELEMETNS */
		if (newEl.className == "product_section") {
			sectionNum++;
			newEl.tabsArr = new Array();
			newEl.secNum = sectionNum;
			newEl.style.height = '38px';
			
			/* SORT SECTION BACKGROUND COLOURS */
			var outCol = "#aec3bc";
			if (sectionNum%2 == 0) {
				var outCol = "#8baaa0";
				newEl.dark = true;
				newEl.style.backgroundColor = "#8baaa0";
			} else {
				newEl.style.backgroundColor = "#aec3bc";
			}
			
			newEl.outcol = outCol;
			newEl.isActive = false;
			for (t=0; t<newEl.childNodes.length; t++) {
				if (newEl.childNodes[t].className == 'section_title') {
					newEl.titleDiv = newEl.childNodes[t];
					newEl.childNodes[t].style.color = "#e2eae7";
				}
				if (newEl.childNodes[t].className == 'plusminus') {
					newEl.pmDiv = newEl.childNodes[t];
					if (sectionNum%2 == 0) {
						newEl.childNodes[t].style.backgroundPosition = "-52px 0px";
					}
				}
				if (newEl.childNodes[t].className == 'plusminus') {
					newEl.plusBtn = newEl.childNodes[t];
					newEl.plusBtn.parent = newEl;
					newEl.plusBtn.onmousedown = function() {
						if (!this.parent.isActive) {
							this.tout = new Tween(this.parent.style,'height',Tween.strongEaseOut,parseInt(this.parent.style.height),(this.parent.content.offsetHeight+this.parent.titleDiv.offsetHeight),1,'px');
							this.tout.start();
							this.parent.isActive = true;
							this.parent.pmDiv.style.backgroundPosition = "0px 0px";
							this.parent.style.backgroundColor = "#e2eae7";
							this.parent.titleDiv.style.color = "#8baaa0";
						} else {
							this.tin = new Tween(this.parent.style,'height',Tween.strongEaseIn,parseInt(this.parent.style.height),this.parent.titleDiv.offsetHeight,0.8,'px');
							this.tin.origin = this;
							this.tin.onMotionFinished = function(event) {
								event.target.origin.parent.pmDiv.style.backgroundPosition = "-26px 0px";
								event.target.origin.parent.isActive = false;
								event.target.origin.parent.style.backgroundColor = event.target.origin.parent.outcol;
								event.target.origin.parent.titleDiv.style.color = "#e2eae7";
								if (!event.target.origin.parent.dark) {
									event.target.origin.parent.pmDiv.style.backgroundPosition = "-13px 0px";
								} else {
									event.target.origin.parent.pmDiv.style.backgroundPosition = "-52px 0px";
								}
							}
							this.tin.start();
						}
					}
					newEl.plusBtn.onmouseover = function() {
						this.parent.titleDiv.over = true;
						this.style.cursor = 'pointer';
						if (!this.parent.isActive) {
							this.style.backgroundPosition = "-26px 0px";
						}
						this.parent.style.backgroundColor = "#e2eae7";
						this.parent.titleDiv.style.color = "#8baaa0";
					}
					newEl.plusBtn.onmouseout = function() {
						this.parent.titleDiv.over = false;
						this.style.cursor = 'default';
						if (!this.parent.isActive) {
							if (!this.parent.dark) {
								this.style.backgroundPosition = "-13px 0px";
							} else {
								this.style.backgroundPosition = "-52px 0px";
							}
							this.parent.style.backgroundColor = this.parent.outcol;
							this.parent.titleDiv.style.color = "#e2eae7";
						}
					}
				}
				if (newEl.childNodes[t].className == 'section_container') {
					newEl.tabs = 0;
					newEl.content = newEl.childNodes[t];
					
					/* SORT TABS & ADD TAB EVENTS */
					contEl = newEl.childNodes[t];
					for (n=0; n<contEl.childNodes.length; n++) {
						if (contEl.childNodes[n].className == 'tab_button') {
							newEl.tabs++;
							newEl.tabsArr.push(contEl.childNodes[n]);
							if (newEl.tabs>1) {
								contEl.childNodes[n].style.backgroundPosition = "-148px 0px";
								contEl.childNodes[n].childNodes[0].style.color = "#e2eae7";
								contEl.childNodes[n].active = false;
							} else {
								contEl.childNodes[n].active = true;
							}
							contEl.childNodes[n].parent = newEl;
							contEl.childNodes[n].tabNum = newEl.tabs;
							contEl.childNodes[n].secNum = newEl.secNum;
							contEl.childNodes[n].onmousedown = function() {
								var relative_content = document.getElementById("list_content_"+this.secNum);
								if (parseInt(relative_content.style.top) < -180) {
									this.startpoint = parseInt(relative_content.style.top);
								} else {
									this.startpoint = 0;
								}
								if (!this.active) {
									this.move = new Tween(relative_content.style,'top',Tween.strongEaseOut,this.startpoint,(-183*(this.tabNum-1)),1,'px');
									this.move.start();
								}
								
								this.active = true;
								for (a=0; a<this.parent.tabsArr.length; a++) {
									if ((a+1) != this.tabNum) {
										this.parent.tabsArr[a].active = false;
										this.parent.tabsArr[a].style.backgroundPosition = "-148px 0px"
										this.parent.tabsArr[a].childNodes[0].style.color = "#e2eae7";
									}
								}
								
							}
							contEl.childNodes[n].onmouseover = function() {
								this.style.cursor = "pointer";
								if (!this.active) {
									this.style.backgroundPosition = "0px 0px"
									this.childNodes[0].style.color = "#8baaa0";
								}
							}
							contEl.childNodes[n].onmouseout = function() {
								this.style.cursor = "default";
								if (!this.active) {
									this.style.backgroundPosition = "-148px 0px"
									this.childNodes[0].style.color = "#e2eae7";
								}
							}
						}
					}
				}
			}
					
			/* ADD SECTION EVENTS */
			newEl.titleDiv.parent = newEl;
			newEl.titleDiv.onmouseover = function() {
				this.over = true;
				this.parent.style.cursor = "pointer";
				if (!this.parent.isActive) {
					this.parent.pmDiv.style.backgroundPosition = "-26px 0px";
					this.parent.style.backgroundColor = "#e2eae7";
					this.parent.titleDiv.style.color = "#8baaa0";
				}
			}
			newEl.titleDiv.onmouseout = function() {
				this.over = false;
				this.parent.style.cursor = "default";
				if (!this.parent.isActive) {
					if (!this.parent.dark) {
						this.parent.pmDiv.style.backgroundPosition = "-13px 0px";
					} else {
						this.parent.pmDiv.style.backgroundPosition = "-52px 0px";
					}
					this.parent.style.backgroundColor = this.parent.outcol;
					this.parent.titleDiv.style.color = "#e2eae7";
				}
			}
			newEl.titleDiv.onmousedown = function() {
				if (!this.parent.isActive) {
					this.tout = new Tween(this.parent.style,'height',Tween.strongEaseOut,parseInt(this.parent.style.height),(this.parent.content.offsetHeight+this.parent.titleDiv.offsetHeight),1,'px');
					this.tout.start();
					this.parent.isActive = true;
					this.parent.pmDiv.style.backgroundPosition = "0px 0px";
				} else {
					this.tin = new Tween(this.parent.style,'height',Tween.strongEaseIn,parseInt(this.parent.style.height),this.parent.titleDiv.offsetHeight,0.8,'px');
					this.tin.origin = this;
					this.tin.onMotionFinished = function(event) {
						event.target.origin.parent.pmDiv.style.backgroundPosition = "-26px 0px";
						event.target.origin.parent.isActive = false;
						if (!event.target.origin.over) {
							event.target.origin.parent.style.backgroundColor = event.target.origin.parent.outcol;
							event.target.origin.parent.titleDiv.style.color = "#e2eae7";
							if (!event.target.origin.parent.dark) {
								event.target.origin.parent.pmDiv.style.backgroundPosition = "-13px 0px";
							} else {
								event.target.origin.parent.pmDiv.style.backgroundPosition = "-52px 0px";
							}
						}
					}
					this.tin.start();
				}
			}
		}
	}
}

// ANIMATION
function Delegate() {}
Delegate.create = function (o, f) {
	var a = new Array() ;
	var l = arguments.length ;
	for(var i = 2 ; i < l ; i++) a[i - 2] = arguments[i] ;
	return function() {
		var aP = [].concat(arguments, a) ;
		f.apply(o, aP);
	}
}

Tween = function(obj, prop, func, begin, finish, duration, suffixe){
	this.init(obj, prop, func, begin, finish, duration, suffixe)
}
var t = Tween.prototype;

t.obj = new Object();
t.prop='';
t.func = function (t, b, c, d) { return c*t/d + b; };
t.begin = 0; t.change = 0; t.prevTime = 0; t.prevPos = 0; t.looping = false; t._duration = 0; t._time = 0; t._pos = 0; t._position = 0; t._startTime = 0; t._finish = 0; t.name = ''; t.suffixe = '';
t._listeners = new Array();	
t.setTime = function(t){
	this.prevTime = this._time;
	if (t > this.getDuration()) {
		if (this.looping) {
			this.rewind (t - this._duration);
			this.update();
			this.broadcastMessage('onMotionLooped',{target:this,type:'onMotionLooped'});
		} else {
			this._time = this._duration;
			this.update();
			this.stop();
			this.broadcastMessage('onMotionFinished',{target:this,type:'onMotionFinished'});
		}
	} else if (t < 0) {
		this.rewind();
		this.update();
	} else {
		this._time = t;
		this.update();
	}
}
t.getTime = function(){
	return this._time;
}
t.setDuration = function(d){
	this._duration = (d == null || d <= 0) ? 100000 : d;
}
t.getDuration = function(){
	return this._duration;
}
t.setPosition = function(p){
	this.prevPos = this._pos;
	var a = this.suffixe != '' ? this.suffixe : '';
	this.obj[this.prop] = Math.round(p) + a;
	this._pos = p;
	this.broadcastMessage('onMotionChanged',{target:this,type:'onMotionChanged'});
}
t.getPosition = function(t){
	if (t == undefined) t = this._time;
	return this.func(t, this.begin, this.change, this._duration);
};
t.setFinish = function(f){
	this.change = f - this.begin;
};
t.geFinish = function(){
	return this.begin + this.change;
};
t.init = function(obj, prop, func, begin, finish, duration, suffixe){
	if (!arguments.length) return;
	this._listeners = new Array();
	this.addListener(this);
	if(suffixe) this.suffixe = suffixe;
	this.obj = obj;
	this.prop = prop;
	this.begin = begin;
	this._pos = begin;
	this.setDuration(duration);
	if (func!=null && func!='') {
		this.func = func;
	}
	this.setFinish(finish);
}
t.start = function(){
	this.rewind();
	this.startEnterFrame();
	this.broadcastMessage('onMotionStarted',{target:this,type:'onMotionStarted'});
}
t.rewind = function(t){
	this.stop();
	this._time = (t == undefined) ? 0 : t;
	this.fixTime();
	this.update();
}
t.fforward = function(){
	this._time = this._duration;
	this.fixTime();
	this.update();
}
t.update = function(){
	this.setPosition(this.getPosition(this._time));
	}
t.startEnterFrame = function(){
	this.stopEnterFrame();
	this.isPlaying = true;
	this.onEnterFrame();
}
t.onEnterFrame = function(){
	if(this.isPlaying) {
		this.nextFrame();
		setTimeout(Delegate.create(this, this.onEnterFrame), 0);
	}
}
t.nextFrame = function(){
	this.setTime((this.getTimer() - this._startTime) / 1000);
	}
t.stop = function(){
	this.stopEnterFrame();
	this.broadcastMessage('onMotionStopped',{target:this,type:'onMotionStopped'});
}
t.stopEnterFrame = function(){
	this.isPlaying = false;
}

t.continueTo = function(finish, duration){
	this.begin = this._pos;
	this.setFinish(finish);
	if (this._duration != undefined)
		this.setDuration(duration);
	this.start();
}
t.resume = function(){
	this.fixTime();
	this.startEnterFrame();
	this.broadcastMessage('onMotionResumed',{target:this,type:'onMotionResumed'});
}
t.yoyo = function (){
	this.continueTo(this.begin,this._time);
}

t.addListener = function(o){
	this.removeListener (o);
	return this._listeners.push(o);
}
t.removeListener = function(o){
	var a = this._listeners;	
	var i = a.length;
	while (i--) {
		if (a[i] == o) {
			a.splice (i, 1);
			return true;
		}
	}
	return false;
}
t.broadcastMessage = function(){
	var arr = new Array();
	for(var i = 0; i < arguments.length; i++){
		arr.push(arguments[i])
	}
	var e = arr.shift();
	var a = this._listeners;
	var l = a.length;
	for (var i=0; i<l; i++){
		if(a[i][e])
		a[i][e].apply(a[i], arr);
	}
}
t.fixTime = function(){
	this._startTime = this.getTimer() - this._time * 1000;
}
t.getTimer = function(){
	return new Date().getTime() - this._time;
}

/* EASING EQUATIONS */
Tween.backEaseIn = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158;
	return c*(t/=d)*t*((s+1)*t - s) + b;
}
Tween.backEaseOut = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158;
	return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
}
Tween.backEaseInOut = function(t,b,c,d,a,p){
	if (s == undefined) var s = 1.70158; 
	if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
	return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
}
Tween.strongEaseInOut = function(t,b,c,d){
	return c*(t/=d)*t*t*t*t + b;
	}
Tween.strongEaseIn = function(t,b,c,d){
	return c*(t/=d)*t*t*t*t + b;
	}
Tween.strongEaseOut = function(t,b,c,d){
	return c*((t=t/d-1)*t*t*t*t + 1) + b;
	}

Tween.strongEaseInOut = function(t,b,c,d){
	if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
	return c/2*((t-=2)*t*t*t*t + 2) + b;
	}