function initEventCalendar(calendarId,pages,type,lang,m,width,height)
{ 
	//////config var//////////////
	var mCfg;
    mCfg = {TITLE_DELIMITER1:"",TITLE_DELIMITER2:"",DATE_FIELD_DELIMITER:"",MDY_DAY_POSITION:"",MDY_MONTH_POSITION:"",MDY_YEAR_POSITION:"",START_WEEKDAY:""};
    mCfg.TITLE_DELIMITER1 = " ";
    mCfg.TITLE_DELIMITER2 = ", ";
    mCfg.DATE_FIELD_DELIMITER = "/";
    mCfg.MDY_DAY_POSITION = 2;
    mCfg.MDY_MONTH_POSITION = 1;
    mCfg.MDY_YEAR_POSITION = 3;
    mCfg.START_WEEKDAY = 0;
    pagedate = "";  // month/year like this "8/2008"  
    mindate = "";   // month/day/year like this "8/5/2008"
    maxdate = "";   // month/day/year like this "8/15/2008"
    close_mode = 3; // 1: Close by clicking the "close" button.
                    // 2: Close automatically when you move the mouse out of the calendar
                    // 3: Close automatically when you move the mouse out of the cell
    /////////////////////////////////////

    YAHOO.util.Event.onDOMReady(YAHOO.DC.EventCalendar.initData,calendarId);
    YAHOO.util.Event.onDOMReady(YAHOO.DC.EventCalendar.init,{id:calendarId,pages:pages,cfg:mCfg,language:lang,w:width,h:height,pagedate: pagedate,mindate: mindate,maxdate: maxdate,close_mode: close_mode});

    YAHOO.DC.EventCalendar.typeCalendar[calendarId] = type;
    YAHOO.DC.EventCalendar.events[calendarId] = new Array();
    YAHOO.DC.EventCalendar._events[calendarId] = new Array();
    
}

YAHOO.namespace("DC.EventCalendar");
YAHOO.DC.EventCalendar.typeCalendar = new Array();
YAHOO.DC.EventCalendar.events = new Array();
YAHOO.DC.EventCalendar._events = new Array();

YAHOO.DC.EventCalendar.calendarArray = new Array();


YAHOO.DC.EventCalendar.onClickEvent = function(args) {
};

YAHOO.DC.EventCalendar.configLanguage = function(calendarId,lang){
    var ms,	ml, wc,ws, wm, wl;
	var cal = YAHOO.DC.EventCalendar.calendarArray[calendarId];

	switch(lang){
		case "DE":
			ms = ["Jan", "Feb", "M&auml;r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"];
			ml = ["Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
			wc = ["S", "M", "D", "M", "D", "F", "S"];
			ws = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
			wm = ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"];
			wl = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];

		break;
		case "SP":
			ms = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
			ml = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
			wc = ["D", "L", "M", "M", "J", "V", "S"];
			ws = ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"];
			wm = ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"];
			wl = ["Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&acute;bado"];

		break;
		case "FR":
			ms = ["Jan", "F&eacute;v", "Mar", "Avr", "Mai", "Jui", "Jui", "Ao&ucirc;", "Sep", "Oct", "Nov", "D&eacute;c"];
			ml = ["Janvier", "F&eacute;vrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Ao&ucirc;t", "Septembre", "Octobre", "Novembre", "D&eacute;cembre"];
			wc = ["D", "L", "M", "M", "J", "V", "S"];
			ws = ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"];
			wm = ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"];
			wl = ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"];

		break;
		case "IT":
			ms = ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Aug", "Set", "Ott", "Nov", "Dic"];
			ml = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"];
			wc = ["D", "L", "M", "M", "G", "V", "S"];
			ws = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"];
			wm = ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"];
			wl = ["Domenica", "Luned&igrave;", "Marted&igrave;", "Mercoled&igrave;", "Gioved&igrave;", "Venerd&igrave;", "Sabato"];

		break;
		case "PT":
			ms = ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"];
			ml = ["Janeiro", "Fevereiro", "Mar&ccedil;o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
			wc = ["D", "S", "T", "Q", "Q", "S", "S"];
			ws = ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"];
			wm = ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "S&aacute;b"];
			wl = ["Domingo", "Seg", "Ter", "Quarta", "Qui", "Sex", "S&aacute;bado"];

		break;
		default:
			return;
		break;
	}

	cal.cfg.setProperty("MONTHS_SHORT", ms);
	cal.cfg.setProperty("MONTHS_LONG", ml);
    cal.cfg.setProperty("WEEKDAYS_1CHAR", wc);
	cal.cfg.setProperty("WEEKDAYS_SHORT", ws);
	cal.cfg.setProperty("WEEKDAYS_MEDIUM",wm);
	cal.cfg.setProperty("WEEKDAYS_LONG",  wl);
	YAHOO.DC.EventCalendar.calendarArray[calendarId] = cal;
};
YAHOO.DC.EventCalendar.init = function(config ) {
	if(arguments.length > 2) config = arguments[2];
	calendarId = config.id;
	pages = config.pages;
	language = config.language;
	var nameContainer = calendarId+"Container";

	if (YAHOO.DC.EventCalendar.typeCalendar[calendarId]==1)
	{
	    var obj2 = document.getElementById(calendarId+"Container");
	    obj2.innerHTML = obj2.innerHTML+'<div id="'+calendarId+'ContainerAdmin"></div><div id="'+calendarId+'addEventDiv" class="addEventDiv"></div>';
	    var obj = document.getElementById(calendarId+"addEventDiv");
	    //obj.innerHTML = '<a href="javascript:YAHOO.DC.EventCalendar.showAddEvent(\''+calendarId+'\',-1);">Add Event</a>';
	    obj.innerHTML = '<input type="button" name="add_event" value="Add Event" onclick="javascript:YAHOO.DC.EventCalendar.showAddEvent(\''+calendarId+'\',-1);"/>';
	    obj.innerHTML += '<input type="button" name="event_list" value="Events List"  onclick="javascript:YAHOO.DC.EventCalendar.showEventlist(\''+calendarId+'\',1);"/>';
	    nameContainer += "Admin";
    }

	YAHOO.DC.EventCalendar.calendarArray[calendarId] = new YAHOO.widget.CalendarGroup(calendarId,nameContainer,{Pages:pages,pagedate: config.pagedate,mindate: config.mindate,maxdate: config.maxdate});
	var cal = YAHOO.DC.EventCalendar.calendarArray[calendarId];
	YAHOO.DC.EventCalendar.configLanguage(calendarId,language);
	cal.mCfg = config.cfg;
	cal.cfg.setProperty("START_WEEKDAY",cal.mCfg.START_WEEKDAY);
    cal.width = config.w;
    cal.height = config.h;
    cal.close_mode = config.close_mode;
    if (true) //override function
    {
	    cal.renderCellDefault = function(workingDate, cell) {
	        cell.innerHTML = workingDate.getDate();
        };
    }
	YAHOO.DC.EventCalendar.refresh(calendarId);
	YAHOO.DC.EventCalendar.calendarArray[calendarId] = cal;
};
YAHOO.DC.EventCalendar.getCell = function(e, cal)
{
	var cell,index,d,date;
	var target = YAHOO.util.Event.getTarget(e);

	var tagName = target.tagName.toLowerCase();
	var defSelector = false;

	while (tagName != "td" && ! YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTABLE))
	{

		if (!defSelector && tagName == "a" && YAHOO.util.Dom.hasClass(target, cal.Style.CSS_CELL_SELECTOR))
			defSelector = true;

		target = target.parentNode;
		tagName = target.tagName.toLowerCase();
		// TODO: No need to go all the way up to html.
		if (tagName == "html")
			return;
	}
	if (defSelector) {
		// Stop link href navigation for default renderer
		YAHOO.util.Event.preventDefault(e);
	}
	return target;
};

