Stage.addObject('Result');

function getUrlParameters( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function subm(ident){
	document.getElementById(ident).submit();
}

function makeFreecall(advId, addressId){
	advId = advId || '';
	addressId = addressId || '';
	var ispopcall = ""; 
	var phones = [];
	var req = new Request(false);
	
	var enla = '';
	if(getUrlParameters('term') != '' && getUrlParameters('termId')!=''){
		enla = '&term=' + getUrlParameters('term') + '&termId=' + getUrlParameters('termId');
	}
	
	/*aca obtiene el telefono para realizar la llamada*/	
	req.get('freecall.do?id='+advId + '&addressId=' + addressId + enla, function(o){
		var obj = eval("(" + o.responseText + ")");
		phones = obj.phones || [];
	});	
		
	/*aca veo si tiene que ser popcall o freecall*/	
	req.get('isPopCall.do?id='+advId + '&addressId=' + addressId+ '&isPopCall=true', function(o){
	/*Obtengo desde la accion de Struts, si tiene o no popcall*/
	ispopcall = eval("" + o.responseText + "");
	
	});
	
	if(phones.length == 1){
	/*	si entra por el if, la funcionalidad responde correctamente*/
		var phone = phones[0];
		
		/* Esta parte de codigo , corresponde a freecall, por eso ahora va dentro del siguiente if/else, cuando ispopcall = false*/
		/*
		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);
		*/
		if(ispopcall == true){
			/*Si es true tiene que abrir el popup de popCall*/
			var urlStr = 'http://desa.codamation.com/popcallws/r.aspx?id='+ addressId +'&ddi=54';
			if(phone.codCelPhone != '') 
				urlStr += phone.codCelPhone;
			urlStr += '&ddn='+ phone.codArea +'&tel='+ phone.numero +'&guiid=1_1',430,379,'popCall';
			Stage.openWindow(urlStr);		
		}else{
			/*Si es false tiene que conservar la antigua funcionalidad, abriendo el popup de freecall*/
			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';
			if(phone.codCelPhone != '') 
				authurl += phone.codCelPhone;
			authurl += '&ddn=' + phone.codArea + '&tel=' + phone.numero;
			
			webVoicePop('Template=73845', authurl);		
		}
		
	}else{
		if(ispopcall == true){
			var urlStr = 'http://desa.codamation.com/popcallws/r.aspx?id='+  addressId  +'&ddi=54';
			if(phone.codCelPhone != '') 
				urlStr += phone.codCelPhone;
			urlStr += '&ddn='+ phone.codArea +'&tel='+ phone.numero +'&guiid=1_1',430,379,'popCall';
			Stage.openWindow(urlStr);		
		}else{
			Stage.openWindow('popupFreecall.do?authurl=11&id='+advId + '&addressId=' + addressId,430,379,'freeCall');
		}		
	}
};

function openCloseActivities(e){
	var el = $E.getTarget(e);
	if(el.nodeName != 'SPAN'){return;}
	if($D.hasClass(el, 'plus')){
		$D.replaceClass(el.parentNode.parentNode, 'hide', 'show');
	}else if($D.hasClass(el, 'minus')){
		$D.replaceClass(el.parentNode.parentNode, 'show', 'hide');
	}
	el = null;
}

var Result = function Result(){
	
	var _self = this;
	var stage = Stage.getInstance();
	var dm = stage.dataManager;

	var _opened = false;
	var _imgRandom = 0;

	//opened tab mask control
	var _openedMasks = {};

	// navTab Urls
	var _navTabsUrl = {
		'direction' : 'direction.do',
		'email' : 'mail.do',
		'benefits' : 'benefits.do',
		'video' : 'showVideos.do'
	};

	var _initEvents = function initEvents(){
		
		$E.on('txLogin','focus', Stage.changeValueInput,{label: 'labelId'});
		$E.on('txSenha','focus', Stage.changeValueInput,{label: 'labelSenha'});

		$E.on('topBoxResult','click', _topBoxClick);

		if($D.getElementsByClassName('eachList', 'div', 'narrowContent').length == 0){
			$D.addClass('narrowOpen', 'disabled');
			$D.addClass($D.getElementsByClassName('narrow', 'span', 'result'), 'disabled');
		}
		
		if($D.getElementsByClassName('eachList', 'div', 'expandContent').length == 0){
			$D.addClass('expandOpen', 'disabled');
			$D.addClass($D.getElementsByClassName('expand', 'span', 'result'), 'disabled');
		}

		if($D.get('resultToolTipSlot')) {
			$D.get('resultToolTipSlot').style.position = 'absolute';
			$D.get('resultToolTipSlot').style.top = (parseInt($D.getY('result'))-15) + 'px';
		}
		
		
		$E.on(['resultMailBtn','resultMultimailBtn','resultPrintBtn'],'mouseover', _topBoxMouseOver);
		$E.on(['resultMailBtn','resultMultimailBtn','resultPrintBtn'],'mouseout', _topBoxMouseOut);

		$E.on('resultToolTip','mouseover', _topBoxTipMouseOver);
		$E.on('resultToolTip','mouseout', _topBoxTipMouseOut);

		$E.on('selectAllCheckBox', 'click', _toogleSelectAll);
	};


	var _iframeGetWindow = function(idIframe) {
		var iframeElement = document.getElementById(idIframe);
		return iframeElement.contentWindow || document.frames[idIframe].window;
	};

	var _printIframe = function printIframe(){
		_iframeGetWindow('herramientasiFrame').focus();
		_iframeGetWindow('herramientasiFrame').print(); 
	};	

	var _topBoxClick = function topBoxClick(e) {
		var t = $E.getTarget(e);
		if(t.nodeName == 'DIV') {
			switch(t.className) {
				case 'mail':
				case 'multimail':
				case 'print':
					_openDialog(t.className);
				break;
			}
		}
		
		var refineSearchRE = /^(narrow|expand)(Open|Close)$/;
		if(t.nodeName == 'DIV' && refineSearchRE.test(t.id) && !$D.hasClass(t, 'disabled')) {
			var extract = refineSearchRE.exec(t.id);
			var type = extract[1];
			var action = extract[2].toLowerCase();

			_refineSearchControl(type, action);
		}
		t = null;
	};

	var _topBoxMouseOver = function topBoxMouseOver(e) {

		var objX = $D.getX(this);
		$D.setStyle('resultToolTipSlot','left',  (objX-10) + 'px');

		var objsRE = /(to-mail|to-print|to-multimail)/;
		var find = objsRE.exec($D.get('resultToolTip').className);
		$D.replaceClass('resultToolTip', find[1], 'to-'+this.className);
		if(this.className == 'print' || this.className == 'mail'){
			var count = Stage.getInstance().dataManager.getPrintLength();
			$D.get('resultToolTipCount').innerHTML = count;
		}else{
			var count = Stage.getInstance().dataManager.getAdvertiseLength();
			$D.get('resultToolTipCount').innerHTML = count;		
		}

		if(count > 0) {
			$D.replaceClass('resultToolTip','disable','enable');
		} else {
			$D.replaceClass('resultToolTip','enable','disable');
		}
		
		$D.replaceClass('resultToolTip', 'off', 'on');
	}

	var _topBoxMouseOut = function _topBoxMouseOut(e) {
		$D.replaceClass('resultToolTip','on','off');
	}

	var _topBoxTipMouseOver = function topBoxTipMouseOver(e) {
		$D.replaceClass('resultToolTip', 'off', 'on');
	}

	var _topBoxTipMouseOut = function topBoxTipMouseOut(e) {
		$D.replaceClass('resultToolTip', 'on', 'off');
	}

	var _controlSlider = function(listID, sliderID) {
		if($D.inDocument(listID)) {
			var sliderElm = $D.getElementsByClassName('slider','div', $D.get(listID).parentNode);
			if(typeof(sliderElm[0]) != 'undefined') {
				sliderElm = sliderElm[0];
				sliderElm.id = sliderID;
				Slider.getInstance(listID,sliderID);
			}
			sliderElm = null;
		}
	};

	var _refineSearchControl = function(type, action){
		if(action == 'open') {
			$D.get('result').className = type;

			// criando sliders se o elemento esperado existir
			if(type == 'narrow') {
				_controlSlider('narrowActividadList','narrowActividadSlider');
				_controlSlider('narrowMarcaList','narrowMarcaSlider');
				_controlSlider('narrowLugarList','narrowLugarSlider');
			} else if(type == 'expand') {
				_controlSlider('expandActividadList','expandActividadSlider');
				_controlSlider('expandMarcaList','expandMarcaSlider');
				_controlSlider('expandLugarList','expandLugarSlider');
			}
		} else if(action == 'close') {
			$D.get('result').className = '';
		}
	};

	var _openDialog = function(page) {
		//Inicio resolución de ticket 148
		if(page == 'multimail' && Stage.getInstance().dataManager.getAdvertiseLength() < 1){
			alert('Seleccione al menos un anuncio con e-mail para poder utilizar la herramienta');
			return false;
		}else if((page == 'print' || page == 'mail') && Stage.getInstance().dataManager.getPrintLength() < 1){
			alert('Seleccione algún ítem de la búsqueda');
			return false;
		}
		//Fin resolución de ticket 148
			
		var pages = {
			'mail' : 'friendEmail.jsp', //Resolucion ticket 64
			'multimail' : 'multimail.html',
			'print' : 'print.html'
		};
		var req = new Request();
		req.get(pages[page] + '?rnd=' + (new Date()).getTime(), _openDialogSuccess);
		_opened = page;

		//document.body.scroll = 'no';
		$D.addClass(document.body,'mask');
	};

	var _updateFromField = function() {
		try {
			var toName = _iframeGetDocument("herramientasiFrame").getElementById("toName");
			toName.innerHTML = $D.get("from").value;
		} catch(e) {}
	}

	var _openDialogSuccess = function(e) {
		$E.removeListener('overlay', 'mousedown', _closeDialog);
		$E.removeListener('herramientasCloseLink', 'click', _closeDialog);
		$E.removeListener('herramientasPrintLink','click', _printIframe);
		$E.removeListener('herramientasSendBtn', 'click', _sendMail);
		$E.removeListener('herramientasSendBtn', 'click', _sendMultiMail);

		$D.get('herramientas').innerHTML = e.responseText;
		$E.on('overlay', 'mousedown', _closeDialog);

		switch(_opened) {
			case 'print':
				$E.on('herramientasPrintLink','click', _printIframe);
			break;
			case 'mail':
				$E.on('herramientasSendBtn', 'click', _sendMail);
				$E.on('from', 'keyup', _updateFromField);
			break;
			case 'multimail':
				_imgRandom = parseInt(Math.random()*10000000);
				$D.get('herramientasSecImage').src = 'secImage.action?c=' + _imgRandom;
				$D.get('captcha').value = _imgRandom;
				$E.on('herramientasSendBtn', 'click', _sendMultiMail);
			break;
		}
		$E.on('herramientasCloseLink', 'click', _closeDialog);
		
		// Recalcula tamanho do overlay
		var mySize = Stage.getDocumentSize();
		$D.get('overlay').style.width = mySize[0]+"px";
		$D.get('overlay').style.height = mySize[1]+"px";
		$D.setStyle('overlay','display','block');
		
	};

	var _closeDialog = function () {
		$D.removeClass(document.body,'mask');
		document.body.scroll = 'yes';
		$D.setStyle('overlay','display','none');
	}

	var _validateMail = function validateMail(value) {
		if(!YAHOO.lang.trim(value) == "") {
			var emails = value.split(/ ?[,;] ?/);
			var invalid = [];
			for(var i = 0, l = emails.length; i < l; i++) {
				var email = YAHOO.lang.trim(emails[i]);
				if((!/^[a-zA-Z0-9-_\.]{3,}@[a-zA-Z0-9-_]{3,}(\.[a-zA-Z]{2,}){1,}$/.test(email)) && email != "") {
					invalid.push(email);
				}
			}
			return invalid.length > 0 ? invalid : false;
		} else {
			return -1;
		}
	};

	var _sendMail = function sendMail() {
		var url = 'EmailAction.do';
		var params = [];
		var from = _validateMail($D.get('from').value);
		var to = _validateMail($D.get('to').value);
		var cc = _validateMail($D.get('cc').value);
		var subject = $D.get('subject').value;

		var error = false;
		var msg = ['Los siguientes correos electrónicos no son válidos:'];
		
		if(from == -1) {	
			$D.get('from').focus(); return false;
		} else if(YAHOO.lang.isArray(from)) {
			error = true;
			msg.push(' De:');
			for(var i in from) {
				msg.push('   - ' + from[i]);
			}
		}

		if(to == -1) {	
			$D.get('to').focus(); return false;
		} else if(YAHOO.lang.isArray(to)) {
			error = true;
			msg.push(' Para:');
			for(var i in to) {
				msg.push('   - ' + to[i]);
			}
		}

		if(YAHOO.lang.isArray(cc)) {
			error = true;
			msg.push(' Cc:');
			for(var i in cc) {
				msg.push('   - ' + cc[i]);
			}
		}

		if(error) {
			alert(msg.join('\n'));
			return false;
		}

		if(!from && !to && from !== -1 && to !== -1 && (cc === -1 || !cc)) {
			params.push('from=' + escape($D.get('from').value));
			params.push('&to=' + escape($D.get('to').value));
			params.push('&cc=' + escape($D.get('cc').value));
			params.push('&subject=' + escape(subject));
			
			//TODO: change action name and uncomment the request lines
			var req = new Request();
			//req.post(url.join(''), function() { alert('Mensaje exitosamente enviado.'); _closeDialog() });
			//Inicio Resolucion ticket 64
			req.post(url, _loadFriendMailMsg, null, unescape(params.join('')));
			//Fin Resolucion ticket 64
		}
	};

	var _loadFriendMailMsg = function(req) {
			var responseJSON = eval("(" + req.responseText + ")");
			alert(responseJSON.stateSendFriendmail);
			if (responseJSON.closeWinds =='true'){
				_closeDialog()
			}
	};	
	
	var _sendMultiMail = function sendMultiMail() {
		var url = 'multimail.do';
		var params = [];
		var from = YAHOO.lang.trim($D.get('from').value);
		var email = _validateMail($D.get('txEmail').value);
		
		var tel1 = YAHOO.lang.trim($D.get('tel1').value);
		var tel2 = YAHOO.lang.trim($D.get('tel2').value);
		var tel3 = YAHOO.lang.trim($D.get('tel3').value);
		
		var query = YAHOO.lang.trim($D.get('query').value);
		var code = YAHOO.lang.trim($D.get('code').value);

		//var content = _iframeGetDocument('herramientasiFrame').body.innerHTML;


		if(from == '') {
			alert('Ingrese su nombre o la Razón Social');
			$D.get('from').focus(); return false;
		} 

		if(email == -1) {	
			alert('Ingrese su correo electronico');
			$D.get('txEmail').focus(); return false;
		} else if(YAHOO.lang.isArray(email)) {
			error = true;
			var msg = ['El siguiente correo electrónico no es válido:'];
			msg.push('   - ' + email[0]);
			alert(msg.join('\n'));
			return false;
		}

		/*if(tel1 == '') {
			alert('Ingrese el teléfono');
			$D.get('tel1').focus();
			return false;
		}*/

		if(query == '') {
			alert('Ingrese el mensaje');
			$D.get('query').focus();
			return false;
		}

		if(code == '') {
			alert('Ingrese el código de validación');
			$D.get('code').focus();
			return false;
		}

		//if(from != '' && !email && tel1 != '' && query != '' && code != '') {
		if(from != '' && !email && query != '' && code != '') {
			params.push('from=' + escape(from));
			params.push('&email=' + escape($D.get('txEmail').value));
			if (tel1 != '') {
				params.push('&tel1=' + escape(tel1));
			}
			if(tel2 != '') {
				params.push('&tel2=' + escape(tel2));
			}
			if(tel3 != '') {
				params.push('&tel3=' + escape(tel3));
			}
			params.push('&query=' + escape(query));
			params.push('&c=' + _imgRandom);
			params.push('&code=' + code);
			//params.push('&body=' + escape(content));
			params.push('&captcha=' + $D.get('captcha').value);
			//TODO: change action name and uncomment the request lines
			var req = new Request();
			//Inicio Resolucion ticket 4
			req.post(url, _loadMultiMailMsg, null, unescape(params.join('')));
			//Fin resolucion ticket 4
		}
	};

	var _loadMultiMailMsg = function(req) {
			var responseJSON = eval("(" + req.responseText + ")");
			alert(responseJSON.stateSendMultimail);
			if (responseJSON.closeWinds =='true'){
				_closeDialog()
			}
	};	
	
	
	
	var _controlSelectAll = function() {
		var checkboxes = document.getElementsByName('selectAdvertise');
		var count = 0;
		for(var i = 0, l= checkboxes.length; i < l; i++) {
			if(checkboxes[i].checked) {
				count++;
			}
		}
		if($D.get('selectAllCheckBox')){
			$D.get('selectAllCheckBox').checked = (count == checkboxes.length);
		}
	};

	var _toogleSelectAll = function(e) {
		var ckeckStatus = $D.get('selectAllCheckBox').checked;
		var checkboxes = document.getElementsByName('selectAdvertise');

		var advs = {};
		for(var i = 0, l= checkboxes.length; i < l; i++) {
			var values = checkboxes[i].value.split('|');
			advs[values[0]] = values[1];
			checkboxes[i].checked = ckeckStatus;
		}
		
		if(ckeckStatus == true){
			dm.selectAdvertises(advs);
		}else{
			dm.unselectAdvertises(advs);
		}
	};

	var _controlResultTabClick = function(elmId, listItemId, type, isFirst) {
		if(isFirst && !_openedMasks[elmId]) {
			var maskElm = document.createElement('DIV');
			maskElm.className = 'mask';
			maskElm.innerHTML = '<!-- -->';
			$D.get(listItemId).appendChild(maskElm);
			_openedMasks[elmId] = true;
		}

		if(!$D.hasClass(listItemId, 'sel')){
			var lastSel = $D.getElementsByClassName('sel', 'li', $D.get(listItemId).parentNode);
			if(lastSel) {
				$D.removeClass(lastSel, 'sel');
			}
			$D.addClass(listItemId, 'sel');	
			lastSel = null;
		}

		var detailsElms = $D.getElementsByClassName('detailsTools', 'div', elmId);
		if(detailsElms){
			var detailId = $D.generateId(detailsElms[0], 'detail-ctrl')
			$D.replaceClass(detailId, 'off', 'on');
			var advId = $D.get(elmId).parentNode.getAttribute('rel');
			
			var enla = '';
			if(getUrlParameters('term') != '' && getUrlParameters('termId')!=''){
				enla = '&term=' + getUrlParameters('term') + '&termId=' + getUrlParameters('termId');
			}

			var req = new Request();
			req.get(_navTabsUrl[type] + '?id=' + advId + '&rnd=' + (new Date()).getTime() + enla,
				_openDetail, {'detailId' : detailId, 'listItemId' : listItemId, 'type': type, 'advId': advId});
			
			navTabsCtd = null;
			detailsElms = null;
		}
	};
	
	var _openDetail = function(o) {
		var detailsElm = $D.get(this['detailId']);
		if(detailsElm){
			var navTabsCtd = $D.getElementsByClassName('navTabsContent', 'div', detailsElm) || false;
			if(navTabsCtd) {
				navTabsCtd[0].innerHTML = o.responseText;

				var closeElm = $D.getElementsByClassName('btClose', 'div', detailsElm);

				var _closeDetail = function(e, args) {
					var detailId = args[0];
					var listItemId = args[1];

					$D.replaceClass(detailId, 'on', 'off');
					var lastSel = $D.getElementsByClassName('sel', 'li', $D.get(listItemId).parentNode);
					if(lastSel) {
						$D.removeClass(lastSel, 'sel');
					}
					$E.removeListener(this, 'click');
				};

				$E.on(closeElm, 'click', _closeDetail, [this['detailId'], this['listItemId']]);
				closeElm = null;

				//TODO: para colocar as funções de setar eventos nos conteudos das tabs
				switch(this['type']) {
					case 'direction':
						var rightSide = $D.getElementsByClassName('rightSide', 'div', detailsElm) || false;
						var directionItens = $D.getElementsByClassName('directionItens', 'div', detailsElm) || false;
						var directionSlider = $D.getElementsByClassName('directionSlider', 'div', detailsElm) || false;
						var directionItensId = $D.generateId(directionItens[0], 'directionItens');
						var directionSliderId = $D.generateId(directionSlider[0], 'directionSlider');
						
						var otherPhone = $D.getElementsByClassName('otherPhone', 'p', detailsElm) || false;
						var otherPhoneItens = $D.getElementsByClassName('ctdOther', 'div', detailsElm) || false;
						var otherPhoneSlider = $D.getElementsByClassName('otherSlider', 'div', detailsElm) || false;
						var otherPhoneItensId = $D.generateId(otherPhoneItens, 'ctdOther');
						var otherPhoneSliderId = $D.generateId(otherPhoneSlider, 'otherSlider');

						if(otherPhone.length > 0) {
							
							// ajuste da altura automáticamente dos conteudo dos otros tels
							var cajonTop = $D.getY(detailsElm);
							var cajonHeight = detailsElm.offsetHeight;
							var cajonPaddingBotton = 16;
							var othersPhonesTop = $D.getY(otherPhone[0]);
							var othersPhonesHeight = otherPhone[0].offsetHeight;
							var othersPhonesLineHeigth = 15;
	
							var freeHeight = (cajonHeight-cajonPaddingBotton) - ((othersPhonesTop + othersPhonesHeight) - cajonTop);
							$D.setStyle(otherPhoneItensId, 'height', Math.floor(freeHeight/othersPhonesLineHeigth)*othersPhonesLineHeigth + 'px');
						}

						// show/hide 'otros tels' and activate slider
						// resolucion ticket 16078
						$E.on(otherPhone, 'click', function(e) {
							var element = (e.target) ? e.target: e.srcElement;

	    					var sub = element.id.substring(10);
							var otherSlider_ = 'otherSlider' + sub ;
							var ctdOther_ = 'ctdOther' + sub ;
							var _otherPhoneItens = $D.getElementsByClassName(ctdOther_, 'div', detailsElm) || false;
							var _otherPhoneSlider = $D.getElementsByClassName(otherSlider_, 'div', detailsElm) || false;
							var _otherPhoneItensId = $D.generateId(_otherPhoneItens, ctdOther_);
							var _otherPhoneSliderId = $D.generateId(_otherPhoneSlider, otherSlider_);

							
							if($D.hasClass(_otherPhoneItensId[0], 'off')){
								$D.replaceClass(_otherPhoneItensId[0], 'off', 'on');
								$D.replaceClass(_otherPhoneSliderId[0], 'off', 'on');
								Slider.getInstance(_otherPhoneItensId[0], _otherPhoneSliderId[0]);
							}else{
								$D.replaceClass(_otherPhoneItensId[0], 'on', 'off');
								$D.replaceClass(_otherPhoneSliderId[0], 'on', 'off');
							}
						});
						
					break;
					
					case 'email':
						var forwardEmail = $D.getElementsByClassName('forwardEmail', '', detailsElm) || false;
						var labels = $D.getElementsByClassName('label', 'label', detailsElm) || false;
						var fields = $D.getElementsByClassName('field', '', detailsElm) || false;
						var btBack = $D.getElementsByClassName('btBack', '', detailsElm) || false;
						var emailContainer = $D.getElementsByClassName('emailContainer', '', detailsElm) || false;

						if (btBack) {
							$E.on(btBack[0],'click',function(){
								if (emailContainer){
									$D.removeClass(emailContainer[0], 'sentOk');
								}
							})
						}

						var fieldsId = {};
						if (fields && labels) {
							for (var i = 0, fL = fields.length; i < fL; i++) {
								var fieldId = $D.generateId(fields[i], 'input-ctrl');
								labels[i].htmlFor = fieldId;
								fieldsId[fields[i].name] = fieldId;
								$E.on(fields[i],'focus', Stage.changeValueInput,{label: labels[i]});
							}
						}
						$E.on(detailsElm.getElementsByTagName('button'),'click', function(e) {
							var forward = _validateMail(forwardEmail[0].value);
							var name = YAHOO.lang.trim($D.get(fieldsId['name']).value);
							var phone = YAHOO.lang.trim($D.get(fieldsId['phone']).value);
							var mail = _validateMail($D.get(fieldsId['mail']).value);
							var message = YAHOO.lang.trim($D.get(fieldsId['message']).value);
							var company = YAHOO.lang.trim($D.get(fieldsId['company']).value);
							
							if (forward == -1) {
								forwardEmail[0].focus();
								return false;
							}
							if(name == '') {
								$D.get(fieldsId['name']).focus();
								return false;
							}

							/*if(phone == '') {
								$D.get(fieldsId['phone']).focus();
								return false;
							}*/
							if(mail == -1) {	
								$D.get(fieldsId['mail']).focus();
								return false;
							} else if(YAHOO.lang.isArray(mail)) {
								error = true;
								var msg = ['El siguiente correo electrónico no es válido:'];
								msg.push('   - ' + mail[0]);
								alert(msg.join('\n'));
								$D.get(fieldsId['mail']).select();
								return false;
							}
							if(message == '') {
								$D.get(fieldsId['message']).focus();
								return false;
							}
							var params = [];
							params.push('forward=' + escape(forwardEmail[0].value));
							params.push('&name=' + escape(name));
							params.push('&phone=' + escape(phone));
							params.push('&mail=' + escape($D.get(fieldsId['mail']).value));
							params.push('&message=' + escape(message));
							params.push('&company=' + escape(company));
							
							var req = new Request();
							req.setFailure(
								function() {
									alert("No fue posible enviar el mensaje.");
								}, null);
							//resolucion ticket 15006
							document.getElementById('token').disabled = true;
							
							req.post(	'emailAdvertise.do' + '?id=1&rnd=' + (new Date()).getTime(), 
										function() {
											if (emailContainer){
												$D.addClass(emailContainer[0], 'sentOk');
											}
											$D.get(fieldsId['message']).value = "";
											//resolucion ticket 15006
											document.getElementById('token').disabled = false;
										}, 
										this, 
										params.join(''));

						});
					break;
					
					case 'benefits':
						
						var ctdCupon = $D.getElementsByClassName('ctdCupon', 'div', detailsElm) || false;
						var ctdCuponId = $D.generateId(ctdCupon[0], 'ctdCupon');
						var cuponSlider = $D.getElementsByClassName('cuponSlider', 'div', detailsElm) || false;
						var cuponSliderId = $D.generateId(cuponSlider[0], 'cuponSlider');
						
						var ctdOffer = $D.getElementsByClassName('ctdOffer', 'div', detailsElm) || false;
						var ctdOfferId = $D.generateId(ctdOffer[0], 'ctdOffer');
						var offerSlider = $D.getElementsByClassName('offerSlider', 'div', detailsElm) || false;
						var offerSliderId = $D.generateId(offerSlider[0], 'offerSlider');
						
						Slider.newInstance($Y.Dom.get(ctdCuponId).id, $Y.Dom.get(cuponSliderId).id);
						Slider.newInstance($Y.Dom.get(ctdOfferId).id, $Y.Dom.get(offerSliderId).id);
						
					break;

					case 'video':

						var showVideo = function(e, advId) {
							var idVideo = (e) ? $Y.Event.getTarget(e).parentNode.parentNode.id : advId+"0" ;

							// apresenta o título, o texto e a url da imagem thumbnail clicada							
							$D.replaceClass(descVideo[0].getElementsByTagName('DIV'), 'on', 'off');														
							$D.replaceClass($D.get('dv'+idVideo), 'off', 'on');

							videoUrl = $D.get('url'+idVideo).innerHTML;
							// removing enconded char
							videoUrl = videoUrl.replace('&amp;', '&');
							
							
							// Carrega video
							var rnd = (new String(Math.random())).substring(2,8) + (((new Date()).getTime()) & 262143);
							
							var enla = videoUrl + "&rnd=" + rnd;
							
							if(getUrlParameters('term') != '' && getUrlParameters('termId')!=''){
								enla = enla + '&term=' + getUrlParameters('term') + '&termId=' + getUrlParameters('termId');
							}
							_iframeGetDocument("videoiFrame"+advId).location = enla;
						}
	
						var ctdVideos = $D.getElementsByClassName('ctdVideos', 'div', detailsElm) || false;
						var ctdVideosId = $D.generateId(ctdVideos[0], 'ctdVideos');
						var listVideo = $D.getElementsByClassName('listVideo', 'div', detailsElm) || false;
						if(!listVideo[0]){
							listVideo = [listVideo];
						}
						
						var thumbVideo = $D.getElementsByClassName('thumbVideo', 'div', detailsElm) || false;
						//var thumbName = $D.getElementsByClassName('thumbName', 'div', detailsElm) || false;
						var listVideosContainer = $D.getElementsByClassName('listVideosContainer', 'div', detailsElm) || false;
						var listVideosContainerId = $D.generateId(listVideosContainer[0], 'listVideosContainer');
						var btSliderPrevious = $D.getElementsByClassName('btSliderPrevious', 'div', detailsElm) || false;
						var btSliderPreviousId = $D.generateId(btSliderPrevious[0], 'btSliderPrevious');
						var btSliderNext = $D.getElementsByClassName('btSliderNext', 'div', detailsElm) || false;
						var btSliderNextId = $D.generateId(btSliderNext[0], 'btSliderNext');
												
						var totalWidth = listVideo[0].offsetWidth*(listVideo.length)+18;
						$D.setStyle(ctdVideosId,'width',totalWidth+'px');

						//EVENTO CLICK
						for (var i=0, tL=listVideo.length; i<tL; i++){
							var listVideoId = $D.generateId(listVideo[i], 'thumbVideo');
							var descVideo = $D.getElementsByClassName('descriptionVideo', 'div', detailsElm) || false;													
							$E.on(thumbVideo[i],'click', showVideo, this['advId']);

							// Por enquanto não vai ter o título da imagem thumbnail
							//$E.on(thumbName[i],'click',function(){
							//	//TODO
							//	alert(this.parentNode.id);
							//});
						}

						//SLIDER
						if ($D.get(ctdVideosId).offsetWidth > $D.get(listVideosContainerId).offsetWidth) {
							//Previous
							$E.on(btSliderPreviousId,'click',function(){
								$D.get(listVideosContainerId).scrollLeft -= 89;
								$D.replaceClass($D.getElementsByClassName('disable', 'div', btSliderNextId)[0],'disable','enable');
								
								if ($D.get(listVideosContainerId).scrollLeft >= 89) {
									$D.replaceClass($D.getElementsByClassName('disable', 'div', this)[0],'disable','enable');
								} else {
									$D.replaceClass($D.getElementsByClassName('enable', 'div', this)[0],'enable','disable');
								}
							});
							
							//Next
							$D.replaceClass($D.getElementsByClassName('disable', 'div', btSliderNextId)[0],'disable','enable');
							$E.on(btSliderNextId,'click',function(){
								$D.get(listVideosContainerId).scrollLeft += 89;
								$D.replaceClass($D.getElementsByClassName('disable', 'div', btSliderPreviousId)[0],'disable','enable');
								
								if ($D.get(listVideosContainerId).scrollLeft == ($D.get(listVideosContainerId).scrollWidth - $D.get(listVideosContainerId).offsetWidth)) {
									$D.replaceClass($D.getElementsByClassName('enable', 'div', this)[0],'enable','disable');
								}
							});
						} else {
							$D.addClass(btSliderPreviousId,'off');
							$D.addClass(btSliderNextId,'off');
						}
						
						// Carrega primeiro video
						showVideo(null, this['advId']);
						
					break;
				}

			}
		}
		detailsElm = null;
	};

	var resultHandler = function resultHandler(e) {

		// Each checkboxes click
		var targetEl = $E.getTarget(e);
		if(targetEl.nodeName === 'INPUT' && targetEl.name === 'selectAdvertise'){
			var values = targetEl.value.split('|');
			dm.toggleAdvertise(values[0], values[1]);
			_controlSelectAll();
		}

		// Each tabNav Open click
		if(targetEl.nodeName == 'EM') {
			var ctdElm = targetEl.parentNode.parentNode.parentNode.parentNode || false;
			if($D.hasClass(ctdElm, 'linksAdv')) {
				var type = targetEl.className;
				if(type != 'web' && type != 'info') {
					var listItemElm = targetEl.parentNode.parentNode || false;
					if(!$D.hasClass(listItemElm, 'sel')) {
						var isFirst = $D.hasClass(listItemElm, 'first');
						var listItemId = $D.generateId(listItemElm, 'item-ctrl') || false;
						_controlResultTabClick($D.generateId(ctdElm, 'list-ctrl'), listItemId, type, isFirst);
					}
					listItemElm = null;
				}
			}
			ctdElm = null;
		}
		
		if(targetEl.nodeName == 'A' && $D.hasClass(targetEl.parentNode, 'btZoom')){
			var advId = targetEl.getAttribute('rel');
			var imgContainerEl = $D.get('mapImage' + advId);
			var imgEl = imgContainerEl.getElementsByTagName('IMG')[0];
			var addressId = imgContainerEl.getAttribute('rel');
			imgEl.src = 'showMap.do?id=' + addressId + '&zoom=1';
		}
		
		// Select address on 'dirección' tab
		if(targetEl.nodeName == 'STRONG' && $D.hasClass(targetEl.parentNode.parentNode.parentNode, 'directionItens')){
			
			$D.removeClass(targetEl.parentNode.parentNode.getElementsByTagName('LI'), 'sel');
			$D.addClass(targetEl.parentNode, 'sel');
			
			var values = targetEl.parentNode.getAttribute('rel').split('|');
			var advId = values[0];
			var clicked = values[1];
			var imgContainerEl = $D.get('mapImage' + advId);
			var selected = imgContainerEl.getAttribute('rel');
			
			// resize dos 'otros tels' retornando ao estado inicial
	    	getObject('directionDetailSize' + advId).style.height = "197px";
	    	//getObject("leftSide").style.height = "197px";
	    	if(getObject('exp' + selected) != null ){
		    	getObject('exp' + selected).style.visibility = 'hidden';
	    	}
	    	if(getObject('exp' + clicked) != null ){
		    	getObject('exp' + clicked).style.visibility = 'hidden';			
	    	}
			if(clicked != selected){
				$D.replaceClass('rightSide' + selected, 'on', 'off');
				$D.replaceClass('rightSide' + clicked, 'off', 'on');
				targetEl.parentNode.parentNode.setAttribute('rel', clicked);
				imgContainerEl.setAttribute('rel', clicked);
				var iframeEl = imgContainerEl.getElementsByTagName('IFRAME')[0];
				iframeEl.src = unescape(values[2]);
			}
		}

		targetEl = null;
	};

	var _initAdvs = function() {
		
		//Inicio Resolución ticket 16099
		//Inicio resolción de ticket 124 - se cambió la url del banner 'advSkycraper'
		//Se agregó como nuevo parámetro parte del path en que se encuentra el banner
		if (advType == 'industriales') {
			
			var pathInd = 'eb/3/3c54'; 
			var advTop = $D.get('advTop');
			
			if(advTop) $D.get('advTop').src = "advSpace.jsp?advId=0323ecfa6a9a47a8&path="+ pathInd +"&bgcolor=EFEFEF&align=left";
		
			var advSkycraper = $D.get('advSkycraper');
			var advBlockSindicacion = $D.get('advBlockSindicacion');
			
			if(advSkycraper){ 
				//was: 2f624255fea7fc69
			 	$D.get('advSkycraper').src = "advSpace.jsp?advId=eb5e8bb70d1f55a2&path="+ pathInd +"&bgcolor=DCDCDC&align=center";
				// block sindicacion
				if(advBlockSindicacion) $D.get('advBlockSindicacion').src = "advSpace.jsp?advId=51f72606fe221b72&path="+ pathInd +"&bgcolor=EFEFEF&align=left";
			}			
			else if(advBlockSindicacion) $D.get('advSkycraper').src = "advSpace.jsp?advId=94cbbbabd6733fc6&path="+ pathInd +"&bgcolor=EFEFEF&align=left";
			
			var advRight = $D.get('advRight');
			var advBlat2 = $D.get('advBlat2');
			var advBlat3 = $D.get('advBlat3');
			
			$D.get('advRight').src = "advSpace.jsp?advId=5973cdfae23a5106&path="+ pathInd +"&bgcolor=EFEFEF";
			$D.get('advBlat2').src = "advSpace.jsp?advId=cfd16f65d0b3dd95&path="+ pathInd +"&bgcolor=EFEFEF";
			$D.get('advBlat3').src = "advSpace.jsp?advId=f4309fc4c347eb2d&path="+ pathInd +"&bgcolor=EFEFEF";
			
			var layer = $D.get('layerResult');
			if(advBlat3) $D.get('layerResult').src = "advSpace.jsp?advId=a63e9d4c34c4e69e&path="+ pathInd +"&bgcolor=EFEFEF";
			
			var popUnder = $D.get('popUnderResult');
			if(advBlat3) $D.get('popUnderResult').src = "advSpace.jsp?advId=f21f4549990349d2&path="+ pathInd +"&bgcolor=EFEFEF";
			
		} else {
			var pathAmarillas = 'eb/3/3c4b';
			
			var advTop = $D.get('advTop');
			if(advTop) $D.get('advTop').src = "advSpace.jsp?advId=15dc059242a93785&path="+ pathAmarillas +"&bgcolor=EFEFEF&align=left";
			
			var advSkycraper = $D.get('advSkycraper');
			var advBlockSindicacion = $D.get('advBlockSindicacion');
			
			if(advSkycraper){ 
				$D.get('advSkycraper').src = "advSpace.jsp?advId=0a8b834aa7090bf1&path="+ pathAmarillas +"&bgcolor=EFEFEF&align=center";
				// block sindicacion
				if(advBlockSindicacion) $D.get('advBlockSindicacion').src = "advSpace.jsp?advId=51f72606fe221b72&path="+ pathAmarillas +"&bgcolor=EFEFEF&align=left";
			}
			else if(advBlockSindicacion) $D.get('advSkycraper').src = "advSpace.jsp?advId=94cbbbabd6733fc6&path="+ pathAmarillas +"&bgcolor=EFEFEF&align=left"; 
			
			var advRight = $D.get('advRight');
			var advBlat2 = $D.get('advBlat2');
			var advBlat3 = $D.get('advBlat3');
			
			$D.get('advRight').src = "advSpace.jsp?advId=3d1e3dc3642d1259&path="+ pathAmarillas +"&bgcolor=EFEFEF";
			$D.get('advBlat2').src = "advSpace.jsp?advId=a48505a855025a49&path="+ pathAmarillas +"&bgcolor=EFEFEF";
			$D.get('advBlat3').src = "advSpace.jsp?advId=ca67de7c15c54b93&path="+ pathAmarillas +"&bgcolor=EFEFEF";
			
			var layer = $D.get('layerResult');
			if(advBlat3) $D.get('layerResult').src = "advSpace.jsp?advId=02e41cd89a85b2e7&path="+ pathAmarillas +"&bgcolor=EFEFEF";
	
			var popUnder = $D.get('popUnderResult');
			if(advBlat3) $D.get('popUnderResult').src = "advSpace.jsp?advId=6cbf60cb9805881e&path="+ pathAmarillas +"&bgcolor=EFEFEF";			
		}
		//Fin resolción de ticket 124
		//Fin Resolución ticket 16099
	}

	var _init = function init(){
		var contentEl = $D.getElementsByClassName('content', 'DIV', 'result')[0];
		$E.on(contentEl, 'click', resultHandler);
		contentEl = null;
		
		var selectedEls = $D.getElementsByClassName('selected', 'INPUT', 'result');
		for(var i = 0; i < selectedEls.length; i++){
			var values = selectedEls[i].value.split('|');
			selectedEls[i].checked = dm.isSelectedAdvertise(values[0]);
		}
		selectedEls = null;
		
		var searchArea = new Search(stage);
		Gonow.stage.searchArea = searchArea;

		_controlSelectAll();
		
		_initEvents();
		
		_initAdvs();
	};
	
	_init.call();
};

function otherPhonesCheckParent(el) {
	/*
	var otrosTelY = $D.getY(el);
	var otrosTelHeight = el.offsetHeight;
	var directionDetail = el.parentNode.parentNode.parentNode;
	var parentDivY = $D.getY(directionDetail);
	var parentDivHeight = directionDetail.offsetHeight;
	var freeHeight = ((parentDivY-otrosTelY)+parentDivHeight);

	if (freeHeight < 30) {
		directionDetail.style.height = parentDivHeight+30+'px';
	}*/
}

var ie4 = false;
if(document.all) { 
	ie4 = true; 
}

function getObject(id) { 
	if (ie4) { 
		return document.all[id];
	} else { 
		return document.getElementById(id); 
	} 
}

function toggle(el, divId, toResize, toSubtract) {
/*
	var d = getObject(divId);
	//alert("DivId="+getObject(divId).offsetHeight + "toResize"+getObject(toResize).offsetHeight);
	var contentSize = getObject(toSubtract).offsetHeight + getObject(divId).offsetHeight;
	var totalSize = getObject(toSubtract).offsetHeight + 40;
    if (d.style.visibility == 'visible') { 
    	d.style.visibility = 'hidden';
    	getObject(toResize).style.height = "197px";
    	//getObject("leftSide").style.height = "197px";
    } else { 
    	d.style.visibility = 'visible';
    	if(getObject(toSubtract).offsetHeight > 150) { 
    		getObject(toResize).style.height = totalSize + "px";
    		//getObject("leftSide").style.height = totalSize + "px";
    	}
    }
*/  


}