// Browser detect
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

// JavaScript Document

// lanzamos el Calendario con el día que nos han pasado
function LanzaDia(sDia)
{
	document.location.href= x_PaginaActual + "?idioma=" + x_Idioma + "&acc=" + x_Accesible + "&ruta=/contenido/agenda/cont_agenda.asp&menu=&fecha=" + sDia;
}


// array de los días de la semana
var x_sDias = 
{
	cast:['Lun','Mar','Mie','Jue','Vie','Sab','Dom'],
	val:['Dl','Dm','Dc','Dj','Dv','Ds','Dg']
};

// array de los meses del anyo
var x_sMeses = 
{
	cast:['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
	val:['Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny','Juliol','Agost','Setembre','Octubre','Novembre','Desembre']
};

function CreaCalendario(obj_calendario)
{

	var x_Cargado = false;
	
	
	var bComienzaMes = false;
	var bAcabaMes = false;

	// cargamos los días
	if (x_Calendario_Dia == "")
		x_Calendario_Dia = new Date();
	else
		x_Calendario_Dia = new Date(x_Calendario_Dia);
		
	var nDia = 1;
	
	// cargamos el mes actual
	var nMes = x_Calendario_Dia.getMonth();
	
	// cargamos el Año actual
	var nAnyo = x_Calendario_Dia.getFullYear();
	
	// creamos la fecha
	var dTempFecha = new Date(nAnyo, nMes, nDia);
	
	// cargamos el primer día del mes
	var nPrimerDiaMes = dTempFecha.getDay();
	
	// capturamos el Div del Calendario
	var sObj = document.getElementById(obj_calendario);
	
	// ************** CREAMOS TABLA **************
	// creamos el objeto Tabla
	var objTabla = document.createElement("table");
	
	objTabla.cellSpacing = "2";
	
	// ************** CREAMOS CABECERA **************
	// creamos la cabecera donde irá el mes actual
	var objTHead = document.createElement("thead");

	//creamos el primer tr con el mes actual
	var objTr = document.createElement("tr");

	var objTd = document.createElement("td");
	
	// agregamos el texto del mes
	objTd.innerHTML = x_sMeses[x_Idioma][nMes];
	objTd.colSpan = "7";
	objTd.align = "center";
	
	objTr.appendChild(objTd);
	
	objTHead.appendChild(objTr);
	
	objTabla.appendChild(objTHead);
	
	
	// ************** CREAMOS CUERPO **************
	
	// si no creamos el Tbody no muestra nada en Internet Explorer
	var objTBody = document.createElement("tbody");
	
	//creamos el primer tr con los días de la semana
	objTr = document.createElement("tr");
	
	for (var i=0;i<7;i++)
	{
		// creamos el TD
		objTd = document.createElement("td");
		
		objTd.className = "nombre_dias";
		
		// cargamos el día de la semana
		objTd.innerHTML = x_sDias[x_Idioma][i];
		
		// adjuntamos el TD al TR
		objTr.appendChild(objTd);
	}
	
	// adjuntamos el TR a la TABLA
	objTBody.appendChild(objTr);
	
	// creamos los objetos temporales del TR y el TD para ir creando las semanas
	var objTempTR;
	var objTempTD;
	
	//debugger;


	while (!x_Cargado)
	{
		// creamos el TR
		objTempTR = document.createElement("tr");
		
		// bucle for de Lunes a Domingo
		for (i=0;i<7;i++)
		{
			// si no ha comenzado el més
			if (!bComienzaMes)
			{
				// averiguamos el día de la semana en el que estamos
				// Domingo: 0, Lunes: 1,....
				// si es domingo, pasamos el valor al ultimo de la semana
				// Lunes: 1,...., Domingo: 7
				if (nPrimerDiaMes == 0) nPrimerDiaMes = 7;
				
				for (var j=1;j<nPrimerDiaMes;j++)
				{
					objTempTD = document.createElement("td");
					objTempTD.align = "right";
					objTempTD.innerHTML = "&nbsp;";
					objTempTR.appendChild(objTempTD);
				}
				
				bComienzaMes = true;
				i = i + (nPrimerDiaMes -1);
			}
			
			objTempTD = document.createElement("td");
			
			
			// adjuntamos el TR a la TABLA
			if (nMes == dTempFecha.getMonth())
			{
				// si es un día entre semana, lo ponemos tal cual
				if (i < 5)
					objTempTD.innerHTML = dTempFecha.getDate();
				// si es un día del fin de semana, lo ponemos en negrita
				else
					objTempTD.innerHTML = "<strong>" + dTempFecha.getDate() + "</strong>";

				//aplicamos el estilo de los dias
				objTempTD.className = "dias";

				//si es el día de hoy, le añadimos el classname hoy
				if ((x_Calendario_Dia.getDate() + "/" + x_Calendario_Dia.getMonth() + "/" + x_Calendario_Dia.getFullYear()) == (dTempFecha.getDate() + "/" + dTempFecha.getMonth() + "/" + dTempFecha.getFullYear()))
					objTempTD.className = "hoy";
				
//alert("añadimos cursor");
				// añadimos cursor
				if ((BrowserDetect.browser == "Explorer") && (BrowserDetect.version == "5.5"))
					objTempTD.style.cursor= "hand";
				else
					objTempTD.style.cursor= "pointer";

				objTempTD.title = dTempFecha.getDate() + " de " + x_sMeses[x_Idioma][nMes] + " de " + dTempFecha.getFullYear();
				
				// alineamos a la derecha
				objTempTD.align = "right";
				
				objTempTD.setAttribute("dia",dTempFecha.getDate() + "/" + (dTempFecha.getMonth() + 1) + "/" + dTempFecha.getFullYear());
				objTempTD.onclick = function () {LanzaDia(this.getAttribute('dia'));};
				
				dTempFecha.setDate(dTempFecha.getDate() + 1)
			} else
				x_Cargado = true;
			
			// adjuntamos el TD al TR
			objTempTR.appendChild(objTempTD);
			
		}
		
		objTBody.appendChild(objTempTR);
	}
	
	objTabla.appendChild(objTBody);
	
	// adjuntamos la TABLA al DIV
	sObj.appendChild(objTabla);
	
}