YAHOO.DC.EventCalendar.refresh = function(calendarId) {
	areamouseover = function(cellid,areaid,calendarId,id,k)
	{
		var obj = document.getElementById(cellid+"_"+areaid);
		if (YAHOO.util.Dom.hasClass(obj, "sub"))
        	YAHOO.util.Dom.addClass(obj, "subhover");
        if (YAHOO.DC.EventCalendar.typeCalendar[calendarId]==2)
        {	
            var obj2 = YAHOO.DC.EventCalendar.events[calendarId][id];
            YAHOO.DC.EventCalendar.closeOverDialog('addEventid'+cellid+'-'+k+'-'+areaid); 
            if (obj2.tooltip == 1 && obj2.eTooltip != 2)
            {
            	comment = obj2.comment;
                YAHOO.DC.EventCalendar.showMouseOverDialog('addEventid'+cellid+'-'+k+'-'+areaid,obj2.title,comment,obj);    
            }    
                
        }    
	    	
	};
	areamouseout = function(cellid,areaid)
	{
		var obj = document.getElementById(cellid+"_"+areaid);
        if (YAHOO.util.Dom.hasClass(obj, "subhover"))
        	YAHOO.util.Dom.removeClass(obj, "subhover");
	};
	myCustomEvent = function(workingDate, cell) {
        YAHOO.util.Dom.addClass(cell, "eventdate");
        if (YAHOO.DC.EventCalendar.typeCalendar[calendarId]==1)
        {
            var height = 40;
            var width = 40;
        }
        else
        {
            var height = YAHOO.DC.EventCalendar.calendarArray[calendarId].height;
            var width = YAHOO.DC.EventCalendar.calendarArray[calendarId].width;
        }
        if (YAHOO.DC.EventCalendar.typeCalendar[calendarId]==1)
            var spacer = pathCalendarCPE+"spacer.gif";
        else
            var spacer = pathCalendarCPE+"spacer.gif";
            
        var k = (workingDate.getMonth() + 1)+"/"+workingDate.getDate()+"/"+workingDate.getFullYear();    
		
		// var strcell='<div style="position:relative;"><div style="position:absolute;vertical-align:middle;height:'+height+'px;width:'+width+'px;text-align:center;">'+workingDate.getDate()+'</div><div style="position:absolute;height:'+height+'px;width:'+width+'px;"><img src="'+spacer+'" height="'+height+'" width="'+width+'" border="0" usemap="#Map'+cell.id+'-'+k+'">';
		
        var strcell='<div style="position:relative;"><div style="position:absolute;vertical-align:middle;height:'+height+'px;width:'+width+'px;text-align:center;">'+workingDate.getDate()+'</div><div style="position:absolute;height:'+height+'px;width:'+width+'px;"><img src="'+spacer+'" height="'+height+'" width="'+width+'" border="0" usemap="#Map'+cell.id+'-'+k+'">';
       
	   strcell +='<map name="Map'+cell.id+'-'+k+'">';
       c = _a[k].length;

        for (var i=0;i<c;i++)//
            strcell +='<area shape="rect" coords="0,'+Math.round(height/c*i)+','+width+','+((i==(c-1))?height:Math.round(height/c*(i+1)))+'" href="javascript:YAHOO.DC.EventCalendar.showAddEvent(\''+calendarId+'\','+_a[k][i].myid+',\''+cell.id+'\','+i+',\''+k+'\')" onmouseover="javascript:areamouseover(\''+cell.id+'\','+i+',\''+calendarId+'\','+_a[k][i].myid+',\''+k+'\')" onmouseout="javascript:areamouseout(\''+cell.id+'\','+i+')">';
        strcell +='</map>';
        strcell +='</div>';
        height = height - 2;
        for (var i=0;i<c;i++)
            strcell +='<div style="background-color:'+_a[k][i].colorSelected+';height:'+((i==(c-1))?(height-i*Math.round(height/c)):Math.round(height/c))+'px;top:'+Math.round(height/c*i)+'px;" class="sub" id="'+cell.id+'_'+i+'"><img src="'+spacer+'" height="'+Math.round(height/c)+'" width="100%"></div>';

        strcell +='</div>';
        cell.innerHTML = strcell;
        return YAHOO.widget.Calendar.STOP_RENDER;
    };

	YAHOO.DC.EventCalendar.calendarArray[calendarId].removeRenderers();
    var _a = YAHOO.DC.EventCalendar._events[calendarId];

    for (var k in _a)
    	if (_a[k].length>0)
    	    YAHOO.DC.EventCalendar.calendarArray[calendarId].addRenderer(k, myCustomEvent);
    YAHOO.DC.EventCalendar.calendarArray[calendarId].render();
};



