// Init Dependencies
Stage.addObject('Home');

function carrousselSearch(keyword, id, type){
	if (type != null){
		$("#searchType").attr("value", type);
	}
	$("#keyword").attr("value", keyword);
	
	if (id){
		// esto es porque el suggest agrega un input hidden con id termId y se usa
		// para la búsqueda por rubro
		if ($("#termId").length == 0){
			$("#keyword").before("<input type='hidden' name='termId' id='termId'/>")
		}
		$("#termId").attr("value", id);
	}
	$("#searchForm").submit();
}

/* this var defines how many images exists for the carrousell 
 * k is the keyword param to search
 * f is the function to be excecuted when the link is clicked
 * SearchType param = null represents search by name and 2 search by rubro
 */
 
var carrousselMessages = [
        				{k:'agencias de turismo', t: null},
        				{k:'Abogados',id:8113, t: 2},
        				{k:'Salones para Fiestas',id:5602, t: 2},
        				{k:'Veterinarias',id:7515, t: 2},
 						{k:'Disfraces',id:4163, t: 2},
						{k:'Peluquerias', t: null}];

var Home = function Home(parent) {
	var _stage = parent;
	var _self = this;

	var _initEvents = function() {
		$E.on('txLogin','focus', Stage.changeValueInput,{label: 'labelId'});
		$E.on('txSenha','focus', Stage.changeValueInput,{label: 'labelSenha'});
	//Agregado para que no se corte el script	
	if ($D.get('txLogin') != null){
		if($D.get('txLogin').value === '') {
			$D.replaceClass('labelId','off','onInline');
		} else {
			$D.replaceClass('labelId','onInline','off');
		}
	}
	//Agregado para que no se corte el script
	if ($D.get('txSenha') != null){
		if($D.get('txSenha').value === '') {
			$D.replaceClass('labelSenha','off','onInline');
		} else {
			$D.replaceClass('labelSenha','onInline','off');
		}
	}
	//Agregado para que no se corte el script
	if ($D.get('sectionNav') != null && $D.get('informationNav')){
		$E.on($D.get('sectionNav').getElementsByTagName('A')[2],'click', _sectionTabClick);
		$E.on($D.get('sectionNav').getElementsByTagName('A')[3],'click', _sectionTabClick);
		$E.on($D.get('sectionNav').getElementsByTagName('A')[4],'click', _sectionTabClick);
		$E.on($D.get('informationNav').getElementsByTagName('A'),'click', _informationTabClick);
	}
		// iniciando worldMap
		/*_informationDrawWorldMap();
		_worldMapEvents();*/
		$D.get('keyword').disabled = false;
	};
						
	var _startCarroussel = function _carroussel(){
						
		var next = function() {
			if(!this['carroussel']){
				this['carroussel'] = new Object();
			}
			var obj = this['carroussel'];
			obj.last = obj.next || false;
			obj.next = Math.ceil(Math.random()*carrousselMessages.length);
			while(obj.next == obj.last){
				obj.next = Math.ceil(Math.random()*carrousselMessages.length);
			}
			return obj;
		};
		var carroussel = function carroussel(){
			var o = next();
			if(o.last){
				$D.replaceClass('imgRotate', 'imgRotate' + o.last, 'imgRotate' + o.next);
			}else{
				$D.addClass('imgRotate', 'imgRotate' + o.next);
			}
			
			var message = carrousselMessages[(o.next-1)];
			
			// set the click function on the anchor
			$("#linkRotate").unbind('click').click(function(){carrousselSearch(message.k, message.id, message.t)});
		};
		carroussel();
		setInterval(carroussel, 60*1000); // 60sec.
	};
	
	var sectionContents = {
		'benefits' : 'sectionBenefits',
		'promotions' : 'sectionPromotions',
		'codigo2D' : 'sectionCodigo2D',
		'users' : 'sectionUsers',
		'news' : 'sectionNews'
	};

	function _sectionTabClick(e) {
		var clickedContent = sectionContents[this.className] != null ? $D.get(sectionContents[this.className]) : false;
		var clickedNavItem = this.parentNode;
		var selectedContent = $D.getElementsByClassName('active','div','sectionContainer');
		var selectedNavItem = $D.getElementsByClassName('active','li','sectionNav');

		if(!$D.hasClass(this.parentNode,'active') && clickedContent) {

			$D.removeClass(selectedNavItem.concat(selectedContent),'active');
			$D.addClass([clickedNavItem, clickedContent],'active');
		}

		return false;
	};

	var _informationDrawWorldMap = function informationDrawWorldMap() {
		var _htm = [];
		var div = document.createElement('DIV');
		div.className = 'tab active';
		div.id = 'worldMapContainer';
		_htm.push('	<div id="mapToolTipMain"><div id="mapToolTip" class="off"><strong id="mapToolTipCtd"><!-- --></strong><div class="rightBg"><!-- --></div></div></div>');
		_htm.push('	<ul id="worldMap" class="worldMap guias">');
		_htm.push('	<li class="amnorte"><a href="#">América del Norte</a></li>');
		_htm.push('		<li class="amcentral"><a href="#">América Central</a></li>');
		_htm.push('		<li class="amsur"><a href="#">América del Sur</a></li>');
		_htm.push('		<li class="africa"><a href="#">Africa</a></li>');
		_htm.push('		<li class="asia"><a href="#">Asia</a></li>');
		_htm.push('		<li class="europa"><a href="#">Europa</a></li>');
		_htm.push('		<li class="oceania"><a href="#">Oceanía</a></li>');
		_htm.push('	<ul>');
		div.innerHTML = _htm.join('');
		var container = $D.getElementsByClassName('tabContainer','div','informationContent')[0];

		var backBtn = document.createElement('DIV');
		backBtn.id = 'informationBackBtn';
		backBtn.className = 'off';
	//Agregado para que no se corte el script
    if (container != undefined){
		container.appendChild(div);
		container.appendChild(backBtn);
    }
		$E.on('informationBackBtn', 'click', _informationArrowBackClick);

		div = null;
		container = null;
		backBtn = null;
	};

	/* setas de volta em informaciones uteis */
	var _showBackArrow = function() {
		var w = $D.get('informationContainer').clientWidth;
		$D.setStyle('informationBackBtn', 'left', (w-12) + 'px');
		$D.removeClass('informationBackBtn', 'off');
	};
	var _hideBackArrow = function() {
		$D.addClass('informationBackBtn', 'off');
	};


	var _guiasDelMundoContinente = function(continent) {
		var req = new Request();
		req.get('guias_del_mundo.jsp?c='+continent, function(o){
			$D.get('informationContainer').innerHTML = o.responseText;
			$D.addClass('informationContainer', 'active');
			$D.get('informationContainer').scrollTop = 0;
			_showBackArrow();
		});
	};

	var _ddiContinente = function(continent) {
		var req = new Request();
		req.get('ddi.jsp?c='+continent, function(o) {
			$D.get('informationContainer').innerHTML = o.responseText;
			$D.addClass('informationContainer', 'active');
			$D.get('informationContainer').scrollTop = 0;
			_showBackArrow();
		});
	};

	var _ddnLocalidad = function(href) {
		var req = new Request();
		req.get(href, function(o) {
			$D.get('informationContainer').innerHTML = o.responseText;
			$D.addClass('informationContainer', 'active');
			$D.get('informationContainer').scrollTop = 0;
			$D.get('informationMapBg').className = 'ddn-open';
			_showBackArrow();
		});
	};

	var _ddnProvincias = function() {
		var req = new Request();
		req.get('ddn_provincias.jsp', function(o){
			$D.get('informationContainer').innerHTML = o.responseText;
			$D.addClass('informationContainer', 'active');
			$D.get('informationContainer').scrollTop = 0;

			var links = $D.get('informationContainer').getElementsByTagName('A');
			for(var i = 0, l = links.length; i < l;i++) {
				links[i].setAttribute('hrefOld', links[i].href);
				links[i].href = 'javascript://';
				$E.on(links[i],'click', function() {
					_ddnLocalidad(this.getAttribute('hrefOld'));
					return false;
				});
			}

		});
		$D.addClass('informationContainer', 'active');
	};

	var _worldMapEvents = function worldMapEvents () {
	//Agregado para que no se corte el script
	if($D.get('worldMap') != null){
		$E.on($D.get('worldMap').getElementsByTagName('A'), 'mouseover', _mapOver);
		$E.on($D.get('worldMap').getElementsByTagName('A'), 'mouseout', _mapOut);
		$E.on($D.get('worldMap').getElementsByTagName('A'), 'click', _mapClick);
		$E.on('mapToolTip','mouseover', _mapToolTipOver);
		$E.on('mapToolTip','mouseout', _mapOut);
	}
	};
	

	function _informationTabClick(e) {
		var elClass = this.className;
		$D.get('informationNav').className =  'nav-'+elClass;
		$D.get('informationMapBg').className =  elClass;

		$D.removeClass($D.getElementsByClassName('active','li','informationNav'), 'active');
		$D.removeClass($D.getElementsByClassName('active','div','informationContent'), 'active');
		this.parentNode.parentNode.className = 'active';


		$D.removeClass('worldMapContainer', 'active');
		$D.removeClass('informationContainer', 'active');
		$D.addClass('infoHtmlContainer', 'off');
		$D.get('informationContainer').innerHTML = '';
		_hideBackArrow();

		if(elClass == 'guias' || elClass == 'ddi') {
			$D.addClass('worldMapContainer', 'active');
			$D.get('informationMapBg').className =  'map';
		}else if(elClass == 'ddn') {
			_ddnProvincias();
		}
	};

	var _lastMapOverClassName = '';
	var _mapOver = function(e) {
		_lastMapOverClassName = this.parentNode.className;
		$D.get('mapToolTip').className = _lastMapOverClassName;
		$D.get('mapToolTipCtd').innerHTML = this.innerHTML;

		$E.stopPropagation(e);
	};

	var _mapOut = function(e) {
		$D.get('mapToolTip').className = 'off';

		var selected = $D.getElementsByClassName(_lastMapOverClassName, 'li', 'worldMap');
		selected = selected[0].getElementsByTagName('A');
		$D.removeClass(selected, 'active');

		$E.stopPropagation(e);
	};

	var _mapToolTipOver = function(e) {
		$D.get('mapToolTip').className = _lastMapOverClassName;

		var selected = $D.getElementsByClassName(_lastMapOverClassName, 'li', 'worldMap');
		selected = selected[0].getElementsByTagName('A');
		$D.addClass(selected, 'active');

		$E.stopPropagation(e);
	};

	var _mapClick = function(e) {
		var t = $E.getTarget(e);
		var option = $D.get('informationNav').className.replace('tabNav ','');
		option = option.replace('nav-','');
		var continent = t.parentNode.className;

		$D.addClass('mapToolTip', 'off');

		switch(option) {
			case 'ddi':
				_ddiContinente(continent);
			break;

			case 'guias':
				_guiasDelMundoContinente(continent);
			break;
		}

		$D.get('informationMapBg').className =  option;

		$D.removeClass('worldMapContainer', 'active');
		t = null;
	};

	var _informationArrowBackClick = function(e) {
		$D.removeClass('informationContainer', 'active');
		_hideBackArrow();
		$D.addClass('worldMapContainer', 'active');
		if($D.hasClass('informationMapBg','ddn-open')) {
			$D.get('informationMapBg').className =  'ddn';
			_ddnProvincias();
			$D.removeClass('worldMapContainer', 'active');
		} else {
			$D.get('informationMapBg').className =  'map';
		}
	};

	var _initAdvs = function() {
	  /* Sequito porque no utilizaremos esta funcionalidad
		if (advType == 'industriales') {
			//Inicio resolción de ticket 124 - se cambió la url del banner 'advBlock' y se modificó la conformación del path de los banners
			//Se agregó como nuevo parámetro parte del path en que se encuentra el banner
			var pathInd = 'eb/3/3c54'; 

			$D.get('advRectangle').src = "advSpace.jsp?advId=20792ce25458949e&path="+ pathInd +"&bgcolor=EFEFEF";
			$D.get('advBlock').src = "advSpace.jsp?advId=1573278e9a98b616&path="+ pathInd +"&bgcolor=DCDCDC";
			$D.get('advSponsor1').src = "advSpace.jsp?advId=a54ebec6d453e6a1&path="+ pathInd +"&bgcolor=DCDCDC";
			$D.get('advSponsor2').src = "advSpace.jsp?advId=a0e344fb919e6a47&path="+ pathInd +"&bgcolor=DCDCDC";
			$D.get('advSponsor3').src = "advSpace.jsp?advId=0d927ddfa42722da&path="+ pathInd +"&bgcolor=DCDCDC";
			
			$D.get('layerHome').src = "advSpace.jsp?advId=09f5f1795580c09b&path="+ pathInd +"&bgcolor=DCDCDC";
			$D.get('popUnderHome').src = "advSpace.jsp?advId=eabd522014d595ad&path="+ pathInd +"&bgcolor=DCDCDC";			
		} else {
			var pathAmarillas = 'eb/3/3c4b';
			
			$D.get('advRectangle').src = "advSpace.jsp?advId=aa3ba4c59ce5891c&path="+ pathAmarillas +"&bgcolor=EFEFEF";
			$D.get('advBlock').src = "advSpace.jsp?advId=b5be9df0f5fec415&path="+ pathAmarillas +"&bgcolor=DCDCDC";
			$D.get('advSponsor1').src = "advSpace.jsp?advId=61e692d45a115311&path="+ pathAmarillas +"&bgcolor=DCDCDC";
			$D.get('advSponsor2').src = "advSpace.jsp?advId=cff5a982209a8d5a&path="+ pathAmarillas +"&bgcolor=DCDCDC";
			$D.get('advSponsor3').src = "advSpace.jsp?advId=e30c52355dfca575&path="+ pathAmarillas +"&bgcolor=DCDCDC";
			
			$D.get('layerHome').src = "advSpace.jsp?advId=2a7f906aa8117214&path="+ pathAmarillas +"&bgcolor=DCDCDC";
			$D.get('popUnderHome').src = "advSpace.jsp?advId=b5a498b0f3f40112&path="+ pathAmarillas +"&bgcolor=DCDCDC";
			//fin resolción de ticket 124 - se cambió la url del banner 'advBlock' y se modificó la conformación del path de los banners
		}
	*/
	}

	var _init = function() {
		_startCarroussel();

		var activities = new Activities(_stage);
		Gonow.stage.activities = activities;
		
//		var searchArea = new Search(_stage);
//		Gonow.stage.searchArea = searchArea;

		_initEvents();
		
		_initAdvs();
	};

	_init.call();
};

