var cantCombos = 0;
var divIdDynamicOptions = 'opciones_dinamicas';
var divIdTipoProp = 'tipo_prop';
var solapaAlquiler = false;
var solapaVenta = false;
var staticDomain = 'http://static.zonaprop.com.ar';
var lastCallNodeId = 0;
var openVI = true;


function cambiaTipoOperacion(id)
{
	$j('#buscadorSmall').empty().html('<center><img src="http://static.zonaprop.com.ar/static/images/loading.gif" /></center>');
	$j('#buscadorSmall').load('search-web/search.htm?actionId=' + id, function() {
		checkCurrency();
	});

	$j('#buscador').empty().html('<center><img src="http://static.zonaprop.com.ar/static/images/loading.gif" /></center>');
	$j('#buscador').load('search-web/search.htm?actionId=' + id, function() {
		checkCurrency();
	});
	
	return false;
}

function getComboData(idState, url, defaultOption, comboName, paramName)
{
	var oParam ={combo:comboName,tag:'Item',labelValue:'name',idValue:'id',defOption:defaultOption};
	var oXml = new HTMLHttpRequest(loadComboData,oParam);
	var sParam = '';
	sParam += paramName + '=' + idState;
	var sURL = url + '?' + sParam;
	oXml.loadXML(sURL);
}

function loadComboData(sResult, oParam)
{
	cargarComboXML(oParam.combo,oParam.tag,oParam.labelValue,oParam.idValue,null, sResult, true,oParam.defOption,"");
}

function executeSearch()
{
	var navchannel = null;
	var tipoPropiedadValor =  $('dynamic').value;
	var selectDynamic = $('dynamic' + (cantCombos - 1));
	
	if(tipoPropiedadValor == '')
	{
		var errDiv= 'errorImg';
		var divId = divIdTipoProp;
		
		var mandatory = $('mandatory2');
		
		if (mandatory) { 
			mandatory.className = 'rojo';
		}

		$('col2').className = 'colA rojo';

		displayBlock(errDiv);
		return;
	}
	else
	{
		var divId = 'col2';
		
		$(divId).className = 'colA';
		
		remove('errorImg');
		
		navchannel = getNavChannelSelected();
	}
	
	var locationChannelId = getLocationChannelSelected();
	
	var priceFrom = $('pricefrom').value; 
	
	var priceTo = $('priceto').value; 
	
	for (i = 0; i < document.getElementsByName('moneda').length; i++){
		if (document.getElementsByName('moneda')[i].checked)
		break;
	}
	
	if(document.getElementsByName('moneda')[i] == null)
	{
		i = 0;
	}
	var currency = document.getElementsByName('moneda')[i].value;
	
	if(priceFrom == null || priceFrom == '' || isNaN(priceFrom)){
		priceFrom = '0';
	}

	if(priceTo == null || priceTo == '' || isNaN(priceTo)){
		priceTo = '0';
	}

	getQueryData('/search-web/search/searchQuery.xml', navchannel, locationChannelId, priceFrom, priceTo, currency);
}


function executeHomeSearch() 
{

	var tipoPropiedadValor =  document.getElementById('dynamic').value;
	var selectDynamic = document.getElementById('dynamic' + (cantCombos - 1));
	var navchannel = getNavChannelSelected();
	var selectZone = document.getElementById('locationCombo').value;
	var returnValue = null;
	
	
	if(tipoPropiedadValor == '' || navchannel == '')
	{
		var errDiv= 'errorImg';
		var divId = divIdTipoProp;
		
		var mandatory = $('mandatory2');
		
		if ( mandatory) { 
			mandatory.className = 'rojo';
		}

		$('col2').className = 'colA rojo';

		displayBlock(errDiv);
				
		returnValue = true;
	}
	else {
		var divId = 'col2';
		
		$(divId).className = 'colA';
		
		remove('errorImg');

	} 
		
	if(selectZone == '')
	{
		var errDiv= 'errorImgZona';
		var divId = divIdTipoProp;
		
		var mandatory = $('mandatory2zona');
		
		if ( mandatory) { 
			mandatory.className = 'rojo';
		}

		$('zonaselect').className = 'colA rojo';

		displayBlock(errDiv);
		
		returnValue = true;
		
	}else
	{
		$j('#col2').className = 'colA';
		
		remove('errorImgZona');
	}

	if (returnValue == true) {
		return;
	}
		
	var locationChannelId = document.getElementById('locationChannlIds').value; 
		
	
	var priceFrom =  document.getElementById('pricefrom').value; 
	
	var priceTo =  document.getElementById('priceto').value; 
	
	for (i = 0; i < document.getElementsByName('moneda').length; i++){
		if (document.getElementsByName('moneda')[i].checked)
		break;
	}
	
	if(document.getElementsByName('moneda')[i] == null)
	{
		i = 0;
	}
	var currency = document.getElementsByName('moneda')[i].value;
	
	if(priceFrom == null || priceFrom == '' || isNaN(priceFrom)){
		priceFrom = '0';
	}

	if(priceTo == null || priceTo == '' || isNaN(priceTo)){
		priceTo = '0';
	}

	getQueryData('/search-web/search/searchQuery.xml', navchannel, locationChannelId, priceFrom, priceTo, currency);
}

function homeSearch() 
{

	var tipoPropiedadValor =  document.getElementById('dynamic').value;
	var selectDynamic = document.getElementById('dynamic' + (cantCombos - 1));
	var navchannel = getNavChannelSelected();
	var selectZone = document.getElementById('locationCombo').value;
	var ageCode = document.getElementById('ageCode').value;
	var returnValue = null;
	
	
	if(tipoPropiedadValor == '' || navchannel == ''){
		
		$j('#errorImg').fadeIn();
		returnValue = true;
	}
	else{
		remove('errorImg');
	} 
		
	if(selectZone == '')
	{
		
		$j('#errorImgZona').fadeIn();
		$j('#locationComboLabel').addClass('error');
		returnValue = true;
		
	}else
	{		
		remove('errorImgZona');
		$j('#locationComboLabel').removeClass('error');
	}
	
	//No ejecuta la busqueda
	if (returnValue == true) {
		return;
	}
	
	
	var locationChannelId = document.getElementById('locationChannlIds').value;
	var priceFrom =  document.getElementById('pricefrom').value; 
	var priceTo =  document.getElementById('priceto').value; 
	
	for (i = 0; i < document.getElementsByName('moneda').length; i++){
		if (document.getElementsByName('moneda')[i].checked)
		break;
	}	
	if(document.getElementsByName('moneda')[i] == null)	{
		i = 0;
	}
	
	var currency = document.getElementsByName('moneda')[i].value;
	
	if(priceFrom == null || priceFrom == '' || isNaN(priceFrom)){
		priceFrom = '0';
	}

	if(priceTo == null || priceTo == '' || isNaN(priceTo)){
		priceTo = '0';
	}

	executeQuery('/search-web/search/searchQuery.xml', navchannel, locationChannelId, priceFrom, priceTo, currency, ageCode);
}



function getNavChannelSelected(){
	var tipoPropiedadValor =   document.getElementById('dynamic').value;
	var selectDynamic =  document.getElementById('dynamic' + (cantCombos - 1));
	
	if(selectDynamic == null || selectDynamic.value == null || selectDynamic.value == '') {
		return tipoPropiedadValor;
	} else {
		return selectDynamic.value;
	}
}

function getTipoPropSelected(){
	var tipoProp =  document.getElementById('dynamic');
	if(tipoProp == null || tipoProp.value == null || tipoProp.value == '')
		return -1;
	else
		return tipoProp.value;
}

function getLocationChannelSelected(){
	var sDivId = 'search_location_sel_';
	
	var locationChannelId = 0;
	var x = 0;
	while($(sDivId + x) != null)
		x++;
	if(x > 0)
	{
		x = (x-1);
		locationChannelId = $(sDivId + x).value;
		// no tiene nada seleccionado, miro el padre
		if(locationChannelId == null || locationChannelId == 0 || locationChannelId == ''){
			if(x > 0){
				x = (x-1);
				locationChannelId = $(sDivId + x).value;
			}
		}
	}
	
	return locationChannelId;
}