////////////////////////////////////////////////

YAHOO.DC.EventCalendar.getRequest = function() {
    http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType)
           http_request.overrideMimeType('text/html');
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    }
    return http_request;
};

YAHOO.DC.EventCalendar.initData = function(calendarId ) {
    if(arguments.length > 2) calendarId = arguments[2];
    http_request = YAHOO.DC.EventCalendar.getRequest();
    if (YAHOO.DC.EventCalendar.typeCalendar[calendarId]==1)
        http_request.open('GET', pathCalendarCPEJB+'index.php?option=com_cpeventcalendar&task=load&id='+calendarId, false);
    else
        http_request.open('GET', pathCalendarCPEJB+'index.php?option=com_cpeventcalendar&task=load&id='+calendarId, false);

    http_request.send(null);
    var text = http_request.responseText;

    text = text.replace(/%26/g, "&");
    text = text.replace(/\r/g, "");
    if (!YAHOO.DC.EventCalendar.events[calendarId])
        YAHOO.DC.EventCalendar.events[calendarId] = new Array();
    if (!YAHOO.DC.EventCalendar._events[calendarId])
        YAHOO.DC.EventCalendar._events[calendarId] = new Array();    
    var a = YAHOO.DC.EventCalendar.events[calendarId];
    var _a = YAHOO.DC.EventCalendar._events[calendarId];
    
    var tmp = text.split("\n*-*\n");
    var t = "";
    for (i=0;i<(tmp.length-1);i++)
    {
    	
        var tmp2 = tmp[i].split("\n");
        comment = "";
        
        if (tmp2[tmp2.length-1].substring(0,1)!="#")
        {
           config = myColors[0]+",1,1,0,http://";
           for (var k=2;k<tmp2.length;k++)
               comment +=tmp2[k];
        }   
        else
        {
           config = tmp2[tmp2.length-1];  
           for (var k=2;k<tmp2.length-1;k++)
               comment +=tmp2[k]; 
        }   
        days = tmp2[0].split("-");
        days[0] = days[0].split("/");
        days[1] = days[1].split("/");
        
        newObj = {range:tmp2[0],myid:i,l:YAHOO.widget.DateMath.getDate(days[0][2],days[0][0]-1,days[0][1]),u:YAHOO.widget.DateMath.getDate(days[1][2],days[1][0]-1,days[1][1]),title:tmp2[1],comment:comment,colorSelected:config.substring(0,7),tooltip:config.substring(8,9),eTooltip:config.substring(10,11),target:config.substring(12,13),goUrl:config.substring(14,config.length)};
        a[i] = newObj;
        
    }

    if (tmp.length<1)
    {
        YAHOO.DC.EventCalendar.events[calendarId] = new Array();
        YAHOO.DC.EventCalendar._events[calendarId] = new Array();
    }
    else
    {
    	for (var i=0;i<a.length;i++)
    	{
    		for (var j=a[i].l;j<=a[i].u;j=YAHOO.widget.DateMath.add(j,YAHOO.widget.DateMath.DAY,1))
    		{
    			day = (j.getMonth() + 1)+"/"+j.getDate()+"/"+j.getFullYear();
    			if (!_a[day]) _a[day]=new Array();
    			_a[day][_a[day].length] = a[i];

    		}
    	}
        YAHOO.DC.EventCalendar.events[calendarId] = a;
        YAHOO.DC.EventCalendar._events[calendarId] = _a;
    }


};

