function gmapsFiltro( name, value )
{
    this.name = name;
    this.value = value;
}

function gmapsConditions()
{
    this.clases = new Array();
    this.filtros = new Array();
}

var ChangeCss={
	load:function(){
		var ostyle="<style type='text/css'>"
		var cssStrings=".noshow {display:none}";
		var cstyle="</style>"
		document.write(ostyle+cssStrings+cstyle)
	}
};ChangeCss.load()
var AjaxRequest = {
	load:function(obj,_url,cb,styles){
		var axis = obj.find("ul").offset();
		var styles = styles || {position:"absolute",width:obj.width(),height:obj.height(),left:axis.left,top:axis.top,border:"1px solid #ccc",background:"#fff url(/design/site/images/ico_loading.gif) no-repeat center center"};
		jQuery.ajax({
			'url': _url,
			'beforeSend': function(){{jQuery(this).ajaxShowPreloader("load",styles)}},
			'dataType': 'html',
			'type': 'GET',
			'success': function(data){
				jQuery(this).ajaxHidePreloader("load");
				obj.html(data);
				obj.show();
				obj.css("visibility","visible");
				eval(cb);
			}
		});
	}
}
var Common={
	layerWidth:340,
	calculator:function(){
	jQuery("#menuCities a.ciudad").bind("mouseover", function(e){
			var axis =jQuery(this).offset();
			if (axis.left + Common.layerWidth > (document.body.clientWidth -20)){
				var obj = jQuery(this).parent().find(".subactive");
				obj.removeClass();
				obj.addClass("subactiveRight");
				var isIE = '\v' == 'v';
				if (isIE){ var coef = 8; }else{ var coef = 10; }
				var anchura = (Common.layerWidth * -1) + obj.parent().width() - coef;
				obj.css({"left":anchura+"px"})
			}
			return false;
		});
	},
	validate:function(){	
	
		var f = $(this);
		switch (f.attr("id")){
			case "comentarios":
				var errorTxt = Common.validateComentarios(f);
				var objFocus = Common.validateComentarios(f,-1);
				break;
			case "comentarios02":
				var errorTxt = Common.validateComentarios(f);
				var objFocus = Common.validateComentarios(f,-1);
				break;
		}	
		errorTxt = errorTxt.substr(0, errorTxt.length-1);
		var errores = errorTxt.split("|");
		Common.setMsgError(errores,f, objFocus);
                if(errorTxt.length==0) return true;
		else return false;
	},
	validateComentarios:function(f,sw) {
		var objFocus = [];
		var errorTxt = "";
		f.find("input").removeClass("error");
		f.find("select").removeClass("error");
		f.find("textarea").removeClass("error");
		var nombre = f.find("#nombre");
		if( nombre.attr("value") == ""){ errorTxt += literal['comentarios'][0]+"|"; objFocus.push(nombre);}
		var comentario = f.find("#comentario");
		if( comentario.attr("value") == ""){ errorTxt += literal['comentarios'][1]+"|"; objFocus.push(comentario);}
		var captcha = f.find("#recaptcha_response_field");
		if( captcha.attr("value") == ""){ errorTxt += literal['comentarios'][2]+"|"; objFocus.push(captcha);}
		if (sw != null){ return objFocus; } else{ return errorTxt; }
	},
	setMsgError: function(errores, f, objFocus, b){
		if (b == null) b = f;
		if (objFocus == null) objFocus = [];
		if ($("div.msgError").exists())$("div.msgError").remove();
		$('<div class="msgError"></div>').insertBefore("#" + b.attr("id"));
		$('<ul></ul>').prependTo('div.msgError');
		if (errores[0] == ""){ errores = []; if ($("div.msgError").exists())$("div.msgError").remove();}
		for (var i = errores.length-1 ; i > -1; i--){
			objFocus[i].addClass("error");
			$('<li><a href=javascript:document.getElementById("'+objFocus[i].attr("id")+'").focus()>' + errores[i] + '</a></li>').prependTo('div.msgError ul');
		}
	}
    
    
    
};