function priceSearch(sIdentifier){

var slice = document.getElementById('sliceIdentifierTemplate').value;
var from = document.getElementById('Desde').value;
var to = document.getElementById('Hasta').value;
var currencies =document.getElementsByName('__currency__'); 

if (from == '')
	from = 0;
if (to == '')
	to = 0;

if (from == 0 && to == 0)
	return;


for (i=0;i<currencies.length;i++)
{ 
	if (currencies[i].checked)
	{
		var currency =  currencies[i].value;
	}
}

slice = slice.replace('__currency__', currency).replace('__from__', from).replace('__to__', to);

var searchContext = document.getElementById("search_context");

var hidden = document.createElement("INPUT");
hidden.setAttribute("type","hidden");
hidden.setAttribute("value", slice);
hidden.setAttribute("name", sIdentifier)

searchContext.appendChild(hidden);

buildQueryAndExcecuteSearch();

}



function buildQueryAndExcecuteSearch()
{
	var oParam ={tag:'Item',labelValue:'query'};
	var oXml = new HTMLHttpRequest(loadQuery,oParam);
	var sParam = '';
	var sURL = '/search-web/search/buildQuery.xml?';
	
	var searchContext = document.getElementById("search_context");
	var facets = searchContext.getElementsByTagName("input");
	
	for( i = 0; i < facets.length; i++){
		sURL = sURL + facets[i].name + '=' + facets[i].value;
	  
		if ( i < facets.length - 1 ) {
			sURL = sURL + '&';  
		}
	}
	
	oXml.loadXML(sURL);	
}


function getQueryData(url, navChannel, locationChannelId, priceFrom, priceTo, currency)
{
	var oParam ={tag:'Item',labelValue:'query'};
	var oXml = new HTMLHttpRequest(loadQuery,oParam);
	var sParam = '';
	if (priceFrom != 0 || priceTo != 0) {
		var sURL = url + '?' + '&navChannel=' + navChannel + '&locationChannelId=' + locationChannelId + '&priceFrom=' + priceFrom + '&priceTo=' + priceTo + '&currency=' + currency;
	}
	else 
	{
		var sURL = url + '?' + '&navChannel=' + navChannel + '&locationChannelId=' + locationChannelId;
	}
	
	
	oXml.loadXML(sURL);	
}

//Misma que la de arriba pero con la faceta Antiguedad
function executeQuery(url, navChannel, locationChannelId, priceFrom, priceTo, currency, ageCode)
{
	var oParam ={tag:'Item',labelValue:'query'};
	var oXml = new HTMLHttpRequest(loadQuery,oParam);
	var sParam = '';
	if (priceFrom != 0 || priceTo != 0) {
		var sURL = url + '?' + '&navChannel=' + navChannel + '&locationChannelId=' + locationChannelId + '&priceFrom=' + priceFrom + '&priceTo=' + priceTo + '&currency=' + currency + '&ageCode=' + ageCode;
	}
	else 
	{
		var sURL = url + '?' + '&navChannel=' + navChannel + '&locationChannelId=' + locationChannelId + '&ageCode=' + ageCode;
	}
	
	
	oXml.loadXML(sURL);	
}

function loadQuery(sResult, oParam)
{
	var oNodos = sResult.getElementsByTagName(oParam.tag);
	var x=0;
	
	for(x = 0; x<oNodos.length; x++ )
	{
		var oNodo = oNodos[x];
		
		var url = oNodo.getAttribute(oParam.labelValue);
		
		if(url.length > 2047) {
			alert('Por favor, seleccione menos opciones');
		} else {
			top.location.href = url;
		}
	}
}

function getNavChannelDynamicComboOptions(idState, url, defaultOption, paramName, dynamicOption)
{
	var oParam ={combo:'dynamic',tagItems:'Items',tagItem:'Item',labelValue:'name',idValue:'id',category:'category',defOption:defaultOption,dynOption:dynamicOption,mandatory:'mandatory',navChannelNodeId:'nodeId'};
	//var oParam ={combo:'dynamic',tagItems:'Items',tagItem:'Item',labelValue:'name',idValue:'id',category:'category',defOption:defaultOption,dynOption:dynamicOption,navChannelNodeId:'nodeId'};
	var oXml = new HTMLHttpRequest(createNavChannelCombo,oParam);
	var sParam = '';
	lastCallNodeId = idState;
	sParam += paramName + '=' + idState;
	var sURL = url + '?' + sParam;
	oXml.loadXML(sURL);
}

function createNavChannelCombo(sResult, oParam)
{
	var sCombo = oParam.combo;
	var sItems = oParam.tagItems;
	var sItem = oParam.tagItem;
	var sNombre = oParam.labelValue;
	var sValor = oParam.idValue;
	var sCategory = oParam.category;
	var iValorSeleccionado = null;
	var oXml = sResult;
	var bAccionGenerica = true;
	var sTextoGenerico = oParam.defOption;
	var sValorGenerico = "";
	var bDynamicOption = oParam.dynOption;
	var sMandatory = oParam.mandatory;
	var sNavChannelNodeId = oParam.navChannelNodeId;	
	var comboExistia = true;
	
	if ( oXml == null ) {
		return ;
	}
	
	var divId;
	if(bDynamicOption)
		divId = divIdDynamicOptions;
	else
		divId = divIdTipoProp;

	var oItems = oXml.getElementsByTagName(sItems);
	if ( oItems == null ||  oItems[0] == null  ) {
		return;
	}

	if(lastCallNodeId == oItems[0].getAttribute(sNavChannelNodeId))
	{
		var category = oItems[0].getAttribute(sCategory);
		var mandatory = oItems[0].getAttribute(sMandatory);

		if(category != null && category != '')
		{
			//Modifico los nuevos labels
			category = editLabel(category);
			// Creo el combo
			var oCombo = $(sCombo);
			if(bDynamicOption || $(sCombo) == null)
			{
				oCombo = document.createElement('select');
				comboExistia = false;
			}
			
			if(bDynamicOption)
			{
				oCombo.name = sCombo + cantCombos;
				oCombo.id = sCombo + cantCombos;
				oCombo.onchange = null;
			}
			else
			{
				var operationType = getOperationType();
				oCombo.onchange = function(){ cambiaTipoProp(this.value); }
				oCombo.name = sCombo;
				oCombo.id = sCombo;
				oCombo.className = "XL";										
			}
	
			//cargo el combo.
			var oNodos = oXml.getElementsByTagName(sItem);
			var x=0;
		
			if(!comboExistia){	
				var col2 = document.createElement('div');
				
				$(divId).appendChild(col2);
				col2.className = 'col2';
				
				if(bDynamicOption)
				{
					col2.id = 'combo' + cantCombos;
					cantCombos++;
				}
				else {
					col2.id = 'col2';
				}
			
				var colA = document.createElement('label');
				
				var label;
				if(mandatory == 'true' ) {
					label = document.createTextNode('* ' + category); 
				} else {
					label = document.createTextNode(category);
				}
				
				colA.appendChild(label);
				col2.appendChild(colA);	
			
				col2.appendChild(oCombo);
	
				var imageError = document.createElement('img');
				imageError.id = 'errorImg';
				imageError.src = staticDomain + "/static/images/error.gif";			
				imageError.style.display = "none";
	
				col2.appendChild(imageError);
			}
	
			if (bAccionGenerica)
			{
				var oItem = document.createElement("option");
				oItem.text = sTextoGenerico;
				oItem.value = sValorGenerico;
				oCombo.options.add(oItem,0);
		
				if(!iValorSeleccionado)
				{
					oCombo.selectedIndex= 0;
				}
			}
			
			for(x = 0; x<oNodos.length; x++ )
			{
				var oNodo = oNodos[x];
				
				var oItem = document.createElement("option");
				
				oItem.text = oNodo.getAttribute(sNombre);
				
				oItem.value = parseInt(oNodo.getAttribute(sValor));
				
				
				oCombo.options.add(oItem);
			}
	
			if ( bDynamicOption) {
				oCombo.onchange = function(){ 
					getNavChannelDynamicComboOptions(this.value,'/search-web/search/searchNavChannels.xml', 'Selecciona', 'nodeId', true); 
				}
			}
		}
	}
}


