$(document).ready(function() {

	var productsAddURL = "_temp_ajax_add_products.html";

	setScreenClass();
	checkBrowser();
	setOrganizadorHeight();
	desplegables();
	if(document.getElementById("gMap")) { gMapLoader(); }
	if($.browser.msie && $.browser.version.number == 7) {
		$("#ie6Styles").remove();
	}
	if($.browser.firefox) {
		$("#ie6Styles").remove();
		$("#ie7Styles").remove();
	}
	if($.browser.msie && $.browser.version.number == 6) {
		$("#ie7Styles").remove();
	}
	if(document.getElementById("banners")) { applyBannerCodes(); }
	
	if(document.getElementById("productsAdder")) {
		productsAdder(productsAddURL);
	}	

//	cleanMessyCode();

});

$(window).resize(function(){
	setScreenClass();
});

function cleanMessyCode() {

	var regexp = /[0-9a-zA-Z]/gi;

	$("body div").each(function() {
		var thisDiv = $(this).html();
		if(thisDiv.match(regexp) == null) {
			$(this).remove();
		}
	});
}

//Funcion para cambiar el layout dependiendo de la resolucion de pantalla
// Importante! Despues de hacer el cambio de layout via js, no puedo utilizar los selectores avanzados en IE,
// ya que ese javascript no estaria cargado, asi que en screen1024.css y screen800.css solo puede haber selectores que entienda IE
function setScreenClass(){
	var fmt = document.documentElement.clientWidth;
	var cls = (fmt<1000) ? 'screen800' : 'screen1024';
	

	if($(".dynamicMap").length > 0) {
		var ifmt = document.documentElement.clientWidth;
		var cls2 = (ifmt<480) ? 'screen800' : 'screen1024';
		cambiarMapasRecintos(cls2,$("body").attr("class"));
	}

	$("body").removeAttr("class");
	$("body").addClass(cls);

	if(document.getElementById("cabeceraSalon")) {
	var cabImgSrc = $("#cabeceraSalon").attr('src');
	if(cls == "screen1024") {
		cabImgSrc = cabImgSrc.replace("screen800","screen1024");
		cabImgSrc = cabImgSrc.replace("screen1024","screen1024");
	}
	else {
		cabImgSrc = cabImgSrc.replace("screen1024","screen800");
		cabImgSrc = cabImgSrc.replace("screen800","screen800");
	}
	$("#cabeceraSalon").attr('src',cabImgSrc);
	}
	if(document.getElementById("headerRight")) { cambiarOrganizadorBtn(cls); }

};

function cambiarOrganizadorBtn(classID) {

    try {
		var scrNum = classID.replace("screen","");
		var currentClass = $("#headerRight ul li:eq(1) > div").attr("class");
		currentClass = currentClass.split(" ");
		currentClass = currentClass[1];
	
		if(classID == "screen800") {
			$("#headerRight ul li:eq(1) > div").addClass(currentClass+"_"+scrNum);
			$("#headerRight ul li.datos-login").addClass("datos-login_"+scrNum);
			$("#searchForm input[@type='text']").css("width","64%").css("margin-left","5px");
			moveButton(classID);
		}
		else {
			$("#headerRight ul li:eq(1) > div").removeClass(currentClass+"_800");
			$("#headerRight ul li.datos-login").removeClass("datos-login_800");
			$("#searchForm input[@type='text']").css("width","84%");
			moveButton(classID);
		}
    } catch(e){ }
}

$(document).ready(function() {
	if(checkBrowser() == "op") {
		$("#headerRight > ul > li #goSearch").css("float","right").css("margin-right","10px");
		$(".paginador").css("width","103% !important");
		$(".paginador > li").css("width","33.5% !important");
	}
	
});

function moveButton(classID) {
	if(checkBrowser() == "op" && classID == "screen800") { $("#headerRight > ul > li #goSearch").addClass("operaButton"); }
	else { $("#headerRight > ul > li #goSearch").removeClass("operaButton"); }
//	if(document.getElementById("OrganizadorAdder")) { organizerInitialElements(); }
}

function checkBrowser() {
	if($.browser.msie) { return "ie"; }
	if($.browser.mozilla) { return "ff"; }
	if($.browser.opera) { return "op"; }
	if($.browser.safari) { return "sa"; }
}