var transformCombos = {
	cmb:null,
	divElement:null,
	ulElement:null,	
	zIndexNumber:1000,
	numColumns:4,
	sumLetras:0,
	maxWidthCmb:0,
	maxLettersByColum:[],
	widthSkinScroll:18,
	init:function(){
		transformCombos.cmb = $("div.transformCmb");	
		transformCombos.customizeCombos(transformCombos.cmb);					
	},
	customizeCombos:function(cmbs){
		var aux, _this, transformCmb, optionsCmb, len, parentt, iframee, hidden = null;
		var optionsValue = [];
		var optionsValues = [];
		var id = eventFunction = "";
		var numColumns = end = excedente = widthWrap = 0;
		var itemsByColumn = 8;
		var row = 1;
		cmbs.each(function(j){			
			transformCmb = $(this);												
			transformCmb.css('zIndex', transformCombos.zIndexNumber);
			transformCombos.zIndexNumber -= 10;			

			transformCombos.findMaxColumns(transformCmb);
			transformCombos.setColumnsWidth(transformCmb);								

			transformCombos.divElement = transformCmb;	
			
			optionsValue = [];				
			optionsValues = [];
			transformCombos.widthMaxColum = [];
			transformCombos.maxLettersByColum = [];
			transformCombos.sumLetras = 0;
		})
	},
	setColumnsWidth:function(cmb){
		var uls = cmb.find("ul");
		var i = sum_letras = rel = 0;		
		transformCombos.maxWidthCmb = parseInt(cmb.find("div.clearFix").css("width")) - transformCombos.widthSkinScroll;
		try{
			rel = (transformCombos.maxWidthCmb / transformCombos.sumLetras);		
			uls.each(function(i){			
				$(this).width(rel * transformCombos.maxLettersByColum[i])
			})			
		}catch(e){}	
	},
	findMaxColumns:function(cmb){
		var uls = $(cmb).find("ul");
		var _this = null;
		var aux = len = 0;
		cmb.find(".clearFix").show();
		uls.each(function(i){
			_this = $(this);
			_this.find("li").each(function(){
				_this = $(this);		
				len = _this.text().length
				if(len > aux) aux = len;								
			})
			transformCombos.maxLettersByColum[i] = aux;
			transformCombos.sumLetras += aux;
			aux = 0;			
		})		
		cmb.find(".clearFix").hide();
	},
	setEvents:function(cmbs){
		var spann = _this = ul = spannAux = wrap = null;
		var aElements = [];
		var aux = id = "";		
		transformCombos.cmb = $("div.transformCmb");
		transformCombos.cmb.each(function(){
			transformCombos.divElement = $(this);
			aElements = transformCombos.divElement.prev();
			aElements.click(function(){
				_this = $(this);												
				transformCombos.openCmb(_this);				 
			})
		})
	},	
	openCmb:function(obj){
		var divElement = obj.parent();
		var wrap = divElement.find("div.clearFix"); 
		var heightWrap = wrap.height();			
		var axis = 0;		
		wrap.bgiframe();		
		wrap.show();
		//axis = realPosition.getLeft(obj.get(0));
		//wrap.css("left", axis);
		wrap.hover(
			function(){},
			function(){
				transformCombos.closeCmb(obj);
			}			
		)
	},
	closeCmb:function(obj){
		var divElement = obj.parent();
		var wrap = divElement.find("div.clearFix"); 
		wrap.hide();		
	}
}

Array.prototype.inArray = function(value){    
    var i;
    for (i = 0; i < this.length; i++) {
        if (this[i] === value) {            
            return true;
        }
    }
    return false;
}
var ModLoMas = {
	load: function(){ModLoMas.changeTab(jQuery("#column01 .pestanias li a:first"));jQuery("#column01 .pestanias li a").each(function(e){jQuery(this).bind("click", function(){ModLoMas.changeTab(jQuery(this));return false;})})},
	changeTab: function(tab){
       
		var obj = jQuery(".resultPestanias");
        jQuery(tab).attr("href");
        jQuery(obj).parent().find("div.pestanias ul li").removeClass("active");
	    jQuery(tab).parent().addClass("active");
		AjaxRequest.load (jQuery(obj),jQuery(tab).attr("href"),'Valoracion.starInit()');
	}
}

