if(!window.console){
	window.console = {};
	console.log = function(arg){
		window.status = arg;
	}
};

/* Imports */
var $Y = YAHOO.util;
var $D = YAHOO.util.Dom;
var $E = YAHOO.util.Event;

/* Microsite (Per tab funcionality) */


function laEmpresa() {
	setupTabbedContents();
};

function productosMain() {
	setupTabbedContents();
	var catItems = $D.getElementsByClassName('category','div', 'productosList');
	var colunas = 4;
	var lines = Math.ceil(catItems.length/colunas);
	for(var i = 0; i < lines; i++) {
		var maxHeight = 0;
		for(var z = 0; z < 4; z++) {
			var cel = i*colunas+z;
			maxHeight = Math.max(maxHeight, catItems[cel].clientHeight-30);
		}
		for(var z = 0; z < 4; z++) {
			var cel = i*colunas+z;
			$D.setStyle(catItems[cel], 'height', maxHeight+'px');
			if(i%2==1){ $D.addClass(catItems[cel], 'dark'); }
		}
	}
	catItems = null;
};

function productosCategory(){
	setupTabbedContents();
}

function benefits(){
	setupTabbedContents();
}

function sucursales(){
	/* Setup address menu */
	var selectedIndex = 0;
	var arAddressItem = $D.get('addressMenu').getElementsByTagName('LI');
	$E.on(arAddressItem, 'click', function(e){
		var oldIndex = selectedIndex;
		var parentEl = this.parentNode;
		selectedIndex = this.id.replace('addressItem', '');

		$D.removeClass('addressItem' + oldIndex, 'sel');
		$D.addClass('address' + oldIndex, 'off');
		$D.addClass('addressMap' + oldIndex, 'off');
		
		$D.addClass(this, 'sel');
		$D.removeClass('address' + selectedIndex, 'off');
		$D.removeClass('addressMap' + selectedIndex, 'off');
		
		parentEl = null;
	});
	arAddressItem = null;
	
	/* Setup otros tels */
	var otrosTelsEl = $D.getElementsByClassName('otros', 'A', 'content');
	$E.on(otrosTelsEl, 'click', function(e){
		var otrosUL = $D.getElementsByClassName('otrosTel', 'UL', 'address' + selectedIndex)[0];
		if($D.hasClass(otrosUL, 'off')){
			$D.removeClass(otrosUL, 'off');
		}else{
			$D.addClass(otrosUL, 'off');
		}
		otrosUL = null;
	});
	
	/* Ampliar Mapa */
	
	//setupFreecall();
}


/* Microsite (Tab references) */

var _hasDebug = new DataManager().getDebug();
function emptyFunction(){
	if(_hasDebug){ console.log('emptyFunction'); }
};

var _events = {
	'home': null,
	'laempresa': laEmpresa,
	'productos': null,
	'productos-main': productosMain,
	'productos-category': productosCategory,
	'productos-detail': productosCategory,
	'benefits': benefits,
	'sucursales': sucursales,
	'cobertura': null
};

/* Microsite (Basic functions) */

function fireEvent(){
	try{
		var handler = _events[$D.get('content').className] || emptyFunction;
		handler();
	}catch(e){
		console.log(e.message, e);
	}
};

function loadContent(href, e){
	if(e){ $E.stopEvent(e); }
	
	$D.setStyle('pageContent', 'visibility', 'hidden');
	
	// Get the contents
	var req = new Request(false);
	req.getContent(href, 'pageContent');

	fireEvent();
	$D.setStyle('pageContent', 'visibility', 'visible');
	
	return false;
}

function showPage(el, page){
	$D.removeClass(el.parentNode.getElementsByTagName('SPAN'), 'selected');
	$D.addClass(el, 'selected');
	
	var lastPage = $D.get('productsCategory').getAttribute('rel');
	$D.get('productsCategory').setAttribute('rel', page);
	$D.addClass('productPage' + lastPage, 'off');
	$D.removeClass('productPage' + page, 'off');
}

function _menuEvent(e){
	var anchor = $E.getTarget(e);
	if(anchor.nodeName == 'A'){
		// Remove class 'active' from previous Anchor
		var anchors = anchor.parentNode.parentNode.getElementsByTagName('LI');
		for(var i = 0, l = anchors.length; i < l; i++){
			anchors[i].getElementsByTagName('A')[0].className = ' ';
		}
		anchors = null;
		
		// Set class 'active' on clicked Anchor
		anchor.className = 'active';
		
		// Get the contents
		return loadContent(anchor.href, e);
	}
}

