









if (!this.FontResizer) {
    this.FontResizer = {};
}
FontResizer = {
	sizeUnit:       "px",
	defaultSize:    14,
	maxSize:        24,
	minSize:        10,
	adjustList:[],
	botonMasON: "images/btn_mas.jpg",
	botonMasOFF: "images/btn_mas_hover.jpg",
	botonMenosON: "images/btn_menos.jpg",
	botonMenosOFF: "images/btn_menos_hover.jpg",
	setDefaults : function(dflt, min, max, clases) {
		this.defaultSize = dflt;
		this.maxSize = max;
		this.minSize = min;
		if (clases) this.set(dflt, min, max, clases);
	},
	set : function(dflt, min, max, clases) {
		var ln = this.adjustList.length;
		for(var i=0; clases[i]; i++) {
			this.adjustList[ln+i]=[];
			this.adjustList[ln+i]["sel"] = clases[i];
			this.adjustList[ln+i]["dflt"] = dflt;
			this.adjustList[ln+i]["min"] = min||this.minSize;
			this.adjustList[ln+i]["max"] = max||this.maxSize;
			this.adjustList[ln+i]["ratio"] = this.adjustList[ln+i]["dflt"]/this.defaultSize;
		}
	},
	init : function() {
		this.curSize = this.defaultSize;
		if (this.curSize == this.minSize) {
			$J("#botonMenos").attr("src", this.botonMenosOFF);
		} else {
			$J("#botonMenos").attr("src", this.botonMenosON);
		}
		if (this.curSize == this.maxSize) {
			$J("#botonMas").attr("src", this.botonMasOFF);
		} else {
			$J("#botonMas").attr("src", this.botonMasON);
		}
	},
	adjust : function(n) {
		if (!this.curSize) return;
		var alist, size, list, i;
		if (n>0) {
			if (this.curSize+n > this.maxSize)
				n = this.maxSize - this.curSize;
		} else if (n<0) {
			if (this.curSize+n < this.minSize)
				n = this.minSize - this.curSize;
		}
		if (n==0) return;
		this.curSize+=n;
		alist = this.adjustList;
		for(i=0; alist[i]; i++) {
			size = this.curSize*alist[i]['ratio'];
			size = Math.max(alist[i]['min'],size);
			size = Math.min(alist[i]['max'],size);
			$J(alist[i]['sel']).css('font-size', size+this.sizeUnit);
		}
		if (this.curSize == this.minSize) {
			$J("#botonMenos").attr("src", this.botonMenosOFF);
		} else {
			$J("#botonMenos").attr("src", this.botonMenosON);
		}
		if (this.curSize == this.maxSize) {
			$J("#botonMas").attr("src", this.botonMasOFF);
		} else {
			$J("#botonMas").attr("src", this.botonMasON);
		}
	},
	reset : function() {
		if (!this.curSize) return;
		var alist = this.adjustList, list, i;
		for(i=0; alist[i]; i++) {
			$J(alist[i]['sel']).css('font-size', '');
		}
		this.curSize = this.defaultSize;
	}
}

	/* INI D20100030 /vperez / adecuacion */
	function open_despliegue(tipo, posicion, advertiseId, addressId, status, event_label) {
	var idDespl = "despliegue_" + tipo + "_" + posicion;
		var idDesplCont = idDespl;////"despliegue_" + tipo + "_contenido_" + posicion;
		var valor = document.getElementById('info'+posicion).style.display; //document.getElementById(idDespl).style.display;
	var loadingHtml = '<table style="padding: 0px; border-collapse: collapse; height:100%; width:100%;"><tr><td align="center" style="text-align: center; vertical-align:middle; padding: 0px; border-width: 0px;"><img src="images/carregando.gif" alt="" /></td></tr></table>';
	var errorHtml = '<table style="padding: 0px; border-collapse: collapse; height:100%; width:100%;"><tr><td align="center" style="text-align: center; vertical-align:middle; padding: 0px; border-width: 0px;">Ocurri? un error obteniendo la informaci?n.</td></tr></table>';
		$J('#presentacion'+posicion).css('display','none');
		$J('#video'+posicion).css('display','none');
		
		if (document.getElementById('info'+posicion).style.display=='none' ){
			document.getElementById('info'+posicion).style.display='block';
		}
		
	if(valor == 'none') {
			////$J('.desplegable').slideUp('slow');
		$J('#' + idDesplCont).html(loadingHtml);
		$J('#' + idDespl).slideDown('slow', function(){
				////$J('.desplegable_det').css({'overflow':'auto','overflow-x' : 'hidden'});
				////$J('.desplegable_llamada_gratis').css({'overflow':'auto','overflow-x' : 'hidden'});
				////$J('.loadvideos').css('display','block');
				////$J('.loadpresentacion').css('display','block');
			var url_page = '';
			var event_category = '';
			var params = "addressId="+addressId+"&advertiseId="+advertiseId+"&status="+status; /* Req. M20100459 / cfveliz */
			if (tipo == 'direccion') {
				event_category = 'Direcciones';
				url_page = 'resultAddress.do';
				/* INICIO Req. M20100459 / cfveliz */
					var stateId = document.getElementById("stateId").value; /*Req. D20100030 vperez*/
					var cityId = document.getElementById("cityId").value; /*Req. D20100030 vperez*/
					var suburbId = document.getElementById("suburbId").value; /*Req. D20100030 vperez*/ /* Req. M20100507 / cfveliz */
				params = params+"&stateId="+stateId+"&cityId="+cityId+"&suburbId="+suburbId; /* Req. M20100507 / cfveliz */
				/* FIN Req. M20100459 / cfveliz */
			} else if (tipo == 'llamada') {
				event_category = 'Llama gratis';
				url_page = 'resultFreeCall.do';
			} else if (tipo == 'video') {
				event_category = 'Video';
				url_page = 'resultVideo.do';
			} else if (tipo == 'presentacion') {
				event_category = 'Presentacion';
				url_page = 'flashIntro.do';
			}
			// Inicio Req. M20110025 / Kevin Sosa / enero 2011
			else if (tipo='cupon') {
				event_category = 'Cupon';
				url_page = 'listaCupon.do';
				params = params+"&dptoId="+dptoId;
			}
			// Fin Req. M20110025
			// M20100086 / cfveliz: Tracking de eventos Analytics
			_gaq.push(['_trackEvent', event_category, 'Abrir', event_label]);
				//url_page = 'http://localhost:8080/paginasamarillas/'+url_page;
			
			$J.ajax({
				type: "GET",
				url: url_page,
				data: params, /* Req. M20100459 / cfveliz */
				success: function(data, textStatus) {
					if (tipo == 'presentacion') {
						var str = [];
						str.push('<object id="fiXY817" type="application/x-shockwave-flash" data="images/flashLoader.swf?swf=/dbimages/' + data + '" width="600" height="400">');
						str.push('<param name="movie" value="images/flashLoader.swf?swf=/dbimages/' + data + '" />');
						str.push('<param name="wmode" value="transparent" />');
						str.push('</object>');
						$J('#' + idDesplCont).html(str.join(''));
					} else {
						$J('#' + idDesplCont).html(data);
					}
				},
				error: function(data, textStatus) {
					$J('#' + idDesplCont).html(errorHtml);
				}
			});
		});
	} else {
		// $J('.desplegable_det').css('overflow','hidden');
		// $J('#' + idDespl).slideUp('slow');
		close_despliegue(tipo, posicion, 'Cerrar', event_label);
	}
}