function removeNavChannelDynamicOptions(divId)
{
	var parent = $(divId);
	
	if(parent != null)
	{
		var x = 0;
		for(x = 0; x < parent.childNodes.length; x++){
		
			var child = parent.childNodes[x];
			if(child != null)
				parent.removeChild(child);
		}
	}
}

function removeOperationOptions(divId)
{
	var parent = $(divId);
	var child = $('col2');
	
	if(parent != null && child != null)
		parent.removeChild(child);
}

function getOperationType(){

	var solapaSelected = $('operationType');

	if(solapaSelected == null || solapaSelected.value == '' || solapaSelected.value == 'Venta')
		return 'venta';
	else if(solapaSelected.value == 'Alquiler')
		return 'alquiler';
	else
		return 'venta';
}


dynamicComboConfig = 
{
	dynamicLabels:true,
	rowClassName:'col2',
	leftClassName:'colA',
	rightClassName:'colB',
	mainComboContainer:'mainFormComboContainer',
	mandatoryClassName:'',
	inputId:'address.locationChannelId',
	otherId:'location.other',
	applyMandatory:false,
	seleccionar:'Todos',
	otherLabel:'Otro ',
	selectClassName:"",
	container:"_filaA_",
	containerA:"_divA_",
	containerB:"_divB_"
};

function cambiaTipoProp(valor){
	removeNavChannelDynamicOptions(divIdDynamicOptions); 
	removeChildsCombo( '', 0, '_filaA_' );
	getNavChannelDynamicComboOptions(valor,'/search-web/search/searchNavChannels.xml', 'Selecciona', 'nodeId', true);
	
	//onDinCombo(false, 'search_location', -1, '-1' );
}

function onDinCombo(isLeaf, prefix, index, selectedValue ) {
	var context = new Object();
	context.id = selectedValue;
	context.navChannel = getTipoPropSelected();
	dinCombo(isLeaf, prefix, index, selectedValue, context, null, null, index == -1);
	//toggleAll(false);
}

function postProcessDinCombo(prefix){
	if( null != document.getElementById(dynamicComboConfig.otherId)) document.getElementById(dynamicComboConfig.otherId).value='';
}

function hide(name, flag) {
	if ( flag == null || flag ) { 
		document.getElementById(name).style.visibility = "visible";
		document.getElementById(name).style.display= "block";
	} else {
		document.getElementById(name).style.visibility = "hidden";
		document.getElementById(name).style.display= "none";
	}
}

function toggleAll(flag) {
	hide("dummy", flag);
}

function showHideFaceta(facetName) {
	var className = document.getElementById('facet' + facetName).className;
	if(className == 'first on')
	{
		document.getElementById('facet' + facetName).className = 'first off';
		remove('slices' + facetName);
	}
	else
	{
		document.getElementById('facet' + facetName).className = 'first on';
		displayBlock('slices' + facetName);	
	}
}

function createMapUrl() {
	var url = "" + document.location;
	
	url = url.replace("#", "");
	if(url.indexOf("?") > 0) {
		url = url.replace(/\?.*/g, "");
	}

	return url;

}

function checkCurrency(){
	var businessDomainId = parseInt(document.getElementById('businessDomainId').value);
	var operationType = document.getElementById('operationTypeId');
	
	// Todas las combinaciones posibles en las que puede aparecer el tipo de operación Venta.
	var isVenta = operationType != null && (operationType.value == 'Venta') ? true : false;
	
	// Todas las combinaciones posibles en las que puede aparecer el tipo de operación Alquiler. 
	var isAlquiler = operationType != null && (operationType.value == 'Alquiler') ? true : false;
	
	switch(businessDomainId){
		case 27:
			if(isVenta)// Argentina: Venta(U$S) 
				this.checkRadioButtonCurrency('USD');
			else if(isAlquiler)//Alquiler($)
				this.checkRadioButtonCurrency('ARS');
			break;
		case 29:
			if(isVenta)//Chile: Venta(U.F.)
				this.checkRadioButtonCurrency('CLF');
			else if(isAlquiler) //Alquiler($)
				this.checkRadioButtonCurrency('CLP');
			break;
		case 39:
			if(isVenta || isAlquiler)
				this.checkRadioButtonCurrency('COP');//Colombia: Venta y Alquiler
			break;
		case 46:
			if(isVenta || isAlquiler)
				this.checkRadioButtonCurrency('MXN');//Mexico: Venta y Alquiler($)
			break;
		case 33:
			if(isVenta || isAlquiler)
				this.checkRadioButtonCurrency('VEF');//Venezuela: Venta y Alquiler($)
			break;
		case 7:
			if(isVenta || isAlquiler)
				this.checkRadioButtonCurrency('EUR');//Espana: Venta y Alquiler(€)
			break;
		case 34:
		case 28:
			if(isVenta || isAlquiler)
				this.checkRadioButtonCurrency('USD');//Ecuador y Peru(U$S)
			break;
		default:
			this.checkRadioButtonCurrency("");
	}
}

function checkRadioButtonCurrency(currencyType){
	var found_index= null;
	var groupCurrencies = document.getElementsByName('moneda');
	for(var i=0; i<groupCurrencies.length; i++) {
		if(groupCurrencies[i].value == currencyType){
			found_index = i;
		}else{
			groupCurrencies[i].ckecked=false;
		}
	}
	if(found_index != null) groupCurrencies[found_index].checked=true;
}

function transparentDiv()
{
	var idDiv =document.getElementById('transparent');
	idDiv.style.height = parent.document.getElementsByTagName('body')[0].clientHeight.toString()+'px';
	
	if(idDiv.className == "transparentDiv hide")
	{
		idDiv.className = "transparentDiv";
	}
	else
	{
		idDiv.className = "transparentDiv hide";
	}
}