function organizerInitialElements() {

$("#OrganizadorAdder").find("label").css("display","none");
$("div.tools").html("<a href=\"#\" title=\"A&ntilde;adir todos al organizador\" class=\"add_all\">A&ntilde;adir todos al organizador</a>");
$("#organizerCounter").html("&nbsp;0&nbsp;");

$(".OrganizerStar").html("<a href=\"#\" class=\"clip\" title=\"A&ntilde;adir del organizador\">A&ntilde;adir del organizador</a>");
$(".OrganizerStar a").attr("id", function() { var thisID = $(this.parentNode).attr('id'); return organizerReturnElementID(thisID); } );

var defaultElements = $("#organizerElements_default").attr("value");
var getDefaultElementsValue = $("#organizerElements_"+defaultElements).attr("value");
var countDefaultElements = getDefaultElementsValue.split(",");

for(i=0; i<(countDefaultElements.length)-1; i++) {
	$(".OrganizerStar").find("a#"+countDefaultElements[i]).removeClass("clip").attr("title","A&ntilde;adir del organizador").html("A&ntilde;adir del organizador");
	$(".OrganizerStar").find("a#"+countDefaultElements[i]).addClass("unclip").attr("title","Eliminar del organizador").html("Eliminar del organizador");
}

$("#organizerCounter").html((countDefaultElements.length)-1);

$("a.add_all").click(function() { organizerAddAllElements(); return false; });
$("a.clip").click(function() { organizerAddElement(this.id); return false; });
$("a.unclip").click(function() { organizerRemoveElement(this.id); return false; });

}

function organizerReturnElementID(elID) {
var elID = elID.split("_");
return elID[1];
}

function organizerAddAllElements() {
alert("all added");
}

function organizerAddElement(elID) {
alert(elID);
}

function organizerRemoveElement(elID) {
alert(elID);
}

function setOrganizadorHeight() {
if(document.getElementById("organizadorBox")) {
var divH = $("div.large").height();
$("div.organizadorBox").css("height",divH+80);
}
}

function desplegables() {

$("a.open").css("background","none").css("border","none").css("padding-bottom","0px").css("margin-bottom","0px");
$("strong.open").css("background","none").css("border","none").css("padding-bottom","0px").css("margin-bottom","0px");

$("a.open").click(function() {
$("a.open").css("background","url('http://contentp.firabcn.es/contenidos/comunes/imgcomuns/dd_open.png')").css("background-position","right top").css("background-repeat","no-repeat").css("border-bottom","1px solid #ddd").css("padding-bottom","10px").css("margin-bottom","10px");
var thisUL = $(this).parent().find("ul");
if(thisUL.is(":hidden")) {
$(thisUL).slideDown("slow");
}
else {
$(thisUL).slideUp("slow");
$("a.open").css("background","none").css("border","none").css("padding-bottom","0px").css("margin-bottom","0px");
}
setTimeout("setOrganizadorHeight()", 1000);
});

$("strong.open").click(function() {
$("strong.open").css("background","url('http://contentp.firabcn.es/contenidos/comunes/imgcomuns/dd_open.png')").css("background-position","right top").css("background-repeat","no-repeat").css("border-bottom","1px solid #ddd").css("padding-bottom","10px").css("margin-bottom","10px");
var thisUL = $(this).parent().parent().find("ul");
if(thisUL.is(":hidden")) {
$(thisUL).slideDown("slow");
}
else {
$(thisUL).slideUp("slow");
$("strong.open").css("background","none").css("border","none").css("padding-bottom","0px").css("margin-bottom","0px");
}

});

}