function close_despliegue(tipo, posicion, event_action, event_label) {
	var event_category = '';
	if (tipo == 'direccion') {
		event_category = 'Direcciones';
	} else if (tipo == 'llamada') {
		event_category = 'Llama gratis';
	} else if (tipo == 'video') {
		event_category = 'Video';
	} else if (tipo == 'presentacion') {
		event_category = 'Presentacion';
	}
	// M20100086 / cfveliz: Tracking de eventos Analytics
	_gaq.push(['_trackEvent', event_category, event_action, event_label]);
		$J('#info'+posicion).css('display','none');
		$J('#presentacion'+posicion).css('display','none');
		$J('#video'+posicion).css('display','none');
	var idDespl = "despliegue_" + tipo + "_" + posicion;
	$J('#' + idDespl).slideUp('slow');
}
/* FIN D20100030 /vperez / adecuacion */
Require.isLoaded['resultList'] = true;

/**
 * Funcion qe dispara el formulario de busqued de la barra de resultados
 * 
 * @param searchForm
 * @param keyword
 * @return
 */
function submitSearchBar ( searchForm , keyword ) 
{
	
	var _searchForm = $Y.Dom.get(searchForm);
	if (typeof (_searchForm )=='undefined' || _searchForm  == null) return ;
		
	var _elements   = $Y.Dom.get(searchForm);
	var i = 0;
	for ( i = 0 ; i < _elements.length ; i++)
	{	
		if (_elements[i].id == 'stateId') _elements[i].value =  TPI.stateId ;
		if (_elements[i].id == 'cityId') _elements[i].value =  TPI.cityId ;
		if (_elements[i].id == 'suburbId') _elements[i].value =  TPI.suburbId ;
		if (_elements[i].id == 'keyword') _elements[i].value =  $Y.Dom.get(keyword).value ;
	//	if (_elements[i].id == keyword ) _elements[i].value =  '' ;
		
	}
	
	//_searchForm.submit();
	
	return true;
}
Require.isLoaded['searchBar'] = true;