YAHOO.DC.EventCalendar.alertContents = function() {
    //alert(http_request.responseText);
    if (http_request.readyState == 4) {
       if (http_request.status == 200) {
          var str = http_request.responseText;
          if (str.indexOf("Permission denied") > 0 || str.indexOf("failed to open stream") > 0)
              alert('PROBLEM: The server has returned a "PERMISSION DENIED" error. \n\nSOLUTION: Please set write permissions to the folder "DC_EventCalendar\\admin\\database" and to all the files inside that folder.\n\nTIP: FTP programs ("clients") allow you to set permissions for files and directories on your remote host. This function is often called chmod or set permissions in the program menu. You must set the permissions to 777 (rwxrwxrwx). If you are not sure about setting write permissions, please contact your hosting support and ask them to set the permissions.');
       } else {
          var str = http_request.responseText;
          if (str.indexOf("Permission denied") > 0 || str.indexOf("failed to open stream") > 0)
              alert('PROBLEM: The server has returned a "PERMISSION DENIED" error. \n\nSOLUTION: Please set write permissions to the folder "DC_EventCalendar\\admin\\database" and to all the files inside that folder.\n\nTIP: FTP programs ("clients") allow you to set permissions for files and directories on your remote host. This function is often called chmod or set permissions in the program menu. You must set the permissions to 777 (rwxrwxrwx). If you are not sure about setting write permissions, please contact your hosting support and ask them to set the permissions.');
          else
              alert('There was a problem with the request.');
       }
    }
};

YAHOO.DC.EventCalendar.saveData = function(calendarId) {

    function encodeParam(name,param) {
           param = param.replace(/&/g, "%26");
           return name+"=" + encodeURI(param);
        }
    var a = YAHOO.DC.EventCalendar.events[calendarId];
    var str = "";
    for (i=0;i<a.length;i++) {
            str += a[i].range+"\n"+a[i].title+"\n"+a[i].comment+"\n"+a[i].colorSelected+","+a[i].tooltip+","+a[i].eTooltip+","+a[i].target+","+a[i].goUrl+"\n*-*\n";
    }
    parameters = encodeParam("events",str); 
    http_request = YAHOO.DC.EventCalendar.getRequest();
    http_request.onreadystatechange = YAHOO.DC.EventCalendar.alertContents;

    if (YAHOO.DC.EventCalendar.typeCalendar[calendarId]==1)
        http_request.open('POST','index.php?option=com_cpeventcalendar&view=admin&task=update&id='+calendarId, true);
    else
        http_request.open('POST','administrator/index.php?option=com_cpeventcalendar&view=admin&task=update&id='+calendarId, true);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", parameters.length);
    http_request.setRequestHeader("Connection", "close");
    http_request.send(parameters);
};
///////////////////////////////////
YAHOO.namespace("DC.addCalendar");
YAHOO.DC.EventCalendar.showAddEvent = function(calendarId,id,cellid,areaid,k)
{
    if (YAHOO.DC.EventCalendar.typeCalendar[calendarId]==1)
        YAHOO.DC.EventCalendar.showAddEventAdmin(calendarId,id);
    else
    {
    	obj2 = YAHOO.DC.EventCalendar.events[calendarId][id];
    	YAHOO.DC.EventCalendar.closeOverDialog('addEventid'+cellid+'-'+k+'-'+areaid);
    	if (obj2.tooltip == 1 && obj2.eTooltip == 2)
    	{
    		var obj = document.getElementById(cellid+"_"+areaid);    		
            YAHOO.DC.EventCalendar.showMouseOverDialog('addEventid'+cellid+'-'+k+'-'+areaid,obj2.title,obj2.comment,obj);    
        }
        else if (obj2.goUrl != "")
    	{
		    if (obj2.target == 2)
		        document.location =  obj2.goUrl;
		    else    
          	    window.open(obj2.goUrl);
        }  	    
    }       	    
};
YAHOO.DC.EventCalendar.confirmAndDelete = function(id,id_in)
    {
    	if (confirm('Are you sure delete this event?'))
    	{
    		var a = YAHOO.DC.EventCalendar.events[calendarId];
			var _a = YAHOO.DC.EventCalendar._events[calendarId];
			var newObj = a[id];
			for (var j=newObj.l;j<=newObj.u;j=YAHOO.widget.DateMath.add(j,YAHOO.widget.DateMath.DAY,1))
    		{
    			day = (j.getMonth() + 1)+"/"+j.getDate()+"/"+j.getFullYear();
    			for (var k=0;k<_a[day].length;k++ )
    			    if (_a[day][k].myid == newObj.myid)
    			    {
    			    	_a[day].splice(k,1);
    			    }
    		}
    		a.splice(id,1);
    		var i=0;
    		for (k in a)
    		{
    			a[k].myid=i;
    			i++;
    		}		
    		YAHOO.DC.EventCalendar.events[calendarId] = a;    		
			YAHOO.DC.EventCalendar._events[calendarId] = _a;
			YAHOO.DC.EventCalendar.refresh(calendarId);
			YAHOO.DC.EventCalendar.saveData(calendarId);
			YAHOO.DC.panel.panels[id_in][0].hide();
    	}
    	
    };