var ModLoMas2 = {
	load: function(){ModLoMas2.changeTab(jQuery(".pestanias2 li a:first"));jQuery(".pestanias2 li a").each(function(e){jQuery(this).bind("click", function(){ModLoMas2.changeTab(jQuery(this));return false;})})},
	changeTab: function(_tab){
		var obj = jQuery(".moduleType117 .moduleType101");
		obj.parent().find("div.pestanias2 ul li").removeClass("active");
		_tab.parent().addClass("active");
		AjaxRequest.load (obj,_tab.attr("href"),'Valoracion.starInit()');
	}
}

var Sesiones = {
	load: function(){$(".cine .contentSesiones .dias a").each(function(e){$(this).bind("click", function(){Sesiones.changeTab($(this));return false;})})},
	changeTab: function(_tab){
		var obj = _tab.parent().parent().parent().find(".diasSesion");
		_tab.parent().parent().find("li").removeClass("active");
		_tab.parent().addClass("active");
		AjaxRequest.load (obj,_tab.attr("href"),'verticalAlign.load()');
	}
}
var Galeria = {
	load: function(){$("#slideObject li a").each(function(e){$(this).bind("click", function(){Galeria.loadImg($(this));return false;})})},
	loadImg: function(_img){
		$("img#detalle").fadeTo("slow", 0,function(){$("#detalle").fadeTo("slow", 1);$("#detalle").attr("src",_img.attr("href"));});
		
		//$("img#detalle").attr("src",_img.attr("href"));
	},
	reloadImg: function(_img){
		alert(_img);
		
		//$("img#detalle").attr("src",_img.attr("href"));
	}
	
}

var Trailers = {
	
	load: function(){$("#slideObject li a").each(function(e){$(this).bind("click", function(){Trailers.loadImg($(this));return false;})})},
	loadImg: function(_img){
		$("#detalle img").fadeTo("slow", 0,function(){$("#detalle img").fadeTo("slow", 1);$("#detalle img").attr("src",_img.attr("href"));});
	},
	reloadImg: function(_img){
		alert(_img);
	}
	
}

var GaleriaDinamica = {
	content:null,
	load: function(){
		GaleriaDinamica.content = jQuery("img#detalle").parent().parent().parent();
		jQuery("#slideObject li a").each(function(e){
			$(this).bind("click", function(){
				GaleriaDinamica.loadImg(jQuery(this),e);
				return false;
			})
		})
	},
	loadImg: function(_img,idx){
		var aux = galleryItems.items[idx];
		//var titulo = jQuery('<div class="ftl"><img alt="'+aux.alt+'" id="detalle" src="'+aux.src+'"/><p class="titInfo sep19">- '+aux.caption+'.</p></div>');
		//var titulo = jQuery('<div class="ftl"><a href="'+aux.href+'"><img alt="'+aux.alt+'" id="detalle" src="'+aux.src+'"/></a><p class="titInfo sep19">- '+aux.caption+'.</p></div>');
		var titulo = jQuery('<div class="ftl"><a href="'+aux.href+'"><img alt="'+aux.alt+'" id="detalle" src="'+aux.src+'"/></a></div>');		
		
		var cuerpo = '<div class="infoContent sep12" style="padding-left:190px;">\n';
		if( aux.ciudad != '')
			cuerpo += '<p class="titInfo">' + aux.ciudad + '</p>';
			
			//cuerpo += '<p class="tit08 sep13" style="font-size:24px">'+aux.titulo+'</p>\n';
			cuerpo += '<p class="tit08 sep13" style="font-size:24px"><a href="'+aux.href+'">'+aux.titulo+'</a></p>\n';			
			
		if( aux.fecha != '')
			cuerpo += '<span class="titPeq sep13">' + aux.fecha + '</span>';
			
			cuerpo += '<p class="texto sep12">' + aux.cuerpo + '</p>'+"\n";
			cuerpo += '<p class="enlace"><a href="'+aux.href+'">ver más</a></p>'
			cuerpo += "</div>\n";
		GaleriaDinamica.content.fadeTo("slow", 0,function(){
		    GaleriaDinamica.content.fadeTo("slow", 1);
			GaleriaDinamica.content.empty();
			GaleriaDinamica.content.append(titulo);
			GaleriaDinamica.content.append(jQuery(cuerpo));
		})								
	}
}