/**
 * . . . . . . . .  . . . . . . .  . . . . . . . . . . . . . .   
{
 'stateCombo' :'stateId',
 'cityCombo'  :'cityId', 
 'suburbCombo':'suburbId'
} 
   . . . . . . . .  . . . . . . .  . . . . . . . . . . . . . .
 **/

var EMPTYMESSAGE = 'Selecciona Dpto/Distrito';
var SUFFIXMESSGE = 'Buscar en: ';

function Filter( parameters ) 
{
	var _self = this;
	var _changeCityFlag = false, _changeSuburbFlag = false;

	this.stateCombo  = '';
	this.cityCombo   = '';
	this.suburbCombo = '';
	
	
	function moveFilters() {
        var filterLocation  = $Y.Dom.get( _self.filterLocation  );
        var filterContainer = $Y.Dom.get( _self.filterContainer );

        var pos 			= $Y.Dom.getXY( filterLocation  );
        var wh  			= getWH( filterLocation );
        pos[1] += wh.h+2;
        $Y.Dom.setXY( filterContainer , pos);
       //alert (pos);
        //$Y.Dom.setStyle(_container, 'width', (wh.w-4)+'px');
	}
	

	function _setSelectValue(pObj, pValue) {
		var obj = pObj.options;

		if (pValue != '') {
			for (var cI = 0, lO = obj.length; cI < lO; cI++) {
				if (obj[cI].value == pValue) {
					pObj.selectedIndex = cI;
					break;
				}
			}
		}
	}

	
	function _openCombos() {
		var filterContainer = $Y.Dom.get(_self.filterContainer);
		var filterLocation  = $Y.Dom.get( _self.filterLocation  )
		
		if ( typeof( filterContainer ) != 'undefined' &&  filterContainer != null) 
		{
			
			if ( filterContainer.style.display != 'block' )
			{

				//$Y.Dom.get(filterLocation).value = '';
				
				filterContainer.style.display = 'block' ;
				moveFilters(); 
				setTimeout(function() 
						{ $Y.Event.addListener(document, 'click', _clickOut);}, 10);
			}
			else
			{
				filterContainer.style.display = 'none' ;
				$Y.Event.removeListener(document, 'click', _clickOut);
			}
			
			
		}
	}	
	
	function _clickOut(e) 
	{
		var _e = $Y.Event.getEvent(e);
		var _t = $Y.Event.getTarget(_e);
		var _n = $Y.Dom.get(_self.filterContainer);

		if (!$Y.Dom.isAncestor(_n, _t)) 
		{
			if (TPI.stateId != $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].value) 
				_redirecFilter();

			_openCombos();
		}
	}
	
	function _redirecFilter() {
		var l_url = []
		l_url.push('result.do');
		l_url.push('?status=' + TPI.filterStatus);
		l_url.push('&stateId=' + TPI.stateId);
		l_url.push('&cityId=' + TPI.cityId);
		l_url.push('&suburbId=' + TPI.suburbId);
		l_url.push('&seed=' + TPI.filterSeed);
		l_url.push('&keyword=' + $Y.Dom.get('keyword').value);
		l_url.push('&companyName=' + TPI.companyName);
		l_url.push('&stateIdFilter=' + $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].value); 
		l_url.push('&stateDescFilter=' + $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].text);
		l_url.push('&cityIdFilter=' + $Y.Dom.get(_self.cityCombo).options[$Y.Dom.get(_self.cityCombo).selectedIndex].value);
		l_url.push('&cityDescFilter=' + $Y.Dom.get(_self.cityCombo).options[$Y.Dom.get(_self.cityCombo).selectedIndex].text);
		l_url.push('&suburbIdFilter=' + $Y.Dom.get(_self.suburbCombo).options[$Y.Dom.get(_self.suburbCombo).selectedIndex].value);
		l_url.push('&suburbDescFilter=' + $Y.Dom.get(_self.suburbCombo).options[$Y.Dom.get(_self.suburbCombo).selectedIndex].text);

		setTimeout(function() {
			document.location.href = l_url.join('');
		}, 1);
	}	
	
	
	function _changeStateFilter() {

		var selC = $Y.Dom.get(_self.cityCombo);
		selC.options.length = 0;
		selC.options[0] = new Option('Localidad', '');
		
		var selS = $Y.Dom.get(_self.suburbCombo);
		selS.options.length = 0;
		selS.options[0] = new Option('Distrito', '');

		if ($Y.Dom.get(_self.stateCombo).selectedIndex > 0) {
			$Y.Dom.get(_self.filterLocation).value = $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].text;
		} else {
			$Y.Dom.get(_self.filterLocation).value = '';
		}

		_handleChangeStateFilter();
	}

	function _changeCityFilter() {

		var selS = $Y.Dom.get(_self.suburbCombo);
		selS.options.length = 0;
		selS.options[0] = new Option('Distrito', '');

		if ($Y.Dom.get(_self.cityCombo).selectedIndex > 0) {
			$Y.Dom.get(_self.filterLocation).value = $Y.Dom.get(_self.cityCombo).options[$Y.Dom.get(_self.cityCombo).selectedIndex].text + ', ' +$Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].text;
		} 
		else if ($Y.Dom.get(_self.stateCombo).selectedIndex > 0) {
			$Y.Dom.get(_self.filterLocation).value = $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].text;
		} else {
			$Y.Dom.get(_self.filterLocation).value = '';
		}

		
		_handleChangeCityFilter();
	}

	function _changeSuburbFilter() 
	{
		if ( $Y.Dom.get(_self.suburbCombo).selectedIndex > 0 ) 
		{
			$Y.Dom.get(_self.filterLocation).value = $Y.Dom.get(_self.suburbCombo).options[$Y.Dom.get(_self.suburbCombo).selectedIndex].text + ', ' + $Y.Dom.get(_self.cityCombo).options[$Y.Dom.get(_self.cityCombo).selectedIndex].text;
		} 
		else if ($Y.Dom.get(_self.cityCombo).selectedIndex > 0) 
		{
			$Y.Dom.get(_self.filterLocation).value = $Y.Dom.get(_self.cityCombo).options[$Y.Dom.get(_self.cityCombo).selectedIndex].text + ', ' + $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].text;
		} 
		else if ($Y.Dom.get(_self.stateCombo).selectedIndex > 0) 
		{
			$Y.Dom.get(_self.filterLocation).value = $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].text;
		} 
		else 
		{
			$Y.Dom.get(_self.filterLocation).value = '';
		}

		if ( (TPI.stateId != $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].value) || 
			 (TPI.cityId != $Y.Dom.get(_self.cityCombo).options[$Y.Dom.get(_self.cityCombo).selectedIndex].value) || 
			 (TPI.suburbId != $Y.Dom.get(_self.suburbCombo).options[$Y.Dom.get(_self.suburbCombo).selectedIndex].value) ) 
		{
			_redirecFilter();
		}
	}	
	
	function _setEventsFilter() {

		
		$Y.Dom.get(_self.stateCombo).onchange = _changeStateFilter;
		$Y.Dom.get(_self.cityCombo).onchange = _changeCityFilter;
		$Y.Dom.get(_self.suburbCombo).onchange = _changeSuburbFilter;
		$Y.Dom.get(_self.filterButton).onclick = _openCombos;

		//$Y.Event.addListener(_self.filterButton, 'click', _openCombos);
	}
	
	
	function _handleInitFilterSuccess() 
	{

		var $S = g_filterState;
		var sel = $Y.Dom.get(_self.stateCombo);

		for (var cI = 0, cIo = 1,lS = $S.length; cI < lS; cI++, cIo++) {
			sel.options[cIo] = new Option($S[cI].desc, $S[cI].value);
			if ($S[cI].id == TPI.stateId && !_filter) { sel.options[cIo].selected = true; }
		}
		
		if ($Y.Dom.get(_self.stateCombo).selectedIndex == 0)
		{
			$Y.Dom.get(_self.cityCombo).disabled = true ;
			$Y.Dom.get(_self.suburbCombo).disabled = true ;
		}
		else
		{
			$Y.Dom.get(_self.cityCombo).disabled = false ;
			$Y.Dom.get(_self.suburbCombo).disabled = false ;
		}

		_setEventsFilter();
	}	


	function _handleChangeStateFilter() {
		var $C = g_filterStateCities[$Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].value];
		var sel = $Y.Dom.get(_self.cityCombo);

		for (var cI = 0, cIo = 1,lC = $C.length; cI < lC; cI++, cIo++) {
			sel.options[cIo] = new Option($C[cI].desc, $C[cI].value);
			if ($C[cI].value == TPI.cityId) { sel.options[cIo].selected = true; }
		}
		
		if ( sel.options.length <= 1 ) 
			sel.disabled = true ;
		else
			sel.disabled = false;
		
	}

	function _handleChangeCityFilter() {
		var $S = g_filterCityDistricts[$Y.Dom.get(_self.cityCombo).options[$Y.Dom.get(_self.cityCombo).selectedIndex].value];
		var sel = $Y.Dom.get(_self.suburbCombo);
		
		if ($S) {
			for (var cI = 0, cIo = 1,lS = $S.length; cI < lS; cI++, cIo++) {
				sel.options[cIo] = new Option($S[cI].desc, $S[cI].value);
				if ($S[cI].value == TPI.suburbId) { sel.options[cIo].selected = true; }
			}
		} else {
			if ((TPI.stateId != $Y.Dom.get(_self.stateCombo).options[$Y.Dom.get(_self.stateCombo).selectedIndex].value) ||
				(TPI.cityId != $Y.Dom.get(_self.cityCombo).options[$Y.Dom.get(_self.cityCombo).selectedIndex].value)) {
				_redirecFilter();
			}
		}
		
		if ( sel.options.length <= 1 ) 
			sel.disabled = true ;
		else 
			sel.disabled = false ;
	}	
	
	this.init = function() 
	{
	   //recogiendo parametros
		var s_key;
		for (s_key in parameters)
			this[s_key] = parameters[s_key];
		
		if ( typeof (this.filter) != 'undefined' ) this.filter = false;
		
		moveFilters(); 
		
		_handleInitFilterSuccess();
	}
	
	/**
	 *  
	 */
	
	this.setResult = function(pItem, pResult) {
		var _ind = parseInt(pItem.childNodes[0].id.substr(1));
		var _result = pResult[_ind];

	}
}
Require.isLoaded['Filter'] = true;