YAHOO.DC.EventCalendar.showAddEventAdmin = function(calendarId,id)
{
	var colorSelected="";
	init = function(id)
	{
	    obj = YAHOO.DC.EventCalendar.events[calendarId][id];
	    found = false;
	    
	    cleancolor();
	    for (var i=0;(i<myColors.length && !found);i++)
			if (myColors[i].toLowerCase() == obj.colorSelected.toLowerCase())
			{
				found = true;
			    document.getElementById("boxcolor"+i).style.borderColor="#000000";
			    colorSelected = "boxcolor"+i;
			}
		
		YAHOO.DC.addCalendar.setInterval(obj.l,obj.u);	
		document.getElementById("titleEvent").value=obj.title;
		document.getElementById('descriptionEvent_'+id).value=obj.comment;
		if (obj.tooltip == 1)
		    document.getElementById("tooltipEvent").checked = true;
		else
		    document.getElementById("tooltipEvent").checked = false; 
		    
		var eTooltipObj = document.getElementById("eTooltipEvent");    
		var etargetEvent = document.getElementById("targetEvent");   
		if (obj.eTooltip == 2)
		    eTooltipObj.selectedIndex = 1 ;
		else 
		    eTooltipObj.selectedIndex = 0 ; 
		if (obj.goUrl == "")
		{
			document.getElementById("goToUrl").checked = false;
			document.getElementById("urlEvent").value = "";
		}
		else
		{
			document.getElementById("goToUrl").checked = true;
			document.getElementById("urlEvent").value = obj.goUrl;
		}
		if (obj.target == 2)  
		    etargetEvent.selectedIndex = 1 ;
		else 
		    etargetEvent.selectedIndex = 0 ; 
	};
	
	cleancolor = function()
	{
		for (i=0;i<myColors.length;i++)
			document.getElementById("boxcolor"+i).style.borderColor="#F2F2F2";
	};
	selectcolor = function(id)
	{	
		cleancolor();	
		var obj = document.getElementById(id);
		obj.style.borderColor="#000000";
		colorSelected = id;
	};
	showurl = function()
	{
		obj1 = document.getElementById("eTooltipEvent");
		obj2 = document.getElementById("tooltipEvent");
		if (obj1.options[obj1.selectedIndex].value==2 && obj2.checked)
		    document.getElementById("divurlEvent").style.display = "none";
		else
		    document.getElementById("divurlEvent").style.display = "";
	};
	intervalToString = function(interval)
	{
		return (interval[0].getMonth() + 1)+"/"+interval[0].getDate()+"/"+interval[0].getFullYear()+"-"+(interval[1].getMonth() + 1)+"/"+interval[1].getDate()+"/"+interval[1].getFullYear();

    };
    
	validateAndSave = function()
	{
		var interval = YAHOO.DC.addCalendar.getInterval();
		if (interval.length==0)
		    alert('Please, select interval is required');
		else if (document.getElementById("titleEvent").value=="")
		    alert('Please, title is required');
		else if (colorSelected == "" || colorSelected.length<1)
		    alert('Please, select color is required');
		else
		{
			if (YAHOO.DC.myEditor['descriptionEvent_'+id])
			YAHOO.DC.myEditor['descriptionEvent_'+id].saveHTML();
			var a = YAHOO.DC.EventCalendar.events[calendarId];
			var _a = YAHOO.DC.EventCalendar._events[calendarId];
			if (id>=0)
			    myid = id;
			else
			    myid = a.length;   
			
			var eTooltipObj = document.getElementById("eTooltipEvent");
			var etargetEvent = document.getElementById("targetEvent");
			
			var range = intervalToString(interval);
			days = range.split("-");
			days[0] = days[0].split("/");
            days[1] = days[1].split("/");

			newObj = {range:range,
			               l:YAHOO.widget.DateMath.getDate(days[0][2],days[0][0]-1,days[0][1]),
			               u:YAHOO.widget.DateMath.getDate(days[1][2],days[1][0]-1,days[1][1]),
			               title:document.getElementById("titleEvent").value,
			               comment:document.getElementById("descriptionEvent_"+id).value,
			               colorSelected:myColors[colorSelected.substring(8,colorSelected.length)],
			               tooltip:((document.getElementById("tooltipEvent").checked)?"1":"0"),
			               eTooltip:((document.getElementById("tooltipEvent").checked)?eTooltipObj.options[eTooltipObj.selectedIndex].value:"0"),
			               goUrl:((document.getElementById("goToUrl").checked)?document.getElementById("urlEvent").value:""),
			               target:((document.getElementById("goToUrl").checked)?etargetEvent.options[etargetEvent.selectedIndex].value:"0")};
			newObj.myid = myid;
			if (id>=0)
			{
				oldObj = a[myid];
			    for (var j=oldObj.l;j<=oldObj.u;j=YAHOO.widget.DateMath.add(j,YAHOO.widget.DateMath.DAY,1))
    		    {
    		    	day = (j.getMonth() + 1)+"/"+j.getDate()+"/"+j.getFullYear();
    		    	for (var k=0;k<_a[day].length;k++ )
    		    	    if (_a[day][k].myid == newObj.myid)
    		    	    {
    		    	    	_a[day].splice(k,1);
    		    	    }
    		    }
    		    for (var j=newObj.l;j<=newObj.u;j=YAHOO.widget.DateMath.add(j,YAHOO.widget.DateMath.DAY,1))
    		    {
    		    	day = (j.getMonth() + 1)+"/"+j.getDate()+"/"+j.getFullYear();
    		    	if (!_a[day]) _a[day]=new Array();
    		    	for (var k=0;k<_a[day].length;k++ )
    		    	if (_a[day][k].myid == newObj.myid)
    		    		_a[day][k] = newObj;
    		    }
    	    }
			for (var j=newObj.l;j<=newObj.u;j=YAHOO.widget.DateMath.add(j,YAHOO.widget.DateMath.DAY,1))
    		{
    			day = (j.getMonth() + 1)+"/"+j.getDate()+"/"+j.getFullYear();
    			if (!_a[day]) _a[day]=new Array();  
    			_a[day][_a[day].length] = newObj;
    		}
            a[myid] = newObj;
    		YAHOO.DC.EventCalendar.events[calendarId] = a;
			YAHOO.DC.EventCalendar._events[calendarId] = _a;
			YAHOO.DC.EventCalendar.refresh(calendarId);
			YAHOO.DC.EventCalendar.saveData(calendarId);
			YAHOO.DC.panel.panels['addEventid'+id][0].hide();
		}
    };
	var title = 'Add/Edit Event';	
	var colors = '';
	for (i=0;i<myColors.length;i++)
	    colors += '<div style="background-color:'+myColors[i]+'" id="boxcolor'+i+'" class="boxcolor"><a href="javascript:selectcolor(\'boxcolor'+i+'\');">&nbsp;</a></div>';
	colors = '<div id="colors">Select Colors'+colors+'</div>';

	var content = '<div id="divAddEvent">';
	   content += '<div class="fl" style="width:530px;" >';
	   content += 'Title<br /><input type="text" name="titleEvent" id="titleEvent" style="width:520px" value="title"/><div style="height:4px;"></div><textarea type="text" name="descriptionEvent_'+id+'" id="descriptionEvent_'+id+'" style="width:300px;height:103px" /></textarea>';
	   content += '<div style="padding-top:5px;padding-bottom:5px;"><input type="checkbox" checked name="tooltipEvent" id="tooltipEvent" onclick="javascript:showurl();"/>Show tooltip on <select name="eTooltipEvent" id="eTooltipEvent" onchange="javascript:showurl();" ><option value="1">mouse over</option><option value="2">clic</option></select></div>';
	   content += '<div id="divurlEvent"><input type="checkbox" name="goToUrl" id="goToUrl" />Go to the url <input type="text" style="width:195px" name="urlEvent" id="urlEvent" value="http://" /> in <select id="targetEvent" name="targetEvent"><option value="1">new window</option><option value="2">same window</option></select></div>';
	   content += '</div>';
	   content += '<div class="fl">Select Interval<br /><div id="calContainerAddEvent'+id+'"></div></div>';
	   content += colors;
	   content += '<div style="clear:both"></div>';
	   
	   
	   //content += '<div id="divurlEvent"><input type="checkbox" name="goToUrl" id="goToUrl" />Go to the url <input type="text" style="width:195px" name="urlEvent" id="urlEvent" value="http://" /> in <select id="targetEvent" name="targetEvent"><option value="1">new window</option><option value="2">same window</option></select></div>';
	   content += '<div style="clear:both"></div>';
	   content += '<div style="text-align:center"><input type="button" onclick="javascript:validateAndSave()" value="Save">&nbsp;<input type="button" onclick="javascript:YAHOO.DC.panel.panels[\'addEventid'+id+'\'][0].hide();" value="Cancel">';
	
	if (id>=0)
	    content += '&nbsp;<input type="button" onclick="javascript:YAHOO.DC.EventCalendar.confirmAndDelete('+id+',\''+('addEventid'+id)+'\')" value="Delete">';
	    
	content += '</div></div>';

	YAHOO.DC.EventCalendar.showAddEventDialog('addEventid'+id,title,content,document.getElementById(calendarId+'Container'));
    YAHOO.DC.addCalendar = new YAHOO.example.calendar.IntervalCalendar("calContainerAddEvent"+id, {pages:1});
    start_weekday = YAHOO.DC.EventCalendar.calendarArray[calendarId].cfg.getProperty("START_WEEKDAY");
    YAHOO.DC.addCalendar.cfg.setProperty("START_WEEKDAY",start_weekday);
    if (id>=0)
        init(id);
        
	YAHOO.DC.addCalendar.render();
	var myConfig = {
        height: '100px',
        width: '520px',
        animate: true,
        dompath: true,
        focusAtStart: true
         };
    if (!YAHOO.DC.myEditor['descriptionEvent_'+id])
    {
       YAHOO.DC.myEditor['descriptionEvent_'+id] = new YAHOO.widget.Editor('descriptionEvent_'+id, myConfig);
       
    //YAHOO.DC.myEditor['descriptionEvent_'+id]._defaultToolbar.buttonType = 'basic';
    var Dom = YAHOO.util.Dom;
    var state = 'off';
    myEditor = YAHOO.DC.myEditor['descriptionEvent_'+id];
    
    myEditor.on('toolbarLoaded', function() {
        var codeConfig = {
            type: 'push', label: 'Edit HTML Code', value: 'editcode'
        };
        
        this.toolbar.addButtonToGroup(codeConfig, 'insertitem');
        
        this.toolbar.on('editcodeClick', function() {
            var ta = this.get('element'),
                iframe = this.get('iframe').get('element');

            if (state == 'on') {
                state = 'off';
                this.toolbar.set('disabled', false);
                
                
                this.setEditorHTML(ta.value);
                if (!this.browser.ie) {
                    this._setDesignMode('on');
                }

                Dom.removeClass(iframe, 'editor-hidden');
                Dom.addClass(ta, 'editor-hidden');
                this.show();
                this._focusWindow();
            } else {
                state = 'on';
                
                this.cleanHTML();
                
                Dom.addClass(iframe, 'editor-hidden');
                Dom.removeClass(ta, 'editor-hidden');
                this.toolbar.set('disabled', true);
                this.toolbar.getButtonByValue('editcode').set('disabled', false);
                this.toolbar.selectButton('editcode');
                this.dompath.innerHTML = 'Editing HTML Code';
                this.hide();
            }
            return false;
        }, this, true);

        this.on('cleanHTML', function(ev) {
            
            this.get('element').value = ev.html;
        }, this, true);
        
        this.on('afterRender', function() {
            var wrapper = this.get('editor_wrapper');
            wrapper.appendChild(this.get('element'));
            this.setStyle('width', '100%');
            this.setStyle('height', '100%');
            this.setStyle('visibility', '');
            this.setStyle('top', '');
            this.setStyle('left', '');
            this.setStyle('position', '');

            this.addClass('editor-hidden');
        }, this, true);
    }, myEditor, true);
    
    
    
    
       YAHOO.DC.myEditor['descriptionEvent_'+id].render(); 
            
    }    
	
};
YAHOO.namespace("DC.panel");YAHOO.DC.panel.panels = [];YAHOO.DC.myEditor = [];