var onBigMapInitializedCallback = function(map) {		
	var simple = createIcon({url: 'static/images/marker', name: 'Simple'}, sizesSimpleMarker, [13,0,14,1,15,2,16,3,17,4,17,5,18,6,18,7,18,8,18,9,18,10,18,11,18,12,18,13,18,14,17,15,17,16,16,17,16,18,15,19,15,20,14,21,14,22,13,23,13,24,12,25,12,26,11,27,11,28,11,29,10,30,10,31,10,32,9,33,9,34,9,34,8,33,8,32,8,31,7,30,7,29,6,28,6,27,5,26,5,25,4,24,4,23,3,22,3,21,2,20,2,19,1,18,1,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,7,0,6,0,5,1,4,1,3,2,2,3,1,5,0], 1);
	var important = createIcon({url: 'static/images/marker', name: 'Important'}, sizesImportantMarker, [14,0,17,1,19,2,20,3,21,4,21,5,22,6,22,7,23,8,23,9,23,10,23,11,23,12,23,13,23,14,23,15,23,16,23,17,23,18,22,19,22,20,22,21,21,22,21,23,20,24,20,25,19,26,19,27,18,28,18,29,17,30,16,31,16,32,16,33,15,34,15,35,14,36,14,37,13,38,13,39,13,40,12,41,12,42,12,43,11,43,11,42,11,41,10,40,10,39,10,38,9,37,9,36,8,35,8,34,7,33,7,32,6,31,6,30,5,29,5,28,4,27,4,26,3,25,3,24,2,23,2,22,1,21,1,20,0,19,0,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,1,8,1,7,1,6,2,5,3,4,4,3,5,2,6,1,9,0], 1);
	var premium = createIcon({url: 'static/images/marker', name: 'Premium'}, sizesPremiumMarker, [17,0,21,1,22,2,24,3,25,4,26,5,27,6,28,7,28,8,29,9,29,10,29,11,29,12,29,13,29,14,29,15,29,16,29,17,28,18,28,19,28,20,27,21,26,22,26,23,25,24,24,25,24,26,23,27,22,28,22,29,21,30,20,31,20,32,19,33,19,34,18,35,18,36,17,37,17,38,16,39,16,40,16,41,15,42,15,43,15,44,15,44,14,43,14,42,14,41,13,40,13,39,12,38,12,37,11,36,11,35,10,34,10,33,9,32,9,31,8,30,7,29,7,28,6,27,6,26,5,25,4,24,4,23,3,22,3,21,2,20,2,19,1,18,1,17,1,16,1,15,1,14,1,13,1,12,1,11,1,10,1,9,2,8,2,7,3,6,4,5,5,4,6,3,7,2,9,1,12,0], 1);
	var buildingProject = createIcon({url: 'static/images/marker', name: 'markerBP-normal'}, sizesBP, [11,0,13,1,14,2,16,3,18,4,20,5,22,6,22,7,22,8,31,9,32,10,33,11,34,12,34,13,38,14,37,15,38,16,39,17,39,18,39,19,33,20,38,21,32,22,32,23,32,24,32,25,32,26,32,27,32,28,32,29,32,30,32,31,32,32,32,33,32,34,33,35,33,36,33,37,32,38,33,39,13,39,12,38,10,37,8,36,6,35,4,34,2,33,0,32,0,31,1,30,3,29,3,28,3,27,3,26,3,25,3,24,3,23,3,22,3,21,3,20,3,19,3,18,3,17,3,16,3,15,3,14,3,13,3,12,3,11,3,10,3,9,3,8,3,7,2,6,2,5,2,4,4,3,6,2,8,1,10,0], 1);	
	var buildingProjectFinished = createIcon({url: 'static/images/marker', name: 'marker-bp-finished_normal'}, sizesBP, [19,0,21,1,23,2,25,3,26,4,28,5,30,6,30,7,30,8,30,9,30,10,30,11,30,12,30,13,30,14,30,15,30,16,30,17,30,18,30,19,30,20,30,21,30,22,30,23,30,24,30,25,30,26,30,27,30,28,30,29,30,30,30,31,30,32,32,33,32,34,30,35,28,36,26,37,24,38,22,39,21,39,19,38,17,37,15,36,13,35,11,34,9,33,8,32,8,31,10,30,10,29,10,28,10,27,10,26,10,25,10,24,10,23,10,22,10,21,10,20,10,19,10,18,10,17,10,16,10,15,10,14,10,13,10,12,10,11,10,10,10,9,10,8,10,7,10,6,9,5,9,4,12,3,14,2,16,1,17,0], 1);	
	var buildingProjectCountry = createIcon({url: 'static/images/marker', name: 'marker-bp-country_normal'}, sizesBP, [29,2,30,3,31,4,32,5,32,6,36,7,35,8,36,9,37,10,37,11,37,12,31,13,36,14,30,15,30,16,32,17,34,18,35,19,35,20,35,21,35,22,35,23,35,24,37,25,39,26,39,27,39,28,39,29,37,30,35,31,33,32,31,33,30,34,27,35,25,36,23,37,21,38,18,38,16,37,14,36,12,35,10,34,8,33,6,32,4,31,2,30,0,29,0,28,0,27,0,26,1,25,0,24,0,23,0,22,0,21,0,20,0,19,0,18,2,17,2,16,1,15,1,14,1,13,3,12,4,11,5,10,7,9,6,8,8,7,8,6,8,5,9,4,19,3,26,2], 1);	
	var clusterUnbreak = createIcon({url: 'static/images/cluster', name: '_same_coord_vacio'}, sizesClusterWithShadow, [25,0,27,1,29,2,30,3,31,4,32,5,33,6,33,7,34,8,34,9,35,10,35,11,35,12,35,13,35,14,36,15,36,16,35,17,35,18,35,19,35,20,34,21,34,22,34,23,33,24,32,25,31,26,30,27,29,28,28,29,27,30,26,31,25,32,24,33,23,34,22,35,21,36,19,36,18,35,17,34,16,33,15,32,14,31,13,30,12,29,11,28,10,27,9,26,8,25,7,24,7,23,6,22,5,21,5,20,5,19,5,18,4,17,4,16,4,15,5,14,5,13,5,12,5,11,5,10,6,9,6,8,7,7,7,6,8,5,8,4,10,3,11,2,13,1,15,0], 2);	
	var clusterDefault = createIcon({url: 'static/images/cluster', name: '_vacio'}, sizesCluster, [24,0,27,1,29,2,31,3,32,4,33,5,34,6,35,7,36,8,37,9,37,10,38,11,38,12,38,13,39,14,39,15,39,16,39,17,39,18,39,19,39,20,39,21,39,22,39,23,39,24,39,25,39,26,38,27,38,28,38,29,37,30,37,31,36,32,35,33,34,34,33,35,32,36,31,37,29,38,26,39,14,39,11,38,9,37,8,36,7,35,6,34,5,33,4,32,3,31,3,30,2,29,2,28,2,27,1,26,1,25,1,24,1,23,1,22,0,21,0,20,0,19,0,18,1,17,1,16,1,15,1,14,2,13,2,12,2,11,3,10,3,9,4,8,5,7,6,6,7,5,8,4,9,3,11,2,13,1,16,0], 2);
			
	var markerConfig1 = createMarkerConfig(
					  		simple,
							{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
				  			click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
					 		null
					 	);
			 		
	var markerConfig2 = createMarkerConfig(
							important,
							{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
							click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
							null
						);
	
	var markerConfig3 = createMarkerConfig(
							buildingProject,
							{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
							click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
							null
						);	
	
	var markerConfig4 = createMarkerConfig(
			buildingProjectFinished,
			{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
				click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
				null
	);	
	
	var markerConfig5 = createMarkerConfig(
			buildingProjectCountry,
			{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:17}},
				click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
				null
	);
	
	var markerConfig6 = createMarkerConfig(
	  		premium,
			{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
  			click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
	 		null
	 	);

	var clusterConfig = createClusterMarkerConfig(
							clusterDefault,
							{mouseover:{elementId:'aviso-grupal', offset:{top:-44, left:0}}, 
							 click:{elementId:'descriptionInfoWindow', offset:{top:-317, left:-179}}},
							 null
						);
		
	var clusterConfig1 = createClusterMarkerConfig(
							clusterUnbreak,
							{mouseover:{elementId:'aviso-grupal', offset:{top:-44, lfet:0}}, 
							 click:{elementId:'descriptionInfoWindow', offset:{top:-317, lfet:-189}}},
							 null
						 ); 
				
	var navigationHistoryControl = new NavigationHistoryControl(map, {
		forwardButtonOpts: {
			title: 'Mapa siguiente',
			offStyle: {
				'-moz-background-clip': 'border',
				'-moz-background-inline-policy': 'continuous',
				'-moz-background-origin': 'padding',
				background: 'url('+staticDomain+'/static/images/mapcontrol/redo-vertical-disabled.png) no-repeat scroll',
				border: 'medium none',
				height: '21px',
				width: '21px'
			},
			onStyle: {
				background: 'url('+staticDomain+'/static/images/mapcontrol/redo-vertical.png) no-repeat scroll'						
			}												
		},
		backButtonOpts: {
			title: 'Mapa anterior',
			offStyle: {
				'-moz-background-clip': 'border',
				'-moz-background-inline-policy': 'continuous',
				'-moz-background-origin': 'padding',
				background: 'url('+staticDomain+'/static/images/mapcontrol/undo-vertical-disabled.png) no-repeat scroll',
				border: 'medium none',
				height: '21px',
				width: '21px'				
			},					
			onStyle: {
				background: 'url('+staticDomain+'/static/images/mapcontrol/undo-vertical.png) no-repeat scroll'
			}							
		}			
	});
	
	var vertexIcon = createIcon({url: staticDomain+'/static/images/mapcontrol/anchorPoint.png'}, sizesRectangle, null, 3);
	
	var removeIcon = createIcon({url: staticDomain+'/static/images/mapcontrol/closeControl.gif'}, sizesRectangle, null, 3);
		
	var rectangleShapeBuilderControl = new ShapeBuilderControl(map, {
		buttonOpts: {
			title: 'Marcar y acercar',
			offStyle: {
				'-moz-background-clip': 'border',
				'-moz-background-inline-policy': 'continuous',
				'-moz-background-origin': 'padding',
				background: 'transparent url('+staticDomain+'/static/images/mapcontrol/dragzoom_btn.png) no-repeat scroll -40px 0',
				border: 'medium none',
				height: '20px',
				width: '20px'						
			},
			onStyle: {
				'-moz-background-clip': 'border',
				'-moz-background-inline-policy': 'continuous',
				'-moz-background-origin': 'padding',
				background: 'transparent url('+staticDomain+'/static/images/mapcontrol/dragzoom_btn.png) no-repeat scroll 0px 0',
				border: 'medium none',
				height: '20px',
				width: '20px'			
			}				
		},
		shape: new RectangleShapeBuilder({
			vertexOpts: {
				icon: vertexIcon
				//title: 'Mueva aquí para redefinir el cuadrado.'
			},
			removeOpts: {
				icon: removeIcon
				//title: 'Click para remover el rectángulo.'
			}
		})
	});
	
    map.addControl(rectangleShapeBuilderControl, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(28, 340)));      	
	map.addControl(navigationHistoryControl, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(27, 290)));
	
	G_HYBRID_MAP.getName= function() {return "Híbrido"};
	G_HYBRID_MAP.getAlt = function() {return "Mostrar imágenes por satélite y calles"};
	G_SATELLITE_MAP.getName= function() {return "Satélite"};
	G_SATELLITE_MAP.getAlt = function() {return "Mostrar imágenes por satélite"};
	G_NORMAL_MAP.getName= function() {return "Mapa"};
	G_NORMAL_MAP.getAlt= function() {return "Mostrar callejero"};

	map.addControl(new GLargeMapControl3D());
	rewriteMapTypeLabels();
	map.addControl(new GMapTypeControl());
	
	map.addMarkerConfiguration('0', markerConfig1);
	map.addMarkerConfiguration('1', markerConfig2);
	map.addMarkerConfiguration('BUILDING_NOT_FINISHED', markerConfig3);
	map.addMarkerConfiguration('BUILDING_FINISHED', markerConfig4);
	map.addMarkerConfiguration('BUILDING_PROJECT_COUNTRY', markerConfig5);
	map.addMarkerConfiguration('3', markerConfig6);
	map.addMarkerConfiguration('CLUSTER1', clusterConfig);
	map.addMarkerConfiguration('CLUSTER2', clusterConfig1);		
	map.addListener("buildStart", onBuildMapStartCallback);
	map.addListener("buildSuccess", onBuildBigMapSuccessCallback);
}


var onVIMapInitializedCallback = function(map) {
	var simple = createIcon({url: 'static/images/marker', name: 'Simple'}, sizesSimpleMarker, [13,0,14,1,15,2,16,3,17,4,17,5,18,6,18,7,18,8,18,9,18,10,18,11,18,12,18,13,18,14,17,15,17,16,16,17,16,18,15,19,15,20,14,21,14,22,13,23,13,24,12,25,12,26,11,27,11,28,11,29,10,30,10,31,10,32,9,33,9,34,9,34,8,33,8,32,8,31,7,30,7,29,6,28,6,27,5,26,5,25,4,24,4,23,3,22,3,21,2,20,2,19,1,18,1,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,7,0,6,0,5,1,4,1,3,2,2,3,1,5,0], 1);
	var important = createIcon({url: 'static/images/marker', name: 'Important'}, sizesImportantMarker, [14,0,17,1,19,2,20,3,21,4,21,5,22,6,22,7,23,8,23,9,23,10,23,11,23,12,23,13,23,14,23,15,23,16,23,17,23,18,22,19,22,20,22,21,21,22,21,23,20,24,20,25,19,26,19,27,18,28,18,29,17,30,16,31,16,32,16,33,15,34,15,35,14,36,14,37,13,38,13,39,13,40,12,41,12,42,12,43,11,43,11,42,11,41,10,40,10,39,10,38,9,37,9,36,8,35,8,34,7,33,7,32,6,31,6,30,5,29,5,28,4,27,4,26,3,25,3,24,2,23,2,22,1,21,1,20,0,19,0,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,1,8,1,7,1,6,2,5,3,4,4,3,5,2,6,1,9,0], 1);
	var premium = createIcon({url: 'static/images/marker', name: 'Premium'}, sizesPremiumMarker, [17,0,21,1,22,2,24,3,25,4,26,5,27,6,28,7,28,8,29,9,29,10,29,11,29,12,29,13,29,14,29,15,29,16,29,17,28,18,28,19,28,20,27,21,26,22,26,23,25,24,24,25,24,26,23,27,22,28,22,29,21,30,20,31,20,32,19,33,19,34,18,35,18,36,17,37,17,38,16,39,16,40,16,41,15,42,15,43,15,44,15,44,14,43,14,42,14,41,13,40,13,39,12,38,12,37,11,36,11,35,10,34,10,33,9,32,9,31,8,30,7,29,7,28,6,27,6,26,5,25,4,24,4,23,3,22,3,21,2,20,2,19,1,18,1,17,1,16,1,15,1,14,1,13,1,12,1,11,1,10,1,9,2,8,2,7,3,6,4,5,5,4,6,3,7,2,9,1,12,0], 1);
	var buildingProject = createIcon({url: 'static/images/marker', name: 'markerBP-normal'}, sizesBP, [11,0,13,1,14,2,16,3,18,4,20,5,22,6,22,7,22,8,31,9,32,10,33,11,34,12,34,13,38,14,37,15,38,16,39,17,39,18,39,19,33,20,38,21,32,22,32,23,32,24,32,25,32,26,32,27,32,28,32,29,32,30,32,31,32,32,32,33,32,34,33,35,33,36,33,37,32,38,33,39,13,39,12,38,10,37,8,36,6,35,4,34,2,33,0,32,0,31,1,30,3,29,3,28,3,27,3,26,3,25,3,24,3,23,3,22,3,21,3,20,3,19,3,18,3,17,3,16,3,15,3,14,3,13,3,12,3,11,3,10,3,9,3,8,3,7,2,6,2,5,2,4,4,3,6,2,8,1,10,0], 1);
	var buildingProjectFinished = createIcon({url: 'static/images/marker', name: 'marker-bp-finished_normal'}, sizesBP, [19,0,21,1,23,2,25,3,26,4,28,5,30,6,30,7,30,8,30,9,30,10,30,11,30,12,30,13,30,14,30,15,30,16,30,17,30,18,30,19,30,20,30,21,30,22,30,23,30,24,30,25,30,26,30,27,30,28,30,29,30,30,30,31,30,32,32,33,32,34,30,35,28,36,26,37,24,38,22,39,21,39,19,38,17,37,15,36,13,35,11,34,9,33,8,32,8,31,10,30,10,29,10,28,10,27,10,26,10,25,10,24,10,23,10,22,10,21,10,20,10,19,10,18,10,17,10,16,10,15,10,14,10,13,10,12,10,11,10,10,10,9,10,8,10,7,10,6,9,5,9,4,12,3,14,2,16,1,17,0], 1);
	var buildingProjectCountry = createIcon({url: 'static/images/marker', name: 'marker-bp-country_normal'}, sizesBP, [29,2,30,3,31,4,32,5,32,6,36,7,35,8,36,9,37,10,37,11,37,12,31,13,36,14,30,15,30,16,32,17,34,18,35,19,35,20,35,21,35,22,35,23,35,24,37,25,39,26,39,27,39,28,39,29,37,30,35,31,33,32,31,33,30,34,27,35,25,36,23,37,21,38,18,38,16,37,14,36,12,35,10,34,8,33,6,32,4,31,2,30,0,29,0,28,0,27,0,26,1,25,0,24,0,23,0,22,0,21,0,20,0,19,0,18,2,17,2,16,1,15,1,14,1,13,3,12,4,11,5,10,7,9,6,8,8,7,8,6,8,5,9,4,19,3,26,2], 1);

	var markerConfig1 = new MarkerConfiguration({
		  factoryCallback: function(position, marker) {
		    return new GMarker(position, {icon: simple});				
		  }
		});
	
	var markerConfig2 = new MarkerConfiguration({
		  factoryCallback: function(position, marker) {
		    return new GMarker(position, {icon: important});				
		  }
		});
	
	var markerConfig3 = new MarkerConfiguration({
		factoryCallback: function(position, marker) {
		return new GMarker(position, {icon: buildingProject});				
	}
	});
	
	var markerConfig4 = new MarkerConfiguration({
		factoryCallback: function(position, marker) {
		return new GMarker(position, {icon: buildingProjectFinished});				
	}
	});
	
	var markerConfig5 = new MarkerConfiguration({
		factoryCallback: function(position, marker) {
		return new GMarker(position, {icon: buildingProjectCountry});				
	}
	});
	
	var markerConfig6 = new MarkerConfiguration({
		factoryCallback: function(position, marker) {
		return new GMarker(position, {icon: premium});				
	}
	});

	G_HYBRID_MAP.getName= function() {return "Híbrido"};
	G_HYBRID_MAP.getAlt = function() {return "Mostrar imágenes por satélite y calles"};
	G_SATELLITE_MAP.getName= function() {return "Satélite"};
	G_SATELLITE_MAP.getAlt = function() {return "Mostrar imágenes por satélite"};
	G_NORMAL_MAP.getName= function() {return "Mapa"};
	G_NORMAL_MAP.getAlt= function() {return "Mostrar callejero"};
	
	
	map.addControl(new GLargeMapControl3D());
	rewriteMapTypeLabels();
	map.addControl(new GMapTypeControl());
	
	map.addMarkerConfiguration('0', markerConfig1);
	map.addMarkerConfiguration('1', markerConfig2);
	map.addMarkerConfiguration('BUILDING_NOT_FINISHED', markerConfig3);
	map.addMarkerConfiguration('BUILDING_FINISHED', markerConfig4);
	map.addMarkerConfiguration('BUILDING_PROJECT_COUNTRY', markerConfig5);
	map.addMarkerConfiguration('3', markerConfig6);
	
	map.setMaxZoomLevel(16);
}

var onSmallMapInitializedCallback = function(map) {

	var simple = createIcon({url: 'static/images/marker', name: 'Simple'}, sizesSimpleMarker, [13,0,14,1,15,2,16,3,17,4,17,5,18,6,18,7,18,8,18,9,18,10,18,11,18,12,18,13,18,14,17,15,17,16,16,17,16,18,15,19,15,20,14,21,14,22,13,23,13,24,12,25,12,26,11,27,11,28,11,29,10,30,10,31,10,32,9,33,9,34,9,34,8,33,8,32,8,31,7,30,7,29,6,28,6,27,5,26,5,25,4,24,4,23,3,22,3,21,2,20,2,19,1,18,1,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,7,0,6,0,5,1,4,1,3,2,2,3,1,5,0], 1);
	var simpleHL = createIcon({url: 'static/images/marker', name: 'SimpleHL'}, sizesSimpleMarker, [13,0,14,1,15,2,16,3,17,4,17,5,18,6,18,7,18,8,18,9,18,10,18,11,18,12,18,13,18,14,17,15,17,16,16,17,16,18,15,19,15,20,14,21,14,22,13,23,13,24,12,25,12,26,11,27,11,28,11,29,10,30,10,31,10,32,9,33,9,34,9,34,8,33,8,32,8,31,7,30,7,29,6,28,6,27,5,26,5,25,4,24,4,23,3,22,3,21,2,20,2,19,1,18,1,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,7,0,6,0,5,1,4,1,3,2,2,3,1,5,0], 1);
	var important = createIcon({url: 'static/images/marker', name: 'Important'}, sizesImportantMarker, [14,0,17,1,19,2,20,3,21,4,21,5,22,6,22,7,23,8,23,9,23,10,23,11,23,12,23,13,23,14,23,15,23,16,23,17,23,18,22,19,22,20,22,21,21,22,21,23,20,24,20,25,19,26,19,27,18,28,18,29,17,30,16,31,16,32,16,33,15,34,15,35,14,36,14,37,13,38,13,39,13,40,12,41,12,42,12,43,11,43,11,42,11,41,10,40,10,39,10,38,9,37,9,36,8,35,8,34,7,33,7,32,6,31,6,30,5,29,5,28,4,27,4,26,3,25,3,24,2,23,2,22,1,21,1,20,0,19,0,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,1,8,1,7,1,6,2,5,3,4,4,3,5,2,6,1,9,0], 1);
	var importantHL = createIcon({url: 'static/images/marker', name: 'ImportantHL'}, sizesImportantMarker, [14,0,17,1,19,2,20,3,21,4,21,5,22,6,22,7,23,8,23,9,23,10,23,11,23,12,23,13,23,14,23,15,23,16,23,17,23,18,22,19,22,20,22,21,21,22,21,23,20,24,20,25,19,26,19,27,18,28,18,29,17,30,16,31,16,32,16,33,15,34,15,35,14,36,14,37,13,38,13,39,13,40,12,41,12,42,12,43,11,43,11,42,11,41,10,40,10,39,10,38,9,37,9,36,8,35,8,34,7,33,7,32,6,31,6,30,5,29,5,28,4,27,4,26,3,25,3,24,2,23,2,22,1,21,1,20,0,19,0,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,1,8,1,7,1,6,2,5,3,4,4,3,5,2,6,1,9,0], 1);
	var premium = createIcon({url: 'static/images/marker', name: 'Premium'}, sizesPremiumMarker, [17,0,21,1,22,2,24,3,25,4,26,5,27,6,28,7,28,8,29,9,29,10,29,11,29,12,29,13,29,14,29,15,29,16,29,17,28,18,28,19,28,20,27,21,26,22,26,23,25,24,24,25,24,26,23,27,22,28,22,29,21,30,20,31,20,32,19,33,19,34,18,35,18,36,17,37,17,38,16,39,16,40,16,41,15,42,15,43,15,44,15,44,14,43,14,42,14,41,13,40,13,39,12,38,12,37,11,36,11,35,10,34,10,33,9,32,9,31,8,30,7,29,7,28,6,27,6,26,5,25,4,24,4,23,3,22,3,21,2,20,2,19,1,18,1,17,1,16,1,15,1,14,1,13,1,12,1,11,1,10,1,9,2,8,2,7,3,6,4,5,5,4,6,3,7,2,9,1,12,0], 1);
	var premiumHL = createIcon({url: 'static/images/marker', name: 'PremiumHL'}, sizesPremiumMarker, [17,0,21,1,22,2,24,3,25,4,26,5,27,6,28,7,28,8,29,9,29,10,29,11,29,12,29,13,29,14,29,15,29,16,29,17,28,18,28,19,28,20,27,21,26,22,26,23,25,24,24,25,24,26,23,27,22,28,22,29,21,30,20,31,20,32,19,33,19,34,18,35,18,36,17,37,17,38,16,39,16,40,16,41,15,42,15,43,15,44,15,44,14,43,14,42,14,41,13,40,13,39,12,38,12,37,11,36,11,35,10,34,10,33,9,32,9,31,8,30,7,29,7,28,6,27,6,26,5,25,4,24,4,23,3,22,3,21,2,20,2,19,1,18,1,17,1,16,1,15,1,14,1,13,1,12,1,11,1,10,1,9,2,8,2,7,3,6,4,5,5,4,6,3,7,2,9,1,12,0], 1);
	var buildingProject = createIcon({url: 'static/images/marker', name: 'markerBP-normal'}, sizesBP, [11,0,13,1,14,2,16,3,18,4,20,5,22,6,22,7,22,8,31,9,32,10,33,11,34,12,34,13,38,14,37,15,38,16,39,17,39,18,39,19,33,20,38,21,32,22,32,23,32,24,32,25,32,26,32,27,32,28,32,29,32,30,32,31,32,32,32,33,32,34,33,35,33,36,33,37,32,38,33,39,13,39,12,38,10,37,8,36,6,35,4,34,2,33,0,32,0,31,1,30,3,29,3,28,3,27,3,26,3,25,3,24,3,23,3,22,3,21,3,20,3,19,3,18,3,17,3,16,3,15,3,14,3,13,3,12,3,11,3,10,3,9,3,8,3,7,2,6,2,5,2,4,4,3,6,2,8,1,10,0], 1);
	var buildingProjectHL = createIcon({url: 'static/images/marker', name: 'markerBP-hover'}, sizesBP, [11,0,13,1,14,2,16,3,18,4,20,5,22,6,22,7,22,8,31,9,32,10,33,11,34,12,34,13,38,14,37,15,38,16,39,17,39,18,39,19,33,20,38,21,32,22,32,23,32,24,32,25,32,26,32,27,32,28,32,29,32,30,32,31,32,32,32,33,32,34,33,35,33,36,33,37,32,38,33,39,13,39,12,38,10,37,8,36,6,35,4,34,2,33,0,32,0,31,1,30,3,29,3,28,3,27,3,26,3,25,3,24,3,23,3,22,3,21,3,20,3,19,3,18,3,17,3,16,3,15,3,14,3,13,3,12,3,11,3,10,3,9,3,8,3,7,2,6,2,5,2,4,4,3,6,2,8,1,10,0], 1);	
	var buildingProjectFinished = createIcon({url: 'static/images/marker', name: 'marker-bp-finished_normal'}, sizesBP, [19,0,21,1,23,2,25,3,26,4,28,5,30,6,30,7,30,8,30,9,30,10,30,11,30,12,30,13,30,14,30,15,30,16,30,17,30,18,30,19,30,20,30,21,30,22,30,23,30,24,30,25,30,26,30,27,30,28,30,29,30,30,30,31,30,32,32,33,32,34,30,35,28,36,26,37,24,38,22,39,21,39,19,38,17,37,15,36,13,35,11,34,9,33,8,32,8,31,10,30,10,29,10,28,10,27,10,26,10,25,10,24,10,23,10,22,10,21,10,20,10,19,10,18,10,17,10,16,10,15,10,14,10,13,10,12,10,11,10,10,10,9,10,8,10,7,10,6,9,5,9,4,12,3,14,2,16,1,17,0], 1);
	var buildingProjectFinishedHL = createIcon({url: 'static/images/marker', name: 'marker-bp-finished_hover'}, sizesBP, [19,0,21,1,22,2,24,3,26,4,28,5,30,6,30,7,30,8,29,9,29,10,29,11,29,12,29,13,29,14,29,15,29,16,29,17,29,18,29,19,29,20,29,21,29,22,29,23,29,24,29,25,29,26,29,27,29,28,29,29,29,30,30,31,31,32,32,33,32,34,30,35,28,36,26,37,24,38,22,39,21,39,20,38,18,37,16,36,14,35,12,34,10,33,8,32,8,31,9,30,11,29,11,28,11,27,11,26,11,25,11,24,11,23,11,22,11,21,11,20,11,19,11,18,11,17,11,16,11,15,11,14,11,13,11,12,11,11,11,10,11,9,11,8,11,7,10,6,10,5,10,4,12,3,14,2,16,1,18,0], 1);	
	var buildingProjectCountry = createIcon({url: 'static/images/marker', name: 'marker-bp-country_normal'}, sizesBP, [29,2,30,3,31,4,32,5,32,6,36,7,35,8,36,9,37,10,37,11,37,12,31,13,36,14,30,15,30,16,32,17,34,18,35,19,35,20,35,21,35,22,35,23,35,24,37,25,39,26,39,27,39,28,39,29,37,30,35,31,33,32,31,33,30,34,27,35,25,36,23,37,21,38,18,38,16,37,14,36,12,35,10,34,8,33,6,32,4,31,2,30,0,29,0,28,0,27,0,26,1,25,0,24,0,23,0,22,0,21,0,20,0,19,0,18,2,17,2,16,1,15,1,14,1,13,3,12,4,11,5,10,7,9,6,8,8,7,8,6,8,5,9,4,19,3,26,2], 1);
	var buildingProjectCountryHL = createIcon({url: 'static/images/marker', name: 'marker-bp-country_hover'}, sizesBP, [29,2,30,3,31,4,32,5,32,6,36,7,35,8,36,9,37,10,37,11,37,12,31,13,36,14,30,15,30,16,32,17,34,18,35,19,35,20,35,21,35,22,35,23,35,24,37,25,39,26,39,27,39,28,39,29,37,30,35,31,33,32,31,33,30,34,27,35,25,36,23,37,21,38,18,38,16,37,14,36,12,35,10,34,8,33,6,32,4,31,2,30,0,29,0,28,0,27,0,26,1,25,0,24,0,23,0,22,0,21,0,20,0,19,0,18,2,17,2,16,1,15,1,14,1,13,3,12,4,11,5,10,7,9,6,8,8,7,8,6,8,5,9,4,19,3,26,2], 1);	
	var clusterUnbreak = createIcon({url: 'static/images/cluster', name: '_same_coord_vacio'}, sizesClusterWithShadow, [25,0,27,1,29,2,30,3,31,4,32,5,33,6,33,7,34,8,34,9,35,10,35,11,35,12,35,13,35,14,36,15,36,16,35,17,35,18,35,19,35,20,34,21,34,22,34,23,33,24,32,25,31,26,30,27,29,28,28,29,27,30,26,31,25,32,24,33,23,34,22,35,21,36,19,36,18,35,17,34,16,33,15,32,14,31,13,30,12,29,11,28,10,27,9,26,8,25,7,24,7,23,6,22,5,21,5,20,5,19,5,18,4,17,4,16,4,15,5,14,5,13,5,12,5,11,5,10,6,9,6,8,7,7,7,6,8,5,8,4,10,3,11,2,13,1,15,0], 2);
	var clusterUnbreakHL = createIcon({url: 'static/images/cluster', name: '_same_coord_vacioHL'}, sizesClusterWithShadow, [25,0,27,1,29,2,30,3,31,4,32,5,33,6,33,7,34,8,34,9,35,10,35,11,35,12,35,13,35,14,36,15,36,16,35,17,35,18,35,19,35,20,34,21,34,22,34,23,33,24,32,25,31,26,30,27,29,28,28,29,27,30,26,31,25,32,24,33,23,34,22,35,21,36,19,36,18,35,17,34,16,33,15,32,14,31,13,30,12,29,11,28,10,27,9,26,8,25,7,24,7,23,6,22,5,21,5,20,5,19,5,18,4,17,4,16,4,15,5,14,5,13,5,12,5,11,5,10,6,9,6,8,7,7,7,6,8,5,8,4,10,3,11,2,13,1,15,0], 2);
	var clusterDefault = createIcon({url: 'static/images/cluster', name: '_vacio'}, sizesCluster, [24,0,27,1,29,2,31,3,32,4,33,5,34,6,35,7,36,8,37,9,37,10,38,11,38,12,38,13,39,14,39,15,39,16,39,17,39,18,39,19,39,20,39,21,39,22,39,23,39,24,39,25,39,26,38,27,38,28,38,29,37,30,37,31,36,32,35,33,34,34,33,35,32,36,31,37,29,38,26,39,14,39,11,38,9,37,8,36,7,35,6,34,5,33,4,32,3,31,3,30,2,29,2,28,2,27,1,26,1,25,1,24,1,23,1,22,0,21,0,20,0,19,0,18,1,17,1,16,1,15,1,14,2,13,2,12,2,11,3,10,3,9,4,8,5,7,6,6,7,5,8,4,9,3,11,2,13,1,16,0], 2);
	var clusterDefaultHL = createIcon({url: 'static/images/cluster', name: '_vacioHL'}, sizesCluster, [24,0,27,1,29,2,31,3,32,4,33,5,34,6,35,7,36,8,37,9,37,10,38,11,38,12,38,13,39,14,39,15,39,16,39,17,39,18,39,19,39,20,39,21,39,22,39,23,39,24,39,25,39,26,38,27,38,28,38,29,37,30,37,31,36,32,35,33,34,34,33,35,32,36,31,37,29,38,26,39,14,39,11,38,9,37,8,36,7,35,6,34,5,33,4,32,3,31,3,30,2,29,2,28,2,27,1,26,1,25,1,24,1,23,1,22,0,21,0,20,0,19,0,18,1,17,1,16,1,15,1,14,2,13,2,12,2,11,3,10,3,9,4,8,5,7,6,6,7,5,8,4,9,3,11,2,13,1,16,0], 2);
					
	var markerConfig1 = createMarkerConfig(
							simple,
							{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
							click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
							simpleHL
						);	

	var markerConfig2 = createMarkerConfig(
							important,
							{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
							click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
							importantHL
						);
							
	var markerConfig3 = createMarkerConfig(
							buildingProject,
							{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
							click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
							buildingProjectHL
						);
	
	var markerConfig4 = createMarkerConfig(
							buildingProjectFinished,
							{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:14}},
							click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
							buildingProjectFinishedHL
						);
	
	var markerConfig5 = createMarkerConfig(
							buildingProjectCountry,
							{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:17}},
							click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
							buildingProjectCountryHL
						);
	
	var markerConfig6 = createMarkerConfig(
			premium,
			{mouseover:{elementId:'aviso-individual', offset:{top:-55, left:17}},
			click:{elementId:'descriptionInfoWindow', offset:{top:-320, left:-170}}},
			premiumHL
		);
									
	var clusterConfig = createClusterMarkerConfig(
			clusterDefault,
			{mouseover:{elementId:'aviso-grupal', offset:{top:-44, left:0}}, 
			 click:{elementId:'descriptionInfoWindow', offset:{top:-317, left:-179}}},
			 clusterDefaultHL
		);
	
	var clusterConfig1 = createClusterMarkerConfig(
			clusterUnbreak,
			{mouseover:{elementId:'aviso-grupal', offset:{top:-44, left:0}}, 
			 click:{elementId:'descriptionInfoWindow', offset:{top:-317, left:-179}}},
			 clusterUnbreakHL
		);
		
	var navigationHistoryControl = new NavigationHistoryControl(map, {
		forwardButtonOpts: {
			title: 'Mapa siguiente',
			offStyle: {
				'-moz-background-clip': 'border',
				'-moz-background-inline-policy': 'continuous',
				'-moz-background-origin': 'padding',
				background: 'url('+staticDomain+'/static/images/mapcontrol/redo-disabled.png) no-repeat scroll',
				border: 'medium none',
				height: '21px',
				width: '21px',
				cssFloat: 'left',
				styleFloat: 'left'
			},
			onStyle: {
				background: 'url('+staticDomain+'/static/images/mapcontrol/redo.png) no-repeat scroll'						
			}												
		},
		backButtonOpts: {
			title: 'Mapa anterior',
			offStyle: {
				'-moz-background-clip': 'border',
				'-moz-background-inline-policy': 'continuous',
				'-moz-background-origin': 'padding',
				background: 'url('+staticDomain+'/static/images/mapcontrol/undo-disabled.png) no-repeat scroll',
				border: 'medium none',
				height: '21px',
				width: '21px',
				cssFloat: 'left',
				styleFloat: 'left'						
			},					
			onStyle: {
				background: 'url('+staticDomain+'/static/images/mapcontrol/undo.png) no-repeat scroll'
			}							
		}			
	});


	G_HYBRID_MAP.getName= function() {return "Híbrido"};
	G_HYBRID_MAP.getAlt = function() {return "Mostrar imágenes por satélite y calles"};
	G_SATELLITE_MAP.getName= function() {return "Satélite"};
	G_SATELLITE_MAP.getAlt = function() {return "Mostrar imágenes por satélite"};
	G_NORMAL_MAP.getName= function() {return "Mapa"};
	G_NORMAL_MAP.getAlt= function() {return "Mostrar callejero"};
	
	map.addControl(navigationHistoryControl, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10, 10)));
	
	map.addControl(new GSmallZoomControl3D(),new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10, 40)));
	rewriteMapTypeLabels();
	map.addControl(new GMenuMapTypeControl());	

	map.addMarkerConfiguration('0', markerConfig1);
	map.addMarkerConfiguration('1', markerConfig2);
	map.addMarkerConfiguration('BUILDING_NOT_FINISHED', markerConfig3);
	map.addMarkerConfiguration('BUILDING_FINISHED', markerConfig4);
	map.addMarkerConfiguration('BUILDING_PROJECT_COUNTRY', markerConfig5);
	map.addMarkerConfiguration('3', markerConfig6);
	map.addMarkerConfiguration('CLUSTER1', clusterConfig);
	map.addMarkerConfiguration('CLUSTER2', clusterConfig1);
	
	map.addListener("buildStart", onBuildMapStartCallback);
	map.addListener("buildSuccess", onBuildSmallMapSuccessCallback);	
}


