EventCalendar		= function( displayObj ) {
	
	this.cLayer			= displayObj;
	
	var ref				= this;
    this.today		= new Date();
    
    this.ecData		= new ECData();
	
	this.initData			= function() {
		new ASYNCXMLHTTP( this._____initDataHandler, "/_share_/EUCCKBoard/_protocol/getListXML.php?tid=EUCCK_new_members&listnum=1" );
	}
	
	this._____initDataHandler	= function(xmlHttp) {
	    
	    var xml		= xmlHttp.responseXML.getElementsByTagName("row")[0];

	    ref.thumbURL		= xml.getElementsByTagName("thumb_url")[0].firstChild.nodeValue;
	    ref.info			= xml.getElementsByTagName("info")[0].firstChild.nodeValue;
	    ref.url				= xml.getElementsByTagName("url")[0].firstChild.nodeValue;
	    ref.articleNum		= xml.getElementsByTagName("num")[0].firstChild.nodeValue;
		
		ref.initTemplate();
	}
	
	this.initTemplate			= function() {
		new ASYNCXMLHTTP( this._____initTemplateHandler, "/_ui/MainPage/EventCalendar/template.html" );
	}
	
	
	this._____initTemplateHandler	= function(xmlHttp) {	    
	    ref.proc(xmlHttp);
	}
	
	this.proc			= function(xmlHttp) {

	    this.cLayer.innerHTML		= xmlHttp.responseText;
	    
	    var month		= this.today.getMonth() + 1;
	    if( month < 10 ) month = "0" + month;
	    var ymStr		= this.today.getFullYear() + ". " + month;	    
	    document.getElementById("ec_YM").innerHTML		= ymStr;

	    
	    this.drawCalendar();
	}

	this.monthDays		= new Array("", 31,28,31,30,31,30,31,31,30,31,30,31) ;	
	this.drawCalendar			= function() {
		
		var year	= this.today.getFullYear();
		var month	= this.today.getMonth() + 1;
		var day		= this.today.getDate();
		
		
		if ((year%100!=0)&&(year%4==0||year%400==0)) this.monthDays[2]=29;
		else this.monthDays[2]=28 //leap year test

		var firstDay = new Date(year,month-1,1).getDay();
		var calStr="";
		calStr	+= "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
		calStr	+= "<tr>";
		calStr	+= "  <td width='27' class='cal_daysun'>sun</td>";
		calStr	+= "  <td width='27' class='cal_day'>mon</td>";
		calStr	+= "  <td width='27' class='cal_day'>tue</td>";
		calStr	+= "  <td width='27' class='cal_day'>wed</td>";
		calStr	+= "  <td width='27' class='cal_day'>thu</td>";
		calStr	+= "  <td width='27' class='cal_day'>fri</td>";
		calStr	+= "  <td width='27' class='cal_day'>sat</td>";
		calStr	+= "</tr>";
		calStr	+= "<tr>";
		calStr	+= "  <td height='15' colspan='7'></td>";
		calStr	+= "</tr>";

		var dayCount=1 

		calStr	+= "<tr>" 

		for (var i=0;i<firstDay;i++) {
			calStr+="<td width='27' height='18' class='cal_date'></td>"  //공백
		}
		for (var i=0;i<this.monthDays[month];i++) { 
			
			calStr		+= "<td width='27' height='18' class='cal_date' id='d" + dayCount + "' style='color:#999999'>" + dayCount + "</td>";

			dayCount++;


			if ((i+firstDay+1)%7==0&&(dayCount<this.monthDays[month]+1)) calStr+="</tr><tr>" 
		} 
		var totCells = firstDay + this.monthDays[month] 
		for (var i=0;i<(totCells>28?(totCells>35?42:35):28)-totCells;i++) {
			calStr+="<td width='27' height='18' class='cal_date'></td>";
		}

		calStr+="</tr></table>";
		document.getElementById("ec_CAL").innerHTML	= calStr;
		
		
		this.initData();
	}
	
	this.initData			= function() {
		new ASYNCXMLHTTP( this._____initDataHandler, "/_protocols/zstack/board/calendar/getMonthListXML.php?tid=EUCCK_event_calendar&allgroup=y" );
		
	}
	this._____initDataHandler	= function(xmlHttp) {
		ref.ecData.setData( xmlHttp.responseXML );
		
		ref.displayData();
	}
	
	
	this.displayData		= function() {
		
		for( var i=0; i<this.ecData.datas.length; i++ ) {
			var adata		= this.ecData.datas[i];
			var sd			= adata.sdate.substr(6, 2)*1;
			var ed			= adata.edate.substr(6, 2)*1;
			
			for( var d=sd; d<=ed; d++ ) {
				if(	document.getElementById("d"+d) != null ) {
					var ddd	= document.getElementById("d"+d);
					ddd.num	= d;
					
					ddd.style.color	= "#000000";
					ddd.onmouseover	= function() {
						this.style.backgroundColor	= "#7bb3f0";
						this.style.cursor			= "hand";
					}
					ddd.onmouseout	= function() {
						if( ref.selectedDate != this ) {
							this.style.backgroundColor	= "#e9f1f9";
						}
					}
					ddd.onclick	= function() {
						ref.changeDate( this );
					}
				}
			}
		}
		

		
		var d		= this.today.getDate()*1;
		this.changeDate( document.getElementById("d"+d) );
		
	}
	
	this.changeDate		= function( dayObj ) {
		
		if( this.selectedDate != null ) {
			this.selectedDate.style.backgroundColor	= "#e9f1f9";
		}
		this.selectedDate		= dayObj;
		this.selectedDate.style.backgroundColor	= "#7bb3f0";
		
		var d			= dayObj.num;
		
		var output		= "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
		var ddd			= this.today.getFullYear()*10000 + (this.today.getMonth()+1)*100 + d;
		for( var i=0; i<this.ecData.datas.length; i++ ) {
			var adata		= this.ecData.datas[i];
			if( ddd>=adata.sdate && ddd<=adata.edate ) {
				
				var eventDate	= adata.sdate.substr(0, 4) + "-" + adata.sdate.substr(4, 2) + "-" + adata.sdate.substr(6, 2);
				
				output	+= "<tr valign='top'>";
				output	+= "  <td width='8'><img src='/storage/contents_files/0_99/3/event_icon.gif' vspace='8' /></td>";
				output	+= "  <td class='event_date'>[" + eventDate + "]</td>";
				output	+= "</tr>";
				output	+= "<tr valign='top'>";
				output	+= "  <td></td>";
				output	+= "  <td class='event_txt'><a href='/site/events/event_calendar.htm?mode=view&num=" + adata.num + "'>" + adata.title + "</a></td>";
				output	+= "</tr>";
			}
		}
		output		+= "</table>";
		
		document.getElementById("ec_VIEW").innerHTML	= output;
		
	}
	
	this.initTemplate();
}
















ECData		= function() {
	
	this.datas		= new Array();
	
	this.setData		= function( xmlData ) {

		var rows		= xmlData.getElementsByTagName("row");
		for( var i=0; i<rows.length; i++ ) {
			var row		= rows[i];
			var ecd		= new ECAData(
					row.getElementsByTagName("num")[0].firstChild.nodeValue,
					row.getElementsByTagName("title")[0].firstChild.nodeValue,
					row.getElementsByTagName("sdate")[0].firstChild.nodeValue,
					row.getElementsByTagName("edate")[0].firstChild.nodeValue
			);
			
			this.datas.push( ecd );
			
		}
	}
}

ECAData		= function( _num, _title, _sdate, _edate ) {
	this.num		= _num;
	this.title		= _title;
	this.sdate		= _sdate;
	this.edate		= _edate;
}








new EventCalendar( document.getElementById('eventCalendar') );


