function setupTabbedContents() {

	var _fctn = function(tabId){
		var tabs = $D.getElementsByClassName('tabs', 'ul', tabId);
	
		$E.on(tabs,'click', function(e){
			var t = $E.getTarget(e);
	
			if(t.nodeName == 'EM' || t.nodeName == 'A') {
	
				var container = $D.getElementsByClassName('tabsContainer', 'div', tabId);
				var contents = $D.getElementsByClassName('tabsContent', 'div', container[0]);
				container = null;
				
				$D.removeClass(contents, 'active');
	
				//remove last active
				var liActive = $D.getElementsByClassName('active', 'li', this);
				$D.removeClass(liActive, 'active');
				liActive = null;
	
				var className = t.nodeName == 'EM' ? t.parentNode.className : t.className;
				$D.addClass(t.nodeName == 'EM' ? t.parentNode.parentNode : t.parentNode, 'active');
	
				for(var i = 0, l = contents.length; i < l; i++) {
					if($D.hasClass(contents[i], className)){
						var content = contents[i];
						break;
					}
				}
	
				$D.addClass(content, 'active');
	
				contents = content = null;
			}
			t = null;
		});
	
		tabs = null;
	};
	
	var navTabs = $D.getElementsByClassName('navTabs','div');
	for(var i = 0, l = navTabs.length; i < l; i++) {
		_fctn($D.generateId(navTabs[i],'tab-ctrl'));
	}
	navTabs = null;
};

function makeFreecall(advId, addressId){
	advId = advId || '';
	addressId = addressId || '';

	var phones = [];
	var req = new Request(false);
	req.get('freecall.do?id='+advId + '&addressId=' + addressId, function(o){
		var obj = eval("(" + o.responseText + ")");
		phones = obj.phones || [];
	});
	if(phones.length == 1){
		var phone = phones[0];
		var href = document.location.toString();
		var url = href.substring(0, href.lastIndexOf('/')+1);
		var authurl = 'AuthorizeURL=' + url + 'authFreecall.do?id=' + advId + '&addressId=' + addressId + '&ddi=54&ddn=' + phone.codArea + '&tel=' + phone.numero;
		webVoicePop('Template=73845', authurl);
	}else{
		Stage.openWindow('popupFreecall.do?id='+advId + '&addressId=' + addressId,430,379,'freeCall');
	}
};

function sendMail() {
try {
	var params = [];

	if(this.name.value == '') {
		alert('Ingrese el Nombre');
		this.name.focus();
		return false;
	}

	if(this.surname.value == '') {
		alert('Ingrese el Apellido');
		this.surname.focus();
		return false;
	}

	/*if(this.tel.value == '') {
		alert('Ingrese el Teléfono');
		this.tel.focus();
		return false;
	}*/

	if(this.email.value == '') {
		alert('Ingrese su correo electronico');
		this.email.focus();
		return false;
	} else if(Stage.validateMail(this.email.value)){
		alert('Email inválido');
		this.email.focus();
		return false;
	}

	if(this.message.value == '') {
		alert('Ingrese la Consulta o Sugerencia');
		this.message.focus();
		return false;
	}

	if(this.forward) {
		params.push('forward=' + escape(this.forward.value));
	}
	
	params.push('&name=' + escape(this.name.value));
	params.push('&surname=' + escape(this.surname.value));
	params.push('&tel='+ escape(this.tel.value));
	params.push('&email=' + escape(this.email.value));
	params.push('&message=' + escape(this.message.value));
	//resolucion ticket 15006
	params.push('&company=' + escape(this.company.value));
	
	params = params.join('');

	var req = new Request();
	req.post(this.action, sendMailSuccess, this, params);
	//resolucion ticket 15006
	document.getElementById('token').disabled = true;
	return false;
} catch(e) {
	return false;		
}

}

function sendMailSuccess(req){
	alert(req.responseText);
	//resolucion ticket 15006
	document.getElementById('token').disabled = false;
	this.reset();
	this.name.focus();
}


function selectFirstTab(){
	$E.on('menu', 'click', _menuEvent);
	var anchor = $D.get('menu').getElementsByTagName('LI')[0].getElementsByTagName('A')[0];
	anchor.className = 'active';
	loadContent(anchor.href);
	anchor = null;
};


function init(){
	selectFirstTab();
};

function showOthersPhones() {
	$D.get('mailTelOtrosTels').style.visibility = 'visible';
	Slider.getInstance('mailTelOtrosTelsContent','mailTelOtrosTelsSlider');
};


function hideOthersPhones() {
	$D.get('mailTelOtrosTels').style.visibility = 'hidden';
};

$E.on(window, 'load', init);