var onBuildMapStartCallback = function() {
	$('loadingDiv').style.display = 'block';
};

var onBuildSmallMapSuccessCallback = function(map) {
	$('loadingDiv').style.display = 'none';
};

/**/
var onBuildBigMapSuccessCallback = function(map) {
	$('loadingDiv').style.display = 'none';
	var statistics = map.getStatistics();
	$('totalMarkers').innerHTML = statistics.totalMarkers+' ';
	var msgLimit = document.getElementById('msgLimit');
	if (isBelowLimit(statistics.totalMarkers)){		
		msgLimit.style.visibility= 'hidden'
		msgLimit.style.display= 'none'
	}else{
		msgLimit.style.visibility= 'visible'
		msgLimit.style.display= 'block'
	}	
};

function viewOnlyMap() {
	var url = "" + document.location;
	
	url = url.replace("#", "");

	if(url.indexOf("?") > 0) {
		url = url.replace(/\?.*/g, "");
	}

	url = url.replace("_formatZlist", "");
	url = url.replace("formatZlist", "");

	var end = url.lastIndexOf("/");

	if(end < (url.length - 1)) {
		url = url + "_";
	}

	document.location.href = url + "formatZmap";
}

function viewListAndMap() {
	var url = "" + document.location;
	
	url = url.replace("#", "");
	
	if(url.indexOf("?") > 0) {
		url = url.replace(/\?.*/g, "");
	}
	
	url = url.replace("_formatZmap", "");
	url = url.replace("formatZmap", "");
	url = url.replace("_mapZtrue", "");
	url = url.replace("mapZtrue", "");
	url = url.replace("_formatZlist", "");
	url = url.replace("formatZlist", "");
	
	document.location.href = url;
}