var Pestanias = {
	load: function(){$("#column1 .pestanias li a").each(function(e){$(this).bind("click", function(){Pestanias.changeTab($(this));return false;})})},
	changeTab: function(_tab){
		var obj = jQuery(".resultPestanias");
		obj.parent().find("div.pestanias ul li").removeClass("active");
		_tab.parent().addClass("active");
		AjaxRequest.load (obj,_tab.attr("href"));
	}
}
var Valoracion = {
    starInit: function(){
        jQuery('.auto-submit-star').rating({
            callback: function(value, link){
                jQuery(".star1",
jQuery(this).parent()).removeClass("star-rating-live");
               jQuery(".star1",
jQuery(this).parent()).addClass("star-rating-readonly");
                jQuery(".star1 a", $(this).parent()).click(function(){return
false;});
                jQuery(".star1 a",
jQuery(this).parent()).mouseout(function(){return false;});
                jQuery(".star1 a",
jQuery(this).parent()).mouseover(function(){return false;});

                
$.getJSON("/votes/puntuar/"+($("#contentObject").val())+'/'+value+'/'+($("#clasevoto").val()),
function(data){
                    // si data.valido recibe 0 es que la votación no se ha produccido, porque el usuario ya voto una vez
                  
                    if(data.valido)
                    {
                        alert(data.total);
                        alert(data.media);
                        alert(data.puntos);
                        $('#votostotales1').text('('+data.total+' votos)');
                        $('#votostotales2').text('('+data.total+' votos)');
                    }
                    //$(".tuNota .ranking span").fadeIn("slow");
                })
            }
        });   
    }
}

var ShowHideLeft = {
	load: function(){
		$("#columnLeft ul li.more ul").addClass("hide");
		$("#columnLeft ul li.more").addClass("down");
		$("#columnLeft ul li.more ").each(function(e){
			
			$(this).find(" > a").bind("click", function(){
				if ($(this).parent().find("ul").attr("class").indexOf("hide") == -1 ){
					$(this).parent().find("ul").removeClass("show");
					$(this).parent().find("ul").addClass("hide");
					$(this).parent().removeClass("up");
					$(this).parent().addClass("down");
				}else{
					$(this).parent().find("ul").removeClass("hide");
					$(this).parent().find("ul").addClass("show");
					$(this).parent().removeClass("down");
					$(this).parent().addClass("up");
				}
				return false;
			});
		
		});
		
		
	}

}
var verticalAlign = {
	load: function(){
		$(".horaSesiones").each(function(e){
			var auxH = (($(this).height() - $(this).find(".diasSesion .horas").height())/2) - 5;			
			if (auxH < 0 ) auxH = 0;
			$(this).find(".diasSesion .horas").css({"padding-top": auxH});	
		});
	}
}

