//
// Class TabSwitcher
//
var TabSwitcher = Class.create();
TabSwitcher.prototype = {
	initialize: function (tabLis, tabSelClass, tabDiv, loadingHTML, initialDiv, actualDiv) {
		this.tabSelClass = tabSelClass;
		this.tabDiv = tabDiv;
		this.loadingHTML = loadingHTML;
		this.prevSelDiv = initialDiv;
		this.actualDiv = actualDiv;

		for(i = 0; i < tabLis.length; i++) {
			var aElm;
			if (tabLis[i].tagName.toLowerCase() == 'a') {
				aElm = tabLis[i];
			} else {
				aElm = tabLis[i].getElementsBySelector('a')[0];
			}
			Event.observe(aElm, 'click', this.tabSwitch.bind(this, tabLis[i]));
		}

		for(i = 0; i < tabLis.length; i++) {
			if (tabLis[i].hasClassName(tabSelClass)) {
				this.selLi = tabLis[i];
				break;
			}
		}
	},
	
	tabSwitch: function (tabLi) {
		if (this.selLi != undefined) {
			this.selLi.removeClassName(this.tabSelClass);
		}
		
		var aElm;
		if (tabLi.tagName.toLowerCase() == 'a') {
			aElm = tabLi;
		} else {
			aElm = tabLi.getElementsBySelector('a')[0];
		}
		
		if (aElm.rel.substring(0,4) == 'tab:') {
			var tabName = aElm.rel.substring(4);
			if (this.prevSelDiv != null) {
				$(this.prevSelDiv).hide();
			}
			$(tabName).show();
			this.prevSelDiv = tabName;
		} else {
			$(this.tabDiv).innerHTML = this.loadingHTML;
										
			new Ajax.Updater(this.tabDiv, aElm.rel, {
				method: 'get',
				evalScripts: true
			});
			
			if (this.prevSelDiv != null && this.prevSelDiv != this.tabDiv) {
				$(this.prevSelDiv).hide();
			}
			
			$(this.tabDiv).show();
			this.prevSelDiv = this.tabDiv;
		}
		tabLi.addClassName(this.tabSelClass);
		this.selLi = tabLi;
		if (this.actualDiv!=undefined)
			resizeDiv(this.actualDiv);
		return false;
	}
};

var ParillaTabSwitcher = Class.create();
ParillaTabSwitcher.prototype = {
	initialize: function (tabLis, tabSelClass, tabDiv, loadingHTML, initialDiv, actualDiv) {
		this.tabSelClass = tabSelClass;
		this.tabDiv = tabDiv;
		this.loadingHTML = loadingHTML;
		this.prevSelDiv = initialDiv;
		this.actualDiv = actualDiv;
	
		for(i = 0; i < tabLis.length; i++) {
			var aElm;
			if (tabLis[i].tagName.toLowerCase() == 'a') {
				aElm = tabLis[i];
			} else {
				aElm = tabLis[i].getElementsBySelector('a')[0];
			}
			Event.observe(aElm, 'click', this.tabSwitch.bind(this, tabLis[i]));
		}

		for(i = 0; i < tabLis.length; i++) {
			if (tabLis[i].hasClassName(tabSelClass)) {
				this.selLi = tabLis[i];
				break;
			}
		}
	},
	
	tabSwitch: function (tabLi) {
		if (this.selLi != undefined) {
			this.selLi.removeClassName(this.tabSelClass);
		}
		
		tabLi.addClassName(this.tabSelClass);
		this.selLi = tabLi;
		
		var aElm;
		if (tabLi.tagName.toLowerCase() == 'a') {
			aElm = tabLi;
		} else {
			aElm = tabLi.getElementsBySelector('a')[0];
		}
		
		if (aElm.rel.substring(0,4) == 'tab:') {
			var tabName = aElm.rel.substring(4);
			if (this.prevSelDiv != null) {
				$(this.prevSelDiv).hide();
			}
			$(tabName).show();
			
			if (tabName != 'Telecinco_Shop_today') {
				initActualProgram(tabName); // presente in div_scroller.js
			} 
			else {
				$('scrolldiv0_content').style.top= '0px';
				$('scrolldiv0_theScroll').style.top= '0px';
			}
			this.prevSelDiv = tabName;
			
		} 
		else {
			$(this.tabDiv).innerHTML = this.loadingHTML;
										
			new Ajax.Updater(this.tabDiv, aElm.rel, {
				method: 'get',
				evalScripts: true
			});
			
			if (this.prevSelDiv != null && this.prevSelDiv != this.tabDiv) {
				$(this.prevSelDiv).hide();
			}
			
			$(this.tabDiv).show();
			
			if (this.tabDiv != 'Telecinco_Shop_today') {
				initActualProgram(this.tabDiv);
			} else {
				 $('scrolldiv0_content').style.top= '0px';
				 $('scrolldiv0_theScroll').style.top= '0px';
			}
			
			this.prevSelDiv = this.tabDiv;
		}
		// if (this.actualDiv!=undefined) {
			// resizeDiv(this.actualDiv);
			// initActualProgram(this.actualDiv); // presente in div_scroller.js
		// }
		return false;
	}
};