var postid = 0;
var tempo;

function showHideActions(action, object, id, objectClass){
	var style = objectClass;
	
	if (action == 'show') {
		style = style +' on';
		if(postid == id){
			clearTimeout(tempo);
		}else{
			showHideOldPreview();
		}
	} else if (action == 'hide') {
		style = style.replace(' on','');
		if(postid != id) {
			if(postid != 0){
				tempo=setTimeout('showHideOldPreview();',1);
			}
		}
		postid = id;
	}
	object.className = style;
	return false;
}

function showHideOldPreview() {
	if(postid != 0 && document.getElementById('preview' + postid) != null && document.getElementById('vista' + postid) != null){
		if (!$j("#preview" + postid).hasClass("off")) {
			$j("#preview" + postid).addClass("off");
			$j("#vista" + postid).removeClass("vista-active");
			$j("#vista" + postid).addClass("vista");
			$j("#previewVerDetalle" + postid).addClass("off");
			$j("#verDetalle" + postid).removeClass("off");
		}
	}

	return false;
}

function showHidePreview(id) {
	if (!$j("#preview" + postid).hasClass("off")) {
		$j("#preview" + postid).addClass("off");
		$j("#vista" + postid).removeClass("vista-active");
		$j("#vista" + postid).addClass("vista");
		$j("#previewVerDetalle" + postid).addClass("off");
		$j("#verDetalle" + postid).removeClass("off");
	}else{
		$j("#preview" + postid).removeClass("off");
		$j("#vista" + postid).addClass("vista-active");
		$j("#vista" + postid).removeClass("vista");
		$j("#previewVerDetalle" + postid).removeClass("off");
		$j("#verDetalle" + postid).addClass("off");	
	}
	return false;
}

function displayOnMap(position, event){
  if (typeof googleMap != 'undefined'){
	  if (googleMap && position) {
		var markers = googleMap.findMarkers(position);
		if(markers.length >0){
			googleMap.triggerMarkerEvent(markers[0],  event);
		}	
	  }
  }
}

function openViewItem(url){
  if(openVI){	
    location.href=url;
  }else{
    openVI=true;
  }
}

function addBoundsToQueryString(url,bounds){
  url = url + '&neLat='+bounds.northEast.latitude+'&neLon='+bounds.northEast.longitude
        +'&swLat='+bounds.southWest.latitude+'&swLon='+bounds.southWest.longitude;
  return url;
}

function editLabel(category){
	//Esto se hace desde la tabla Search_Nav_Channels
	var result = category;
	if(category=="Cantidad de ambientes"){
		result="Ambientes";
	}
	if(category=="Cantidad de dormitorios"){
		result="Dormitorios";
	}
	
	return result;
}