var gmaps = {
    markers: new Array(),
    
    createMarker: function(point, icon, miData) {        
        var marker = new GMarker(point, icon);       
        GEvent.addListener(marker, "click", function() {          
          marker.openInfoWindowHtml( '<div>'+miData+'</div>' );
        });
       
        return marker;
      }, 
   
   createMarker2: function(point, icon, xmlRow ) {
        var marker = new GMarker(point, icon);
        marker.class_id = parseInt( xmlRow.getAttribute( 'class_id' ) );
        marker.precio = xmlRow.getAttribute( 'precio' );
        marker.tipodecocina = xmlRow.getAttribute( 'tipodecocina' );		
        GEvent.addListener(marker, "click", function() {
		  $.get( '/filtros/info', {object_id: parseInt( xmlRow.getAttribute( 'object_id' ) )}, function(data){
		  				marker.openInfoWindowHtml( data );
		  }, 'html' );        
          
        });
        gmaps.markers[gmaps.markers.length] = marker;
        return marker;
      }, 
     
   getNear: function( urlToCheck, map )
   {
      var point1 = map.getBounds().getSouthWest().lat();
	  var point2 = map.getBounds().getSouthWest().lng();
	  var point3 = map.getBounds().getNorthEast().lat();
	  var point4 = map.getBounds().getNorthEast().lng();	
       var url= urlToCheck + "?p1="+point1+"&p2="+point2+"&p3="+point3+"&p4="+point4;
			var request = GXmlHttp.create();
        	request.open("GET", url, true);
        	request.onreadystatechange = function() {
        		 if (request.readyState == 4) {
                    var xmlDoc = request.responseXML;
        		 	var xmlRows = xmlDoc.documentElement.getElementsByTagName( 'otro' );
        		 	for( var i = 0; i < xmlRows.length; i++ )
        		 	{
        		 		var xmlRow = xmlRows[i];
        		 		
        		 		var longitude = xmlRow.getElementsByTagName('longitude')[0];
         		 		var latitude = xmlRow.getElementsByTagName('latitude')[0];
         		 		var nombre = xmlRow.getElementsByTagName('nombre')[0]; 
         		 		var icono = xmlRow.getElementsByTagName('icon')[0];         		 		
         		 		var point = new GLatLng( parseFloat(latitude.firstChild.data), parseFloat(longitude.firstChild.data));
         		 		
         		 		var icon = new GIcon(G_DEFAULT_ICON);
						icon.image = icono.firstChild.data;
						icon.iconSize = new GSize( 17, 17 );
						icon.shadow = '';
						icon.iconAnchor = new GPoint( 8, 5);
						
						var markerOptions = { icon:icon };
						
						map.addOverlay(gmaps.createMarker2( point, markerOptions, xmlRow ));
         		 		
        		 	}
        		 }
        		 
        	}
        	request.send(null); 
   }
   , 
   doPost: function()
   {
       var conditions = new gmapsConditions();
       var filters = ( $( 'input.chk[checked=true]', '#criterios') );
	   
	 
       if (filters.length == 0) {
	   	for (var i = 0; i < gmaps.markers.length; i++) {
	   		gmaps.markers[i].show();
	   	}
	   }
	   else {
	   	  for( var i = 0; i<gmaps.markers.length; i++ ) {
           gmaps.markers[i].hide();
          
       }
	   	var clases = new Array();
	   	var filtros = new Array();
	   	
	   	for (var i = 0; i < filters.length; i++) {
	   		var aux = $(filters).eq(i).val();
	   		var jsonData = eval('(' + aux + ')');	
            for( var j = 0; j < jsonData.clase.length; j++) {
                conditions.clases[conditions.clases.length] = parseInt(jsonData.clase[j]);
            }		
	   		
	   		if (jsonData.filtros) {
	   			for (var j in jsonData.filtros) {
	   				conditions.filtros[conditions.filtros.length] = new gmapsFiltro(j, jsonData.filtros[j]);
	   			}
	   		}
	   	} 
       
	   	
	   	for (var i = 0; i < gmaps.markers.length; i++) {
	   	
	   		if ((conditions.clases.inArray(gmaps.markers[i].class_id)) && (gmaps.markers[i].class_id != class_id)) {
	   			gmaps.markers[i].show();
	   		}
	   		else 
	   			if ((gmaps.markers[i].class_id == class_id) && (conditions.filtros.length == 0) && conditions.clases.inArray(gmaps.markers[i].class_id)) {
					gmaps.markers[i].show();
				}
				else 
					if (conditions.filtros.length > 0) {
						for (var k = 0; k < conditions.filtros.length; k++) {
							var sep = conditions.filtros[k].value.toString().split(',');
							for (var h = 0; h < sep.length; h++) {
								if (eval('gmaps.markers[i].' + conditions.filtros[k].name + ' == ' + sep[h])) {
									gmaps.markers[i].show();
								}
							}
						}
						
					}
	   		
	   	}
	   }
   }
       
    
}
var player = null;

