// **************************************************
// C O M M O N   F U N C T I O N S
// --------------------------------------------------
Array.prototype.indexOf = function( v, b, s ) { // Array.indexOf( value, begin, strict ) - Return index of the first element that matches value
 for( var i = +b || 0, l = this.length; i < l; i++ ) {
  if( this[i]===v || s && this[i]==v ) { return i; }
 }
 return -1;
};

var c_platform = 1;
var	c_monthName;
var	c_dayName;
function cLang(platform)
{
	c_platform = platform;
	if (platform == 1) { // sl
		c_monthName =	new	Array('Januar','Februar','Marec','April','Maj','Junij','Julij','August','September','Oktober','November','December');
		c_dayName =	new	Array('','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota','Nedelja');
	}
	else { // en=default
		c_monthName =	new	Array('January','February','March','April','May','June','July','August','September','October','November','December');
		c_dayName =	new	Array('','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
	}
}

cLang(1); // init

function gen_lang_decoder(p)
{
	if (typeof p != "object") {
		return p;
	}
	else if (typeof p[c_platform] != "undefined") {
		return p[c_platform];
	}
	else {
		for (var k in p) {
			return p[k];
		}
	}
}

function getMonthName(month)
{
	return c_monthName[month];
}

function getDayName(i,c)
{
	return c_dayName[i].substr(0,c);	
}

function getDaysInMonth(month,year) {
	var dd = new Date(year, month, 0);
	return dd.getDate();
} 

function getDayFull(day) {
	return (day < 10) ? ("0" + day) : (""+day);
}	
	
function getMonthFull(month) {
	return (month < 9) ? ("0" + (1+month)) : (""+(1+month));
}

function getStartDay(month, year) {
	var dd = new Date(year, month, 1);
	return (dd.getDay() == 0)?6:dd.getDay()-1;
}

function isSet(variable) {
	return typeof(variable) != 'undefined';
}

function getDateDifference(strDate1,strDate2)
{
     datDate1 = new Date(strDate1.substr(0,4),strDate1.substr(4,2)-1,strDate1.substr(6,2));
     datDate2 = new Date(strDate2.substr(0,4),strDate2.substr(4,2)-1,strDate2.substr(6,2));
     
     return ((datDate2.getTime()-datDate1.getTime())/(24*60*60*1000))+1;
}

// **************************************************
// C A L E N D A R   F R A M E   F U N C T I O N S
// --------------------------------------------------
function cCreateCFrame() {	  	
	document.cNo++;
	var cNo = document.cNo;
	var cCalendar = document.getElementById('cCalendar');		
			
	if (cNo == 0) { // for the first calendar
		cCalendar.innerHTML = ""; // clear first
		var cCalendarHead = document.createElement('DIV'); cCalendarHead.id = 'cCalendarHead'; // Head				
		cCalendar.appendChild(cCalendarHead);
		var cCalendarBody = document.createElement('DIV'); cCalendarBody.id = 'cCalendarBody'; // Body					
		cCalendar.appendChild(cCalendarBody);
		var cCalendarFooter = document.createElement('DIV'); cCalendarFooter.id = 'cCalendarFooter'; // Footer		
		cCalendar.appendChild(cCalendarFooter);			
	}
	else { // for second, third ,... calendar
		var cCalendarBody = document.getElementById('cCalendarBody');
		cCalendarFooterTextSet(true); // set footer text again
	}
	
	var cNavigation = document.createElement('DIV'); cNavigation.className = 'cNavigation'; cNavigation.id = 'cNavigation'+cNo; // Body > Navigation
	cCalendarBody.appendChild(cNavigation);
	var cDaysTitle = document.createElement('DIV'); cDaysTitle.className = 'cDaysTitle'; cDaysTitle.id = 'cDaysTitle'+cNo; // Body > DaysTitle
	cCalendarBody.appendChild(cDaysTitle);
	for (var cDay=1;cDay<=7;cDay++) {
		var cDayName = document.createElement('DIV'); cDayName.innerHTML = getDayName(cDay,1);
		cDaysTitle.appendChild(cDayName);
	}
	var cDays = document.createElement('DIV'); cDays.className = 'cDays'; cDays.id = 'cDays'+cNo; // Body > Days	
	cCalendarBody.appendChild(cDays);

	cCreateCalendar();
}

function cShowNavigation(bool) {
	var cNo = document.cNo;
	var cNavigation = document.getElementById('cNavigation'+cNo); cNavigation.innerHTML = '';
	var cDate = new Date(document.currentYear,document.currentMonth+cNo,1);
	var cMonth = cDate.getMonth(); var cYear = cDate.getFullYear();	
	
	if (bool) 
	{						
		var cNavLeft = document.createElement('DIV'); // cNavigation > left
		cNavLeft.className = 'leftRight'; cNavLeft.innerHTML = '&nbsp;';
		if (pos = cIsNextMonthPossible(-1)) {
			cNavLeft.innerHTML = '<img src="/images/cal_prev.gif" width="30" height="18" alt="'+gen_lang_decoder({2:'previous month',1:'prejšnji mesec'})+'" />';
			cNavLeft.onclick = new Function('cCreateCalendar('+pos+');'); 
			cNavLeft.className = 'leftRightClick'; 
		} 
		else {
			cNavLeft.innerHTML = '<img src="/images/blank.gif" width="30" height="18" />';
		}
		cNavigation.appendChild(cNavLeft);

		var cNavigationInfo = document.createElement('DIV'); // cNavigation > info
		cNavigationInfo.id = 'cNavigationInfo'+cNo; cNavigationInfo.className = 'current';
		cNavigationInfo.innerHTML = getMonthName(cMonth) + ' ' + cYear;
		cNavigation.appendChild(cNavigationInfo);

		var cNavRight = document.createElement('DIV'); // cNavigation > right		
		cNavRight.className = 'leftRight'; cNavRight.innerHTML = '&nbsp;'; 
		if (pos = cIsNextMonthPossible(1)) {
			cNavRight.innerHTML = '<img src="/images/cal_next.gif" width="30" height="18" alt="'+gen_lang_decoder({2:'next month',1:'naslednji mesec'})+'" />';
			cNavRight.onclick = new Function('cCreateCalendar('+pos+');');
			cNavRight.className = 'leftRightClick';
		}
		else {
			cNavRight.innerHTML = '<img src="/images/blank.gif" width="30" height="18" />';
		}
		cNavigation.appendChild(cNavRight);
	}
	else 
	{		
		var cNavigationInfo = document.createElement('DIV'); // cNavigation > info
		cNavigationInfo.id = 'cNavigationInfo'+cNo; cNavigationInfo.className = 'current2';
		cNavigationInfo.innerHTML = getMonthName(cMonth) + ' ' + cYear;
		cNavigation.appendChild(cNavigationInfo);
	}
}

function cCalendarHeadTextSet(step) {		
	var lead = document.getElementById('cCalendarHead');
	lead.style.display = "none";
}

function cCalendarFooterTextSet(bool) {
	var end = document.getElementById('cCalendarFooter');	end.innerHTML = '';
}

function cResetCalendar() {
	var cCalendar = document.getElementById('cCalendar');	cCalendar.innerHTML = '';
	cLoad();
}

// **************************************************
// C A L E N D A R   F U N C T I O N S
// --------------------------------------------------
function cCreateCalendar(cPos) {
	var cNo = document.cNo; 
	var i = 0; var j = 1;
	if (!isSet(cPos)) cPos = 0;
	var cDate = new Date(document.currentYear,document.currentMonth+cNo+cPos,1);
	var cMonth = cDate.getMonth(); var cMonth2 = getMonthFull(cMonth);
	var cYear = cDate.getFullYear();
	var cStartDay = getStartDay(cMonth,cYear);
	var cDaysInMonth = getDaysInMonth(cMonth+1,cYear);	
	var cDaysDIV = document.getElementById('cDays'+cNo); cDaysDIV.innerHTML = '';

  // undo current selection first (if any in last month). Initialized below.
	for (var dd in document.cSelUndo) {
		document.cSelUndo[dd][0].className = document.cSelUndo[dd][1];
		document.cSelUndo[dd][0] = null;
		delete document.cSelUndo[dd];
	}

  day_to_week = {};  // Reset. Initialized in cDaysSetEvent.

	var cDaysWeek = document.createElement('span'); cDaysWeek.className = 'cWeekNormal';
	cDaysDIV.appendChild(cDaysWeek);

	while (i < cStartDay ) { // add BLANK days
		var cDayNewDIV = document.createElement('div');
		cDayNewDIV.innerHTML = '&nbsp;';
		cDayNewDIV.className = 'cDaysBlank';
		cDaysWeek.appendChild(cDayNewDIV);
		i++;
	}		
		
	var a = parseInt(''+cYear+cMonth2+'01');
	var b = parseInt(''+cYear+cMonth2+getDaysInMonth(cMonth+1,cYear));	
				
	if (cNo == 0) // add FULL days for the first calendar							
	{ 
		document.cStartDatum = null; 			// reset start day
		document.cEndDatum = null;				// reset end day
		document.currentMonth = cMonth; // remember current shown date	
		document.currentYear = cYear; 	// remember current shown year	
		
		cCalendarHeadTextSet(1);			
					
		for (var datum=a;datum<=b;datum++) { // add full days
			var cDayNewDIV = document.createElement('div');
			cDayNewDIV.innerHTML = j;
			cDayNewDIV.id = 'cD'+datum;
			var tmp_onclick = cDaysSetEvent(datum,i+j,'click','start'); // here just so that the day_to_week is initialized soon enough
			cDayNewDIV.className = cDaysSetCss(datum,i+j,'',false);
			if (cDaysWeek.childNodes.length > 6) {
				cDaysWeek = document.createElement('span'); cDaysWeek.className = 'cWeekNormal';
				cDaysDIV.appendChild(cDaysWeek);
			}
			if (cDaysWeek.week_id != day_to_week[getDayFull(j)].week_id) {
				cDaysWeek.week_id = day_to_week[getDayFull(j)].week_id;
				if (document.currentWeek == cDaysWeek.week_id) {
					cDaysWeek.className = 'cWeekSel';
					document.cSelUndo[cDaysWeek.week_id] = [cDaysWeek,'cWeekNormal'];
				}
				cDaysWeek.onclick = tmp_onclick;
				cDaysWeek.onmouseover = cDaysSetEvent(datum,i+j,'over','start');
				cDaysWeek.onmouseout = cDaysSetEvent(datum,i+j,'out','start');
			}
			else if (cDaysWeek.onclick == '' && tmp_onclick) {
				cDaysWeek.onclick = tmp_onclick;
				cDaysWeek.onmouseover = cDaysSetEvent(datum,i+j,'over','start');
				cDaysWeek.onmouseout = cDaysSetEvent(datum,i+j,'out','start');
			}
			
			cDaysWeek.appendChild(cDayNewDIV);
			j++;
		}	

		// next month suff		
		var datum = new Date(cYear,cMonth+1,1);
		var month = datum.getMonth(); var month2 = getMonthFull(month); var year = datum.getFullYear();
		var a2 = parseInt(''+year+month2+'01');
		var b2 = parseInt(''+year+month2+getDayFull( 6 - ((datum.getDay()+5)%7) ));		
		var i2 = i+j;
		j = 1;
		for (var datum=a2;datum<=b2;datum++) {	// deselect next month days if exist
			var cDayNewDIV = document.createElement('div');
			cDayNewDIV.innerHTML = j;
			cDayNewDIV.id = 'cD'+datum;
			cDayNewDIV.className = 'cDaysBlank';
			
			cDaysWeek.appendChild(cDayNewDIV);
			j++;
		}
		
	} 
	else // add FULL days for second, third ,... calendar
	{	
		console.log("Error - only first calendar supported here!")
	}
	
	cShowNavigation(cNo == 0); // add title (eg. januar 2007)
}

var one_week=1000*60*60*24*7;
var day_to_week = {};
function cFindWeek(datum, no_update)
{
	// let's find current week (using reference so it is always in sync with db)
	// attention! this code fails when year ends on saturday - then mysql assignes new week id to sunday (will apply end of 2017)
	var rd,cw;
	var ro = document.cDaysDetail['r'+ datum.substring(0,4)];
	if (isSet(ro)) {
		if (!ro.rm) {
			ro.rm = new Date(ro['from'].substr(0,4),ro['from'].substr(4,2)-1,ro['from'].substr(6,2));
			ro.rm.setDate(ro.rm.getDate()-((ro.rm.getDay()+6)%7)); // monday current month
		}
		var cm = new Date(datum.substr(0,4),datum.substr(4,2)-1,datum.substr(6,2));
		cm.setDate(cm.getDate()-((cm.getDay()+6)%7)); // monday current month
		cw = ro['week_id'].substr(4,2)-0 + Math.round((cm.getTime()-ro.rm.getTime())/one_week);
		if (cw < 1) {
			ro = document.cDaysDetail['r'+ (datum.substring(0,4)-1)];
			if (isSet(ro)) {
				if (!ro.rm) {
					ro.rm = new Date(ro['from'].substr(0,4),ro['from'].substr(4,2)-1,ro['from'].substr(6,2));
					ro.rm.setDate(ro.rm.getDate()-((ro.rm.getDay()+6)%7)); // monday current month
				}
				cw = ro['week_id'].substr(4,2)-0 + Math.round((cm.getTime()-ro.rm.getTime())/one_week);
			}
		}
		if (cw > 0) {
			cw = ro['week_id'].substr(0,4)+(cw>9 ? cw : '0'+cw);
			if (!no_update)  day_to_week[datum.substr(6,2)] = { 'week_id': cw, 'class': 'cDaysNormal' };
		}
	}	
	return cw;
}

function cDaysSetEvent(datum,i,typ,typ2,disabled) { // returns onclick event if day given date is clickable	
	if (typ2 == 'start') {
		var dayDetail;
		
		datum = ''+datum;
		if (day_to_week[datum.substr(6,2)]) {
			dayDetail = day_to_week[datum.substr(6,2)].from;
		}
		else if (isSet(dayDetail = document.cDaysDetail['z'+ datum])) {
			day_to_week[datum.substr(6,2)] = { 'week_id': dayDetail.week_id, from: datum, 'class': 'cDaysClick' };
		}
		else {
			cw = cFindWeek(datum);
			if (cw.length == 6) {
				for (var zd in document.cDaysDetail) {
					if (zd.substr(0,1) == 'z') {
						if (zd > 'z'+datum)  break;
						if (document.cDaysDetail[zd].to >= datum) {
							dayDetail = document.cDaysDetail[zd];
							day_to_week[datum.substr(6,2)].from = zd.substr(1);
							day_to_week[datum.substr(6,2)]['class'] = 'cDaysBold';
							break;
						}	
						else if (document.cDaysDetail[zd].to_week_id >= cw) {
							dayDetail = document.cDaysDetail[zd];
						}	
					}
					else if (zd.substr(0,1) == 'w')  break; // all z are before all w
				}
			}
		}
	}
	else if (typ2 == 'end') var dayDetailEnd = document.cDaysDetailEnd.indexOf(parseInt(datum));	
	
	if (disabled) { onEvent = ''; } // *** disabled
	else if (!((isSet(dayDetail) && typ2 == 'start') || (dayDetailEnd != -1 && typ2 == 'end'))) { onEvent = ''; }
	else if (typ == 'click') { onEvent = new Function ('cDaySelect(this);'); }  // *** clickable
	else if (typ == 'over') { onEvent = new Function ('cDayMouseOver(this);'); }  // *** mouseover
	else if (typ == 'out') { onEvent = new Function ('cDayMouseOut(this,'+i+');'); }  // *** mouseout
	else { onEvent = ''; } // *** static
	
	return onEvent;
}

function cDaysSetCss(datum,i,onClickEvent,sel) { // returns correct css style
	var cssClass = '';
		if (day_to_week[(''+datum).substr(6,2)]) { cssClass = day_to_week[(''+datum).substr(6,2)]['class']; }
		if (sel) { cssClass = 'cDaysSel'; } // selected
		else if (cssClass) { /* */ }
		else if (i % 7 == 6 || i % 7 == 0) { cssClass = 'cDaysWeek'; } // weekend
		else { cssClass = 'cDaysNormal'; }
	return cssClass;
}	
	
document.cOverUndo = {};
function cDayMouseOver(obj) { // onMouseOver function for days				
	var cNo = document.cNo;
	var currentMonth = document.currentMonth; var currentMonth2 = getMonthFull(currentMonth);  
	var currentYear = document.currentYear;
	var objId = obj.childNodes[0].id;
	if (!objId) objId = obj.childNodes[obj.childNodes.length-1].id;
	var mouseOverDatum = parseInt(objId.substring(2),10);
	var mouseOverDay = parseInt(objId.substring(8,10),10);	
	var i = getStartDay(currentMonth,currentYear)+1;
	
	if (document.cStartDatum == null && document.cEndDatum == null) // AUTO SELECT first termin (only in first calendar)
	{ 		
		// undo first (jic - should have happened in mouseout event already)
		for (var dd in document.cOverUndo) {
			document.cOverUndo[dd][0].className = document.cOverUndo[dd][1];
			document.cOverUndo[dd][0] = null;
			delete document.cOverUndo[dd];
		}

		var a = parseInt(''+currentYear+currentMonth2+'01');
		var b = parseInt(''+currentYear+currentMonth2+getDaysInMonth(currentMonth+1,currentYear));		

		var oo = obj;
		if (oo.className != 'cWeekSel') {
			document.cOverUndo['cD'+mouseOverDatum] = [oo,oo.className];
			oo.className = 'cWeekSel';
		}
				
	} 
	else if (document.cStartDatum != null && document.cEndDatum != null) // select days from start day (can also be in second, third,... calendar)
	{ 
		console.log("not implemented");
	}
}

function cDayMouseOut(obj,i) { // onMouseOut function for days

	// undo the mouseover effect first
	for (var dd in document.cOverUndo) {
		document.cOverUndo[dd][0].className = document.cOverUndo[dd][1];
		document.cOverUndo[dd][0] = null;
		delete document.cOverUndo[dd];
	}

}

document.cSelUndo = {};
function cDaySelect(obj) { // onClick function for active days		
	var cNo = document.cNo; var startDay = document.cStartDatum;
	var currentMonth = document.currentMonth; var currentMonth2 = getMonthFull(currentMonth);
	var currentYear = document.currentYear; 
	var objId = obj.childNodes[0].id;
	if (!objId) objId = obj.childNodes[obj.childNodes.length-1].id;
	var datum = objId.substr(2); // selected day
  var cw = day_to_week[datum.substr(6,2)].week_id; // selected week
	var i = getStartDay(currentMonth,currentYear)+1;
  
  var txt = '';
	var myarray=[];
  
	var lastWeek = '***';
	for (var zd in document.cDaysDetail) {
		if (zd.substr(0,1) == 'z') {
			if (document.cDaysDetail[zd].week_id > lastWeek) {
				lastWeek = document.cDaysDetail[zd].week_id;
			}
			else {
				continue;
			}
			if (lastWeek > cw)  break;
			if (document.cDaysDetail[zd].to_week_id >= cw) {
        
        var e = document.cDaysDetail[ 'w'+lastWeek ];
				for (var j = 1; j < e.length; j++) {
					if (e[j].to_week_id >= cw) {

						myarray.unshift(e[j]);
						//txt = '<li><span>'+e[j].edate+'</span><a href="/aktualno/dogodki?ID='+e[j].id+'">'+e[j].title+'</a></li>' + txt;

					}
				}
			}	
		}
		else if (zd.substr(0,1) == 'w')  break; // all z are before all w
	}
	myarray.sort(function(a,b){
		if (a.from > b.from)  return +1;
		if (a.from < b.from)  return -1;
		if (a.to < b.to)  return +1;
		if (a.to > b.to)  return -1;
		if (a.title > b.title)  return +1;
		if (a.title < b.title)  return -1;
		return 0;
	})
	var e = myarray;
	for (var j = 0; j < e.length; j++) {
		txt += '<li><span>'+e[j].edate+'</span><a href="/aktualno/dogodki?ID='+e[j].id+'">'+e[j].title+'</a></li>';
	}
	
  var oo = document.getElementById('cWeekEvents');
  oo.innerHTML = txt;
  
  // mark this week on calendar
  
	// undo mouseover first (so mouseout doesn't "wreak havoc" later)
	for (var dd in document.cOverUndo) {
		document.cOverUndo[dd][0].className = document.cOverUndo[dd][1];
		document.cOverUndo[dd][0] = null;
		delete document.cOverUndo[dd];
	}

  // also undo current selection first (if any in this month)
	for (var dd in document.cSelUndo) {
		document.cSelUndo[dd][0].className = document.cSelUndo[dd][1];
		document.cSelUndo[dd][0] = null;
		delete document.cSelUndo[dd];
	}

  document.currentWeek = cw;
  document.cSelUndo[cw] = [obj,'cWeekNormal'];
  obj.className = 'cWeekSel';

}

// **************************************************
// T E R M I N   D A T E   F U N C T I O N S
// --------------------------------------------------
function cGetShortTermin(datum)
{
	datum = ''+datum;
	var dt = new Date(datum.substr(0,4),datum.substr(4,2)-1,datum.substr(6,2));
	dt.setDate( dt.getDate() - ((dt.getDay()+6)%7) );
	var d1 = ''+dt.getFullYear()+getMonthFull(dt.getMonth())+getDayFull(dt.getDate());
	dt.setDate( dt.getDate() + 6 );
	var d2 = ''+dt.getFullYear()+getMonthFull(dt.getMonth())+getDayFull(dt.getDate());
	
	return {from:d1,to:d2};
}

function cCreateEndDates(datum)
{
	console.log("not supported.");
}

function cIsNextMonthPossible(typ) {
	switch(typ) {
		case -1: // previous
			var pos = false;
			var daysDetail = document.cDaysDetail; var cNo = document.cNo;
			var datum = new Date(document.currentYear,document.currentMonth+cNo+typ,1);
			var month = datum.getMonth(); var year = datum.getFullYear();																
			
			if (daysDetail.range.from.substr(0,6) <= year+getMonthFull(month)) {
				pos = typ;
			}

			return pos;
			break;																	
		case 1:  // next
			var pos = false;
			var daysDetail = document.cDaysDetail; var cNo = document.cNo;
			var datum = new Date(document.currentYear,document.currentMonth+cNo+typ,1);
			var month = datum.getMonth(); var year = datum.getFullYear();				
										
			if (daysDetail.range.to.substr(0,6) >= year+getMonthFull(month)) {
				pos = typ;
			}

			return pos;
			break;					
	}
	return false;
}

function cGetTermins() {
	var arrStortive = new Array; 
	var arrTermins = new Array;
	
	for (var storitev in document.cDaysDetail['z' + document.cStartDatum]) {
		arrStortive.push(storitev);
	}
																			
	for(var i=0;i<arrStortive.length;i++) {
		var storitev = arrStortive[i];		
		var check = true;
		
		var datum = document.cEndDatum;
		var termins = '';
		while (check) {
			try {
				termins = '+'+ document.cDaysDetail['k'+ datum][storitev]['t'] + termins; // may throw error (undefined)
																
				if (document.cDaysDetail['k'+ datum][storitev]['od'] == 'z'+document.cStartDatum) {
					check = false;
				}
				else { // backtrack
         	datum = document.cDaysDetail[document.cDaysDetail['k'+ datum][storitev]['v']][storitev]['do'].substring(1); // may throw error (undefined)
				}
			}			
	  	catch (exception) {
				arrStortive.splice(arrStortive.indexOf(storitev),1);
    		check = false;
    	}
		}
		if (termins != '') arrTermins.push(termins.substring(1));	
	}		
	return arrTermins;
}

function cFinishSelection(obj,selectedDay)
{	
	console.log("not implemented.");
}

function cConfirmTermin()
{
	console.log("not implemented.");
}

function cLoad(startDate) {	
	document.cNo = -1;
	document.autoSelect = false;
	if (isSet(startDate)) var autoSelect = true;
	else {
		startDate = ''; 
		//** for (var startDate in document.cDaysDetail) { startDate = startDate.substr(1); if (startDate != '') break;  } // we need to always select the current week instead by default
		if (startDate == '') {
			var td = new Date();
			startDate = ''+td.getFullYear()+getMonthFull(td.getMonth())+getDayFull(td.getDate());
		}
	}
			
	document.currentMonth = parseInt(startDate.toString().substr(4,2),10)-1;
	document.currentYear = parseInt(startDate.toString().substr(0,4),10);
	document.currentWeek = cFindWeek(startDate,true);
	
	cCreateCFrame(); 	// create calendar
	
	// TODO: if first day is given something doesn't work great if first termin ends in next month
	if (autoSelect) { // if startDate is given we select first termin or given termin
		var obj = document.getElementById('cD'+startDate);
		if (obj != null) {
			if (obj.onclick != '') cDaySelect(obj);
		}
	} 
}