function  ScrollCenter ( parameters ) 
{
	var _self 			= this;
	var _loading 		= false;
	var _loaded 		= false;
	
	this.container		= null;
	
	this.floatX			= 0;
	this.floatY			= 0; 
	this.layerwidth		= 0;
	this.layerheight	= 0;
	this.halign			= "left";
	this.valign			= "top";
	this.delayspeed		= 0;
	this.ifloatX		= 0;
	this.ifloatY		= 0;
	this.lastX			=-1;
	this.lastY			=-1;

	this.ajust_object_timer = 0;	
	
	function _getScrollTop ()
	{
		return $Y.Dom.getDocumentScrollTop() ;//( YAHOO.env.ua.ie > 5 ? (document.compatMode=="CSS1Compat"?document.documentElement.scrollTop:document.body.scrollTop) :  ( window.pageYOffset?window.pageYOffset:  Math.max(document.body.scrollTop,document.documentElement.scrollTop))  ) ;
	}

	function _getScrollLeft ()
	{
		return $Y.Dom.getDocumentScrollLeft();//( YAHOO.env.ua.ie > 5 ? (document.compatMode=="CSS1Compat"?document.documentElement.scrollLeft:document.body.scrollLeft) :  ( window.pageXOffset?window.pageXOffset:  Math.max(document.body.scrollLeft,document.documentElement.scrollLeft)) ) ;
	}
	
	
	function _adjust() {

	    var innerHeight=  $Y.Dom.getClientHeight();
	    var innerWidth =  $Y.Dom.getClientWidth();
		
		if (_self.lastX == -1 || _self.delayspeed == 0) 
		{
			_self.lastX = _getScrollLeft() + _self.floatX;
			_self.lastY = _getScrollTop () + _self.floatY;
		} 
		else 
		{
			var dx = Math.abs( _getScrollLeft() + _self.floatX - _self.lastX);
			var dy = Math.abs( _getScrollTop () + _self.floatY - _self.lastY);
			var d  = Math.sqrt(dx * dx + dy * dy);
			var c  = Math.round(d / 10);
			
			if ( _getScrollLeft() + _self.floatX > _self.lastX) {
				_self.lastX = _self.lastX + _self.delayspeed + c;
			}
			if ( _getScrollLeft() + _self.floatX < _self.lastX) {
				_self.lastX = _self.lastX - _self.delayspeed - c;
			}
			if ( _getScrollTop () + _self.floatY > _self.lastY) {
				_self.lastY = _self.lastY + _self.delayspeed + c;
			}
			if ( _getScrollTop () + _self.floatY < _self.lastY) {
				_self.lastY = _self.lastY - _self.delayspeed - c;
			}

			
	        var obj 		= $Y.Dom.get(_self.container);
			
	        obj.style.left = _self.lastX+'px';
	        obj.style.top  = _self.lastY+'px';
		}
		
		_self.ajust_object_timer = setTimeout(_adjust, 5);
	}
	
	function _define( e ) 
	{
        //var innerHeight=  ( YAHOO.env.ua.ie > 5  ? document.body.clientHeight: window.innerHeight);
        //var innerWidth =  ( YAHOO.env.ua.ie > 5  ? document.body.clientWidth : window.innerWidth );
		
	    var innerHeight=  $Y.Dom.getClientHeight();
	    var innerWidth =  $Y.Dom.getClientWidth();
	   
        
		if (_self.halign == "left") 
			_self.floatX = _self.ifloatX;
		if (_self.halign == "right") 
			_self.floatX = innerWidth  - _self.ifloatX - _self.layerwidth - 20;
		if (_self.halign == "center") 
			_self.floatX = Math.round((   innerWidth - 20) / 2)- Math.round(_self.layerwidth / 2);
		if (_self.valign == "top") 
			_self.floatY = _self.ifloatY;
		if (_self.valign == "bottom") 
			_self.floatY = innerHeight - _self.ifloatY - _self.layerheight;
		if (_self.valign == "center") 
			_self.floatY = Math.round((  innerHeight - 20) / 2)- Math.round(_self.layerheight / 2);
	}	
	
	function _process()
	{
		_define( null );

		$Y.Event.addListener($Y.Dom.get(_self.container) , 'resize', _define  );
		$Y.Event.addListener($Y.Dom.get(_self.container) , 'scroll', _define  );
		
		_adjust();
	}
	
	this.loading 	= function() { _loading = false; }
	this.loaded 	= function() { _loading = true; }
	this.pageLoaded = function() { _loaded = true; }
	this.isLoading 	= function() { return _loading; }
	this.isLoaded 	= function() { return _loaded; }
	
	this.init = function() 
	{
		var s_key;
		
		for (s_key in parameters)
			this[s_key] = parameters[s_key];

		if (typeof(this.interval)=='undefined' || this.interval == 0)
			this.interval = 5000;
		
		if ( typeof(this.halign) == 'undefined' )
			this.halign = "center";
    	
		if ( typeof(this.valign ) == 'undefined' )
			this.valign = "center";
		
		if ( typeof(this.delayspeed ) == 'undefined'  || this.delayspeed == 0)
			this.delayspeed		= 1;

		if ( typeof(this.lastX ) == 'undefined'  || this.lastX == 0)
			this.lastX = -1;
		
		if ( typeof(this.lastY ) == 'undefined'  || this.lastY == 0)
			this.lastY = -1;
		
		if ( typeof(this.container ) == 'undefined'  || this.container == '')
			return ;

		//. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
		//
		//
		//
		//. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

        var obj 		= $Y.Dom.get(this.container);
        var l_point 	= getXY(obj);
        var l_dimension = getWH(obj);

        var innerHeight=  $Y.Dom.getClientHeight();
        var innerWidth =  $Y.Dom.getClientWidth();

        if ( typeof(this.floatX ) == 'undefined'  || this.floatX == 0)
			this.floatX = Math.abs( innerWidth  - l_dimension.w ) / 2;

        if ( typeof(this.floatY ) == 'undefined'  || this.floatY == 0)
			this.floatY = Math.abs( innerHeight - l_dimension.h ) / 2;
        
        $Y.Dom.setStyle(this.container,'top',  this.floatY + 'px');
        $Y.Dom.setStyle(this.container,'left', this.floatX + 'px');

    	this.layerwidth 	= l_dimension.w;
    	this.layerheight 	= l_dimension.h;
    	
    	this.ifloatX 		= this.floatX;
		this.ifloatY 		= this.floatY;
		
		_self.loading();
		
		_process() ;
	}

	
	this.showObject = function() 
	{
	}
	
	
}
Require.isLoaded['ScrollCenter'] = true;