var currentState = "NONE"; 
var previousState = "NONE"; 

var player = null;
function playerReady(thePlayer) {
	player = document.getElementById(thePlayer.id);
	addListeners();
}


function addListeners() {
	if (player) { 
		player.addModelListener("STATE", "stateListener");
	} else {
		setTimeout("addListeners()",100);
	}
}


function stateListener(obj) { //IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED
	currentState = obj.newstate; 
	previousState = obj.oldstate; 

	/*
	if ((currentState == "COMPLETED")&&(previousState == "PLAYING")) {
		document.location.href="http://www.jeroenwijering.com/?item=JW_FLV_Media_Player"; 
	}
	*/
}


function cambiaPlayer(fichero,imagen)
{
					var lst = new Array();
					lst[0] = {file:fichero,image:imagen};
					player.sendEvent('LOAD', lst[0]);
					
}

(function($) {	
	
	$(document).ready( function()
    {
    	if ($("#menuSubMain").exists()) $("#menuSubMain ul li.active").prev().addClass("nobg");
    	if ($("#menuCities").exists()) $("#menuSubMain ul li.active").prev().addClass("nobg");
    	if ($(".conciertos .subSeccion ").exists()) $(".conciertos .subSeccion li.active ").prev().addClass("nobg");
    	if($("#column01 .pestanias").exists()){ModLoMas.load(); Valoracion.starInit();}
    	if($(".moduleType117 .pestanias2").exists()){ModLoMas2.load(); Valoracion.starInit();}
    	if($("#columnCenter .valoracionUsuarios .dataStars").exists()){ Valoracion.starInit(); }
    	if ($(".moduleAjax100 .resultPestanias .gridType04 .columnType0106 .block01").exists()) $(".moduleAjax100 .resultPestanias .gridType04 .columnType0106 .block01").equal();
    	
    	if($(".cine .columnType0110  .contentSesiones").exists()){Sesiones.load(); }
    	
    //	if ($(".moduleAjax100 .content").length > 0) Pestanias.load();
    //	$('div.gridType02 .content').equal();
    	
    	if ($('.slideshow #slideObject').exists()) {$('#slideObject').jcarousel(); Galeria.load();}
    	if ($('.slideshow02 #slideObject').exists()) {$('#slideObject').jcarousel({ scroll: 3 }); Galeria.load();}
		if ($('.slideshow03 #slideObject').exists()) {$('#slideObject').jcarousel({scroll: 3 }); GaleriaDinamica.load();}
    	
    	 if ($("#mediaspace").exists()) reproductor.inicioPlayer(); 
    	 
    	if ($("#comentarios").exists()) $("#comentarios").bind("submit", Common.validate);
    	if ($("#comentarios02").exists()) $("#comentarios02").bind("submit", Common.validate);
    	if ($("#columnLeft ul.other li.more").exists()) ShowHideLeft.load();
    	if ($(".horaSesiones").exists()) { verticalAlign.load();}
    	var maximos = new Array ();
    	$("textarea").attr("maxlength", function (i) {if (maximos[i] = this.getAttribute('maxlength')) {$(this).keypress(function(event) {return ((event.which == 8) ||(event.which == 9) || (this.value.length < maximos[i]));})}});
    	Common.calculator();
		
		if ($("#ambito").exists()){

		transformCombos.init();

		transformCombos.setEvents();

	}

	if ($("#ambitohome").exists()){

		transformCombos.init();

		transformCombos.setEvents();

	}
	
	if($("#terminos").exists())
	{
		/*$("#terminos").focus(function(){
			$(this).val('')
		});*/
        var searchBox = $("#terminos");
        var searchBoxDefault = "¿Qué buscas en Guiadelocio.com?";
        searchBox.focus(function(){
            if($(this).attr("value") == searchBoxDefault) $(this).attr("value", "");
        });
        searchBox.blur(function(){
            if($(this).attr("value") == "") $(this).attr("value", searchBoxDefault);
        });
	}

    });	
})(jQuery);