YAHOO.DC.EventCalendar.showAddEventDialog = function (id_in, title_in, body_in, context_in, closeOnMouseOut){
	var hdwr = YAHOO.DC.panel.panels;
	try{
	for (k in hdwr)
	    if (id_in != k)
	    hdwr[k][0].hide();
	}catch(e){}
	if(!hdwr[id_in]){
	    hdwr[id_in] = [];
		hdwr[id_in][0] = new YAHOO.widget.SimpleDialog(id_in, { width:'738px',modal:true,visible:true, draggable:true, close:true,
											constraintoviewport:true, context:[context_in, 'tl', 'tl'], underlay:'shadow',
											effect:{effect:eval(YAHOO.widget.ContainerEffect.FADE),duration:0.1}} );
		hdwr[id_in][0].setHeader("<div class='tl'></div><span>"+title_in+"<span><div class='tr'></div>");
		hdwr[id_in][0].setBody(body_in);
		hdwr[id_in][0].render(document.body);
	}else{
		hdwr[id_in][0].show();
	}
};
YAHOO.DC.EventCalendar.closeOverDialog = function (id_in)
{
	var hdwr = YAHOO.DC.panel.panels;
	try{
	for (k in hdwr)
	    if (id_in != k)
	    hdwr[k][0].hide();
	}catch(e){}
};
YAHOO.DC.EventCalendar.showMouseOverDialog = function (id_in, title_in, body_in, context_in, closeOnMouseOut){
	var hdwr = YAHOO.DC.panel.panels;
	$E   = YAHOO.util.Event;
	YAHOO.DC.EventCalendar.closeOverDialog();
	if(!hdwr[id_in]){
	    hdwr[id_in] = [];
		hdwr[id_in][0] = new YAHOO.widget.SimpleDialog(id_in, { width:'400px',modal:false,visible:true, draggable:true, close:true,
											constraintoviewport:true, context:[context_in, 'tl', 'bl'], underlay:'shadow',
											effect:{effect:eval(YAHOO.widget.ContainerEffect.FADE),duration:0.1}} );
		hdwr[id_in][0].setHeader("<div class='tl'></div><span>"+title_in+"<span><div class='tr'></div>");
		hdwr[id_in][0].setBody(body_in);
		hdwr[id_in][0].render(document.body);
		hdwr[id_in][1] = document.getElementById(calendarId+"Container");
		hdwr[id_in][2] = document.getElementById(id_in);
		hdwr[id_in][3] = context_in;
	}else{
		hdwr[id_in][0].show();
	}
	$E.addListener(document, 'mousemove', closeEventShow, {id:id_in, cf:true});
};
function closeEventShow(evt, conf){
	var $E   = YAHOO.util.Event,
	    $D	 = YAHOO.util.Dom,
	    mX, mY, regImgTh,
	    hdwr = YAHOO.DC.panel.panels;

	try{

		if(!hdwr[conf.id]){return;}
		regImgTh = $D.getRegion(hdwr[conf.id][1]);
		regImgT2 = $D.getRegion(hdwr[conf.id][2]);
		regImgT3 = $D.getRegion(hdwr[conf.id][3]);
	        mX = $E.getPageX(evt); mY = $E.getPageY(evt);
	  	switch(YAHOO.DC.EventCalendar.calendarArray[calendarId].close_mode)
	    {
		    case 1:
		    break;		
		    case 2:
		    	if(
	  	          ((mX < regImgTh['left']) || (mX > regImgTh['right']) || (mY < regImgTh['top']) || (mY > regImgTh['bottom']))
	              && ((mX < regImgT2['left']) || (mX > regImgT2['right']) || (mY < regImgT2['top']) || (mY > regImgT2['bottom']))
	  	          ){
		          	if(conf.cf){hdwr[conf.id][0].hide(); $E.removeListener(document, 'mousemove', closeEventShow);}
	  	          }
		    break; 
		    case 3:
		    	if(
	              ((mX < regImgT2['left']) || (mX > regImgT2['right']) || (mY < regImgT2['top']) || (mY > regImgT2['bottom']))
	              && ((mX < regImgT3['left']) || (mX > regImgT3['right']) || (mY < regImgT3['top']) || (mY > regImgT3['bottom']))
	  	          ){
		          	if(conf.cf){hdwr[conf.id][0].hide(); $E.removeListener(document, 'mousemove', closeEventShow);}
	  	          }
		    break;    
	    }
	}catch(e){}
}
YAHOO.DC.EventCalendar.showEventlist = function (calendarId,type){
	var id_in = "eventlist"+calendarId;
	title_in = "Event List";
	body_in = "";
	context_in = document.getElementById(calendarId+'Container');
	var a = YAHOO.DC.EventCalendar.events[calendarId];
	
	eventlistdelete = function(id,id_in)
	{
	    YAHOO.DC.EventCalendar.confirmAndDelete(id);
	    YAHOO.DC.panel.panels["eventlist"+calendarId][0].hide();	
	};
	
	_dateString = function(d) {
            var a = [];
            cal = YAHOO.DC.EventCalendar.calendarArray[calendarId];
            a[cal.mCfg.MDY_MONTH_POSITION-1] = (d.getMonth() + 1);
            a[cal.mCfg.MDY_DAY_POSITION-1] = d.getDate();
            a[cal.mCfg.MDY_YEAR_POSITION-1] = d.getFullYear();
            var s = cal.mCfg.DATE_FIELD_DELIMITER;
            return a.join(s);
        };
    body_in += '<div style="float:right"><a href="javascript:YAHOO.DC.EventCalendar.showEventlist(\''+calendarId+'\',1);"><div class="event-button">Visible months</div></a></div><div style="float:right"><a href="javascript:YAHOO.DC.EventCalendar.showEventlist(\''+calendarId+'\',0);"><div class="event-button">All Months</div></a></div><div style="clear:both"></div>';    
    
    topc = a.length;  
    for (var i1=0;i1<=topc-2;i1++)   
        for (var i2=i1+1;i2<=topc-1;i2++)
        {   
        	if (a[i1].l>a[i2].l)
            {
                tmp = a[i1];
                a[i1] = a[i2];
                a[i2] = tmp;
            }
        } 
        
	for (var i=0;i<a.length;i++)
	{
		line = "<input type=\"button\" value=\"Delete\" style=\"font-size:10px\" onclick=\"javascript:YAHOO.DC.EventCalendar.confirmAndDelete("+a[i].myid+",'"+id_in+"');\"/><font style=\"BACKGROUND-COLOR: "+a[i].colorSelected+"\">"+_dateString(a[i].l)+"-"+_dateString(a[i].u)+":</font> "+a[i].title+"<br /><hr />"; 
		if (type==1)
		{
			cal = YAHOO.DC.EventCalendar.calendarArray[calendarId];
			var current0 = cal.pages[0].cfg.getProperty("pagedate").getMonth();
			var current1 = cal.pages[1].cfg.getProperty("pagedate").getMonth();

			if ((current0 == a[i].l.getMonth()) || (current0 == a[i].u.getMonth()) || (current1 == a[i].l.getMonth()) || (current1 == a[i].u.getMonth()) )
			    body_in += line; 
		}
		else
		    body_in += line; 
	}
	var hdwr = YAHOO.DC.panel.panels;
	try{
	for (k in hdwr)
	    if (id_in != k)
	    hdwr[k][0].hide();
	}catch(e){}
	if(!hdwr[id_in]){
	    hdwr[id_in] = [];
		hdwr[id_in][0] = new YAHOO.widget.SimpleDialog(id_in, { width:'700px',modal:true,visible:true, draggable:true, close:true,
											constraintoviewport:true, context:[context_in, 'tl', 'tl'], underlay:'shadow',
											effect:{effect:eval(YAHOO.widget.ContainerEffect.FADE),duration:0.1}} );
		hdwr[id_in][0].setHeader("<div class='tl'></div><span>"+title_in+"<span><div class='tr'></div>");
		hdwr[id_in][0].setBody(body_in);
		hdwr[id_in][0].render(document.body);
	}else{
	    hdwr[id_in][0].setBody(body_in);
	    hdwr[id_in][0].render(document.body);
		hdwr[id_in][0].show();
	}
};