var _popupTimer  = 0;

function closePopup()
{
	$Y.Dom.removeClass('popupBox' ,"popupContact");
	$Y.Dom.removeClass('popupBkg' ,"contactBkg");
	$Y.Dom.removeClass('popupBox' ,"popupSendEmail");
	$Y.Dom.removeClass('popupBkg' ,"sendEmailBkg");
	$Y.Dom.setStyle('popupBox', 'display', 'none');
	$Y.Dom.setStyle('rootPopup', 'display', 'none');
	$Y.Dom.setStyle('popupBoxLoading', 'display', 'none');
	
	//M20090478 - JABG 20100120
	$Y.Dom.get('popupContainer').innerHTML = "";
	clearTimeout(_popupTimer);
	//M20090478 - JABG 20100120
}

function Popup ( parameters ) 
{
    // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 	//  Se implemento la mejora centro estatico
	//  obtener el centro mediante el alto de client
    // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	
	var p_style 	= 'popupDefault';
	var p_styleBkg	= 'popupDefaultBkg'; 
	var p_page      = '';
	var _self		= this ;
	
	this.init = function() 
	{	
		var s_key;
		
		for (s_key in parameters)
			this[s_key] = parameters[s_key];
		
		p_page      = this.url;
	
		$Y.Dom.addClass('popupBox', p_style);
		$Y.Dom.addClass('popupBkg', p_styleBkg);
	
		if (typeof( this.height ) != 'undefined')
			$Y.Dom.setStyle('popupBox', 'height', this.height+'px');
			
		if (typeof( this.width ) != 'undefined')
			$Y.Dom.setStyle('popupBox', 'width', this.width+'px');
			
		$Y.Dom.setStyle('rootPopup', 'display', 'block');

		$Y.Dom.setStyle('popupBox', 'position', 'absolute');
		$Y.Dom.setStyle('popupBox', 'display', 'block');
	    
        var obj 		= $Y.Dom.get('popupBox');
        var l_point 	= getXY(obj);
        var l_dimension = getWH(obj);
        var posYCenter =  0;
        var posXCenter =  0;
        
        var innerHeight=  $Y.Dom.getClientHeight();
        var innerWidth =  $Y.Dom.getClientWidth();
        
       	posYCenter = Math.abs( innerHeight - l_dimension.h ) / 2;
    	posXCenter = Math.abs( innerWidth  - l_dimension.w ) / 2;

        $Y.Dom.setStyle('popupBox','top',  posYCenter + 'px');
        $Y.Dom.setStyle('popupBox','left', posXCenter + 'px');

    	layerwidth 	= l_dimension.w;
    	layerheight = l_dimension.h;
	    
		$Y.Dom.setStyle('popupBoxLoading', 'display', 'block');
		
	     var h = 0, w=0;
	
	     $Y.Dom.setStyle('disablerDiv', 'top', '0px');
	     $Y.Dom.setStyle('disablerDiv', 'left', '0px');
	     $Y.Dom.setStyle('rootPopup', 'position', 'absolute');
	     $Y.Dom.setStyle('popupContainer', 'display', 'none');

	     //M20090478 - JABG 20100120
	     //h = Math.max(document.body.scrollHeight, document.documentElement.offsetHeight);
	     h = $Y.Dom.getDocumentHeight();
		 w = Math.max(document.body.scrollWidth, document.documentElement.offsetWidth);
		 
	     $Y.Dom.get('disablerDiv').style.height = (h) + "px";
	     //M20090478 - JABG 20100120
	
		var callback = {
			success: function(o){
				

				if (typeof( _self.process ) != 'undefined') 
					$Y.Dom.get('popupContainer').innerHTML = _self.process ( o.responseText );
				else
					$Y.Dom.get('popupContainer').innerHTML = o.responseText;

				$Y.Dom.setStyle('popupBoxLoading', 'display', 'none');
				$Y.Dom.setStyle('popupContainer', 'display', 'block');
	        	
				/* INICIO Req. S20100078 / cfveliz */
				if (typeof(_self.scrollable) != 'undefined') {
					if (_self.scrollable) {
						TPI.scrollCenter = new ScrollCenter ({'container' : 'popupBox'});
						TPI.scrollCenter.init();
					}
				}
	            /* FIN Req. S20100078 / cfveliz */
				/* INICIO Req. M20110198*/
				if (typeof( _self.ejecutar ) != 'undefined') {
					_self.ejecutar();
				}
				/* FIN Req. M20110198*/
			}, 
			failure: function(o){
				//Stage.handleFailure(o);
				$Y.Dom.get('popupContainer').innerHTML = "";	//M20090478 - JABG 20100120
			}
		}
		
		/* INICIO Req. M20100154 / cfveliz */
		if (typeof( _self.url ) != 'undefined') {
			$Y.Connect.asyncRequest('GET', p_page, callback);
		} else {
			$Y.Dom.get('popupContainer').innerHTML = _self.process();
			$Y.Dom.setStyle('popupBoxLoading', 'display', 'none');
			$Y.Dom.setStyle('popupContainer', 'display', 'block');
        	
			/* INICIO Req. S20100078 / cfveliz */
			if (typeof(_self.scrollable) != 'undefined') {
				if (_self.scrollable) {
					TPI.scrollCenter = new ScrollCenter ({'container' : 'popupBox'});
		            TPI.scrollCenter.init();
				}
			}
            /* FIN Req. S20100078 / cfveliz */
		}
		/* FIN Req. M20100154 / cfveliz */
		
	     if (typeof(this.autoClose)!='undefined')
	     {
	    	if (_popupTimer !=0 ) clearTimeout(_popupTimer);
	    	
	    	 _popupTimer = setTimeout( this.close, this.autoClose );
	     }
	
	}

	this.close = function () 
	{
		closePopup()
	}	
}

Require.isLoaded['Popup'] = true;

<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
Require.isLoaded['rollover'] = true;

function redimensionarImagen(object, anchoReal, altoReal){
	var anchoObjeto = object.width;
	var altoObjeto = object.height;
	var factorAncho = anchoObjeto/anchoReal;
	var factorAlto = altoObjeto/altoReal;
	
	if ( factorAncho > factorAlto && factorAncho > 1 ){
		object.width = anchoReal;
		object.height = Math.round(altoObjeto/factorAncho); 
	}else if ( factorAncho < factorAlto && factorAlto > 1 ){
		object.height = altoReal;
		object.width  = Math.round(anchoObjeto/factorAlto); 
	}	else if (factorAncho == factorAlto && factorAlto >= 1 ){
		object.height = altoReal;
		object.width  = anchoReal; 
	}
}

/* INICIO Req. M20100302 /cfveliz */
/* Usar esta funci?n cuando la imagen no existe para darle dimensiones por defecto */
function redimensionarImagenError(object, anchoReal, altoReal) {
	object.height = altoReal;
	object.width  = anchoReal;
}
/* FIN Req. M20100302 /cfveliz */
Require.isLoaded['imagenes'] = true;

