/**
Copyright 2010 - Kastaniotis Dimitris - D-Extensions.com
license GNU/GPL http://www.gnu.org/copyleft/gpl.html


This file is part of D Calendar.

D Calendar is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

D Calendar is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with D Calendar.  If not, see <http://www.gnu.org/licenses/>.

**/

function D_Day(year, month, day) {
    this.year = year;
    this.month = month;
    this.dayNumber = day;

    this.onclick = "setSelectedDay";

    this.cellPrefix = "day";
    this.linkPrefix = "link";
	
    this.mootips = "true";
    if(d_mootips == "0")
    {
    	this.mootips = "true";
    }
    else
    {
    	this.mootips = "false";
    }
    
    
    this.mooclass = "";
    if(this.mootips == "true")
    {
    	this.mooclass = "hasTip";
    }
    else
    {
    	this.mooclass = " ";
    }
	
	/*per lo vist ací encara no està a active mai (no sap si té event o no) per lo que ho deixe com estava*/
    this.cellclass = "day";/*original*/

    this.isActive = "false";
    this.activeStyle = " style='font-weight:bold;' ";

    	this.title = function() {
    		var txt = "";
			//comentat per girar la data i posar l'any en últim lloc
    		//txt = this.year + "/" + this.month + "/" + this.dayNumber;
			txt = this.dayNumber + "/" + this.month + "/" + this.year;
    		
    		if(this.mootips == "true")
    		{
    			txt += "::";
    		}
    		
    		var entry = "";
    		if(this.mootips == "true")
    		{
    			//entry += "<ul>";
    		}
    		else
    		{
    			entry += ": \n";
    		}
    		
    		var tip = "";
    		for(var eventID = 0; eventID < d_calendar.events.length; eventID ++)
    		{
    			var thisEvent = d_calendar.events[eventID];
    			
				//com és el d'un dia només ha de mirar que coincidisca TOT!
    			if(thisEvent.startYear == this.year && thisEvent.startMonth == this.month && thisEvent.startDate == this.dayNumber)
    			{
					//guardar l'enllaç d'este dia (la variable la cree ací)--> Conté la URL que se li inserta a la funció quan es crea l'event.
					this.urlDia = thisEvent.url;
					
    				if(this.mootips == "true")
    				{
    					tip += "<p><b>";//"<li><b>";
    				}
					
    				if(this.mootips == "true")
    				{
						//he afegit l'eventID per a que trega 1,2,3... davant de cada event->Mal pq eren globals
    					//tip += eventID + " </b>: ";
						//Ho he substituit per una imatge. Ha d'estar ahí.
						//tip += "<img  src=\"images/M_images/weblink.png\"  </b>: ";
						//tip += "<img  src=\"images/M_images/weblink.png\" style=\"padding-top:2px; padding-right:0px; margin-top: 0px;\" </b>: ";
						//volia centrar la imatge però pareix que hauré de centrar el text en lloc de la imatge...
						
						//llevats els dos punts
						tip += "<img  src=\"images/M_images/weblink.png\" </b> ";
    				}
    				else
    				{
    					tip += ": ";
    				}
					
					//Afegit, si els dos són 0 no els mostra.
					if(thisEvent.startTime != 0 && thisEvent.endTime != 0)
    				tip += thisEvent.startTime + " - " + thisEvent.endTime + " ";
					
					//Açò és el títol. S'hauria de canviar a que pillara un enllaç... si al final es vol.
					//Si volem posar accents,ç, etc.. posar en codi html
    				//tip += thisEvent.title + " <a href=\"http:\/\/www.google.es\">Prova</a>";
					//tip += thisEvent.title + " " + thisEvent.url;
					tip += thisEvent.title;
					
    				if(this.mootips == "true")
    				{
    					tip += ".</p>";//".</li>";
    				}
    				else
    				{
    					tip += ". \n";
    				}
    				this.isActive = "true";
    			}
    			
    		}
    		
    		var outro = "";
    		if(this.mootips == "true")
    		{
    			//outro += "</ul>";
    		}
    		
    		if(tip != "")
    		{
    			txt += entry + tip + outro;
    		}
    		
    		return txt;
	}

	//Esta funció és la que replena el calendari i fa els enllaços a # o els posa en griset si veu que no formen part del mes (al else del final). Ací podria fer que l'enllaç del calendari mos tirara a una pàgina que jo li passara i aixina no cal tocar el tooltip per a que siga fijo ni pugues anar per dalt... Lo que passa és que d'esta forma deuria fer articles per dia i després per event, no separats.
	//el problema és que al apretar només el marca el dia, no va a l'enllaç...:\
    this.html = function () {
        
		//açò de baix arreplega tot lo de la funció de dalt per al tooltip, que ho assigna crec en lo de title de 'a' de baix, quan fa el calendari
        var thisTitle = this.title(); //to init the isActive as well
        
        if (this.isActive == "true") {
			/*he canviat el color a blanc per provar en colors de fondo diferents*/
            this.activeStyle = " style='font-weight:bold; color: #fff' ";
			/*si es vol canviar el color s'ha de posar ací pq si no (si ho poses al propi mòdul en joomla) prioritza els links del template.css*/
        }
        else {
            this.activeStyle = "";
        }
		
		/*açò ho he clavat jo ací per a diferenciar entre dos tipus de dies*/
		/*ací ja sap si té event-> si no el té li pose la classe com estava i si el té li pose una nova que es diu eventday*/
		/*aixina ja tinc dos tipus de classe*/
		if (this.isActive == "true") {
    	this.cellclass = "eventday";
		}else{
    	this.cellclass = "day";
		}
		
		/*aixina si té events el canviem de color. Es pot llevar lo del borde i només plenarà lo de dins. Mirar a vore...*/
		if(this.isActive == "true") {
		//thisText = "<td style='background-color: #fffebb; border:1px solid #fffebb;' class='" + this.cellclass + "'";
		//thisText = "<td style='background-color: #618931; border:1px solid #467223;' class='" + this.cellclass + "'";
		//thisText = "<td style='background-color: #618931;' class='" + this.cellclass + "'";
		
		//thisText = "<td style='background-color: #226bb6;' class='" + this.cellclass + "'";
		thisText = "<td style='background-color: #226bb6;' class='" + this.cellclass + "'";
		//thisText = "<td class='" + this.cellclass + "'";
		/*el borde s'haurà d'acabar llevant pq si no no els marca en blau quan es selecciona*/
		}
		else{
        thisText = "<td class='" + this.cellclass + "'";
		}
		
        if(this.dayNumber > 0)
        {
        	thisText +=  " id='" + this.cellPrefix + "_" + this.year + "_" + this.month + "_" + this.dayNumber + "'";
        }
        thisText += ">";
        if(this.dayNumber > 0)
        {
			//Ací ara comprovarem si té algun event i si ho té posarem l'enllaç que hem agarrat. Si hi ha més d'un events sols agarrar l'últim enllaç. Apart llevem lo del false d'onclick per a que puga anar a la URL que diu, i deixe'm lo de marcar el dia antes, encara que quan va a la URL es perd. 
			if (this.isActive == "true") {
				thisText += "<a  title='" + thisTitle + "' onclick='" + this.onclick + "(" + this.year + ", " + this.month + ", " + this.dayNumber + ");' href='" + this.urlDia + "' id='" + this.linkPrefix + "_" + this.year + "_" + this.month + "_" + this.dayNumber + "' class='" + this.mooclass + "' " + this.activeStyle + ">" + this.dayNumber + "</a>";
			}
			else{
			//si no té event es deixa com estava.
			//l'onclick és setselectedday crec... pq l'a title no sé però no el trobe. Title pareix una propietat de 'a' i per això no ix.
        	thisText += "<a  title='" + thisTitle + "' onclick='" + this.onclick + "(" + this.year + ", " + this.month + ", " + this.dayNumber + "); return false;' href='#' id='" + this.linkPrefix + "_" + this.year + "_" + this.month + "_" + this.dayNumber + "' class='" + this.mooclass + "' " + this.activeStyle + ">" + this.dayNumber + "</a>";
			}
		}
		else//posa en gris els dies que no són del mes
		{
			thisText += "<span style='color : lightgray;'>" + Math.abs(this.dayNumber) + "</span>";
		}
		thisText += " </td>";
			return thisText;
        
        
    }
}