/*#################################################*/
function jsTranslate(word,lang) {
	switch (lang) {
		case "ca":
			return word.ca;
		break;
		case "es":
			return word.es;
		break;
		default: return word.ca;
	}
}
/*#################################################*/
function gMapLoader(toDo) {

if(toDo == undefined) {
	map = new GMap2(document.getElementById("mapHolder"));
	directions = new GDirections(map, document.getElementById("routeBar"));
	map.enableDoubleClickZoom();
	map.enableScrollWheelZoom();
	map.addControl(new GSmallMapControl());
	geocoder = new GClientGeocoder();
	geocoder.getLatLng("Barcelona,+Spain", function(point) {
		if (!point) {
			alert(jsTranslate(MAP_ADDRESSNOTFOUND,DEFINE_GLOBAL_LANGUAGE) + $("#gMapToAddress").val());
		}
		else {
			map.setCenter(new GLatLng(41.373588, 2.154415), 13);
			var marker = new GMarker(point);
			var latlng = new GLatLng("41.3745", "2.1495"); map.addOverlay(createMarker(latlng,MAP_FIRA_PLACAESPANA));
			var latlng = new GLatLng("41.377", "2.1804"); map.addOverlay(createMarker(latlng,MAP_FIRA_PORTVELL));
			var latlng = new GLatLng("41.352", "2.131"); map.addOverlay(createMarker(latlng,MAP_FIRA_GRANVIA));
		}
	});

	$("#gMapShowPath").click(function() {
		if($("#gMapStopSlide").val() != "1") {
			$("#routeBar").animate( { height: "250px" }, 1500);
		}
		$("#routeBar").html("<div class=\"gMapLoading\" style=\"\"><img src=\"http://contentp.firabcn.es/contenidos/comunes/imgcomuns/gMapLoading.gif\" /><br />"+jsTranslate(GLOBAL_LOADING,DEFINE_GLOBAL_LANGUAGE)+"</div>");
		$("#routeBar").css("margin-bottom","10px");
		setTimeout("gMapLoader('setDirs')",2000);
		return false;
	});
}

if(toDo == "setDirs") {
	$("#routeBar").find("div.gMapLoading").remove();
	directions.load("from: " + $("#gMapFromAddress").val() + " to: " + $("#gMapToAddress").val(), { "locale": DEFINE_GLOBAL_LANGUAGE });
	$("#gMapStopSlide").val("1");
}

}
/*#################################################*/
function createMarker(point,ubi) {
	var baseIcon = new GIcon();
	baseIcon.shadow = "http://contentp.firabcn.es/contenidos/comunes/imgcomuns/ico_google_map.png";
	baseIcon.iconSize = new GSize(36, 36);
	baseIcon.shadowSize = new GSize(36, 36);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);
	
	var letteredIcon = new GIcon(baseIcon);
	letteredIcon.image = "http://contentp.firabcn.es/contenidos/comunes/imgcomuns/ico_google_map.png";
	markerOptions = { icon:letteredIcon };
	var marker = new GMarker(point, markerOptions);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(jsTranslate(ubi,DEFINE_GLOBAL_LANGUAGE));
	});
return marker;
}
/*#################################################*/
function cambiarMapasRecintos(screen,currentScreen) {
var ifMap = $(document).find(".dynamicMap");
var ifReserve = $(document).find("map");
if(ifMap.length > 0) {
$(".dynamicMap").each(function() {
	if(screen == "screen800") {
		var thisImgSRC = $(this).attr("src");
		var img = thisImgSRC.split("_");
		if(ifReserve.length > 0) { var imgHeight = "303px"; } else { var imgHeight = "220px"; }
		$(this).attr("src",img[0]+"_800.jpg").attr("width","379px").attr("height",imgHeight);
	}
	else {
		var thisImgSRC = $(this).attr("src");
		var img = thisImgSRC.split("_");
		if(ifReserve.length > 0) { var imgHeight = "385px"; } else { var imgHeight = "270px"; }
		$(this).attr("src",img[0]+"_1024.jpg").attr("width","500px").attr("height",imgHeight);
	}
});

$("map area").eq(0).click(function() {
	var openerID = document.referrer;
	openerID = openerID.split("?");
	var domainID = openerID[0].split("/");
	var salonEdicion = domainID[6];
	var thisSID = salonEdicion.substring(0,4);
	if(cod2link[thisSID] != undefined) {
		window.open(cod2link[thisSID]);
		return false;
	}
});

}
}

function applyBannerCodes() {
	var openerID = document.referrer;
	openerID = openerID.split("?");
	var domainID = openerID[0].split("/");
	var salonEdicion = domainID[6];
	var domain = domainID[2];
	domain = "http://"+domain+"/";
	$("table.links").find("code").each(function() {
		var thisHTML = $(this).html();
		thisHTML = thisHTML.replace("@",domain);
		thisHTML = thisHTML.replace("#",salonEdicion);
		$(this).html(thisHTML);
	});
}


function subMenuDD() { $("#subMenuDD li ul").css("display","none"); $("#subMenuDD > li").hoverIntent({ sensitivity: 5, interval: 100, over: subMenuDDHover, timeout: 300, out: subMenuDDOut }); }
function subMenuDDHover() { $(this).find("ul").fadeIn("slow"); }
function subMenuDDOut() { $(this).find("ul").fadeOut("slow"); }
function resumes() { 
$(".resumeBoxBody dl dt").click(function() { if($(this).is("opened")) { $(this).removeClass("opened").addClass("closed"); 
$(this).next().slideUp(function() { $(this).removeClass("opened").addClass("closed"); }); } else { $(this).removeClass("closed").addClass("opened"); 
$(this).next().slideDown(function() { $(this).addClass("opened").removeClass("closed"); }); } return false; }); }
function saveMarcas(url) { $("#marcaAddSubmit").click(function() { $.post(url,{ lang: $("html").attr("lang"), val : $("#marcaAdd").val()},function(x) { $("#marcasSaveForm .formResults span").append(", "+x); }); return false; }); }
function saveMails(url) { $("#mailAddSubmit").click(function() { $.post(url,{ lang: $("html").attr("lang"), val : $("#mailAdd").val()},function(x) { $("#mailsSendForm .formResults span").append(", "+x); }); return false; }); }

function productsAdder(url) {
	
	$("#productsN ul > li").addClass("closed");

	//$("#productsN ul > li:eq(0), #productsN ul > li:eq(0) ul li").removeClass("closed").addClass("opened");

	$("#productsN ul li.opened, #productsN ul li.closed").find("strong").before("<em>&nbsp;</em>");
	$("#productsN ul li ul li ul li").find("em").remove();

	$("#productsN ul li a").click(function() {
		var thisIDCODE = ($(this).attr("id")).replace("add_", "").split("_");
		productExhibitors(thisIDCODE[0]);
		return false;
	});

	$("#productsN ul li em").click(function() {
		if(!!$(this).parent().attr('class').match("opened")) {
			$(this).next().next().slideUp("slow",function() {
				$(this).parent().removeClass("opened").addClass("closed");
			});
		}
		else {
			$(this).next().next().slideDown("slow",function() {
				$(this).parent().removeClass("closed").addClass("opened");
			});
			var thisID = $(this).parent().attr("id");
			//Cargamos los productos del catálogo
			if($("#child"+thisID).attr('class') == undefined || !$("#child"+thisID).attr('class').match("full")) {
			    $.post("nomenclatorList.action?action=1&idProduct="+thisID,{}, function(products) {
			    	$("#child"+thisID).addClass("full");
			    	$("#child"+thisID).html(products);
			    	
			    	//AÑADIMOS LAS FUNCIONALIDADES DE LOS LI
			    	$("#child"+thisID+" ul > li").addClass("closed");
			    	$("#child"+thisID+" ul li.opened, #child"+thisID+" ul li.closed").find("strong").before("<em>&nbsp;</em>");
					$("#child"+thisID+" ul li ul li ul li").find("em").remove();
					$("#child"+thisID+" ul li a").click(function() {
						var thisIDCODE = ($(this).attr("id")).replace("add_", "").split("_");
						productExhibitors(thisIDCODE[0]);
						return false;
					});
					$("#child"+thisID+" ul li em").click(function() {
						if(!!$(this).parent().attr('class').match("opened")) {
							$(this).next().next().slideUp("slow",function() {
								$(this).parent().removeClass("opened").addClass("closed");
							});
						}
						else {
							$(this).next().next().slideDown("slow",function() {
								$(this).parent().removeClass("closed").addClass("opened");
							});
							var thisID = $(this).parent().attr("id");
							if($("#child"+thisID).attr('class') == undefined || !$("#child"+thisID).attr('class').match("full")) {
							    $.post("nomenclatorList.action?action=1&idProduct="+thisID,{}, function(products) {
							    	$("#child"+thisID).addClass("full");
							    	$("#child"+thisID).html(products);
							    	
							    	$("#child"+thisID+" ul > li").addClass("closed");
							    	$("#child"+thisID+" ul li.opened, #child"+thisID+" ul li.closed").find("strong").before("<em>&nbsp;</em>");
									$("#child"+thisID+" ul li ul li ul li").find("em").remove();
									$("#child"+thisID+" ul li a").click(function() {
										var thisIDCODE = ($(this).attr("id")).replace("add_", "").split("_");
										productExhibitors(thisIDCODE[0]);
										return false;
									});
								});
							}
						}
					});
				});
			}
		}
	});
}

function productExhibitors(thisID) {
    $.post("nomenclatorList.action?action=2&idProduct="+thisID,{}, function(exhibitors) {
	    	$("#exhibitors").html(exhibitors);
		});
}
