var currentMonth = 0;
var currentYear = 0;
var updatestatus = '';
var moving = false;

//var url = location.href

var url = './sys/main_php/events/list/getEvent.php';


function Listajax(){
	
	
	new Ajax.Request("./main_php/events/list/genList.php"+"?day=&month="+(currentMonth*1+1)+"&year="+currentYear,
	{
		method:'get',
		onCreate: function(){
			//alert('1');
		},
		onUninitialized: function(){
			//alert('2');
		},
		onException: function(a,b){
			alert(b);
		},
		onLoading: function(){			
		},
		onComplete: function(transport){
			$('list_table').innerHTML = transport.responseText;
		},     
		onFailure: function(){ 
		}	
	});
	
}


function Eventajax(){

	new Ajax.Request(url+"?month="+currentMonth+"&year="+currentYear,
	{
		method:'get',
		onCreate: function(){
			//alert('1');
		},
		onUninitialized: function(){
			//alert('2');
		},
		onException: function(a,b){
			alert(b);
		},
		onLoading: function(){
			//if(updatestatus != "DONE"){
				//document.getElementById('calendar').innerHTML = "";				
				//$('calendar').style.background="url('./images/35.gif') no-repeat center center";				
			//}	
		},
		onComplete: function(transport){
			if (200 == transport.status){
				updatestatus = "DONE";
				document.getElementById('calendar').innerHTML = "";
				
				var dataArray = transport.responseText.split(',');
				
				var len1 = dataArray[0];
				if(len1!=0)
					var len2 = dataArray[(len1*1)+1];
				else
					var len2 = dataArray[1];					
				if(len2!=0)
					var len3 = dataArray[((len1*1)+(len2*1)*1)+2];
				else
					var len3 = dataArray[(len1*1)+2];
				
				if(len1!=0){
					var data1 = new Array();
					
					for(i=0;i<len1;i++){
						data1[i] = dataArray[i+1];
					}
				}
				else
					var data1 = 0;
				
				if(len2!=0){
					var data2 = new Array();
					
					for(i=0;i<len2;i++){
						data2[i] = dataArray[i+(len1*1)+2];
					}
				}
				else
					var data2 = 0;
				
				if(len3!=0){
					var data3 = new Array();
					
					for(i=0;i<len3;i++){
						data3[i] = dataArray[i+(len1*1)+(len2*1)+3];
					}
				}
				else
					var data3 = 0;
				
												
				genCalendar(1,currentMonth+1,currentYear,-370,0,'calendar',1,data3);
				genCalendar(1,currentMonth,currentYear,0,0,'calendar',2,data2);
				genCalendar(1,currentMonth-1,currentYear,370,0,'calendar',3,data1);
				moving=false;
				//Listajax();
				//alert(transport.responseText);
			}
			//$('t').style.background='#FF0000';
		},     
		onFailure: function(){ 
			//alert('Something went wrong...') 
		}	
	});
}

	function genCalendar(day,month,year,left,top,divid,divNum,eventdays){		
	
		//var days_array = 
		
		
		if(month<0){
			month = 11;
			year = year - 1;
		} else if(month>11){
			month = 0;
			year = (year*1) + 1;				
		}
			
		
		
		d = new Date();
		if(day)
			d.setDate(day);
		if(month)
			d.setMonth(month);
		if(year)
			d.setYear(year);
		
		
		//alert(d.getYear())
		
		var days = daysInMonth(month,d.getYear());
		
				
		var firstDate = getFirstDate(month,year);
		//alert(firstDate+","+month+","+d.getYear());
		
		var weeks = numberOfWeeks(firstDate,days);
		
		var weeksArray = new Array();
		
		weeksArray = getWeeksArray(days,firstDate,weeks);
				
		if(document.getElementById(divid)){
			var div = document.getElementById(divid);
			var temp = "";
			
			var height = (55* weeks)+"px";
			var width = "350px";
		
			top = div.style.top;
			
			var daysname = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
			var monthname = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
			
			temp = "<div id=\"div"+divNum+"\"style=\"left:"+left+"px; top:0px; position:absolute; float:left; overflow:hidden;\" class=\"calendar_background\">";
			
			
			
			temp = temp + "<div class=\"calendar_title\"><center><div style=\"width:150px\"><div style=\"float:left\"><a href=\"javascript:void(0);\" onClick=\"clearInterval(timer); timer = setInterval ( 'moveLeft()', 20 ); \"><img src=\"./images/arrow/arrow_left.gif\"></a></div><div style=\"float:left; text-align:center; width:132px\"> "+monthname[month]+" "+year+"</div><div style=\"float:right\"> <a href=\"javascript:void(0);\" onClick=\"clearInterval(timer); timer = setInterval ( 'moveRight()', 20 );\"><img src=\"./images/arrow/arrow_right.gif\"></a></div></div></center></div>";
			temp = temp + "<div class=\"calendar_week_container\">";
			
			for(i=0;i<7;i++) {					
					temp = temp + "<div class=\"calendar_day_name\">"+daysname[i]+"</div>";
				}
							
			temp = temp + "</div>";
			
			
			for(j=0;j<weeks;j++) {
				temp = temp + "<div class=\"calendar_week_container\">";
				for(i=0;i<7;i++) {
					if(i==0)
						className = 'calendar_sunday';
					else
						className = 'calendar_day';
	
	
					for(k=0;k<eventdays.length;k++){
						//alert(eventdays[k]+' '+weeksArray[j][i])
						if(weeksArray[j][i] == eventdays[k]){	
							className = 'calendar_eventday';							
							break;
						}						
					}
				
					if(className=='calendar_eventday')
						temp = temp + "<div class=\""+className+"\" onMouseover=\"this.className='"+className+" calendar_over'\" onMouseout=\"this.className='"+className+"'\"><a href='http://localhost/cbc/sys/events.php?lnk=list&day="+weeksArray[j][i]+"&month="+((month*1)+1)+"&year="+year+"'>"+weeksArray[j][i]+"</a></div>";
					else
						temp = temp + "<div class=\""+className+"\" onMouseover=\"this.className='calendar_over'\" onMouseout=\"this.className='"+className+"'\">"+weeksArray[j][i]+"</div>";
				}
				temp = temp + "</div>";
			}
					
			temp = temp + "</div>";
			
			
			div.innerHTML = div.innerHTML + temp;
		}		
	}
	
	
	function getWeeksArray(days,firstDate,weeks){
		var week = new Array(weeks);
		
		var counter = 0;
	
		for(j=0;j<weeks;j++) {
			week[j] = new Array(7);
			for(i=0;i<7;i++) {
				counter++;
				week[j][i] = counter; 				
				week[j][i] = counter - firstDate;				
				if ((week[j][i] < 1) || (week[j][i] > days)) {    
					week[j][i] = "";
				}				
			}
		}
						
		return week;
	
	}
	
	function numberOfWeeks(firstDay,daysInMonth){
		return Math.ceil(((firstDay*1)+(daysInMonth*1))/7);
	}
	
	function getFirstDate(month,year){
		nd = new Date();
		nd.setDate(1);
		nd.setMonth(month);
		nd.setYear(year);
		
		return nd.getDay();
	}
	
	function daysInMonth(iMonth, iYear){
		return 32 - new Date(iYear, iMonth, 32).getDate();
	}
 
	function setupCalender(day,month,year,divid){
	
		currentMonth = month;
		currentYear = year;
	
		if(document.getElementById(divid)){
			updatestatus = "";
			Eventajax();			
		}
	}
	
	var timer=""


	function moveLeft(divid){
		if(moving)
			return false;
		var div1 = document.getElementById("div1");
		var div2 = document.getElementById("div2");
		var div3 = document.getElementById("div3");
		
		
		left = div1.style.left;						
		var leng = left.length;		
		left = left.substr(0,leng-2);		
		left = left -10						
		div1.style.left = left+"px";
		
		left = div2.style.left;						
		var leng = left.length;		
		left = left.substr(0,leng-2);		
		left = left -10
						
		div2.style.left = left+"px";
		
		left = div3.style.left;						
		var leng = left.length;		
		left = left.substr(0,leng-2);		
		left = left -10
		
				
		div3.style.left = left+"px";
		
		if(left<=0){
			clearInterval(timer);
					
			if(currentMonth==0){
				currentMonth = 11;
				currentYear = (currentYear*1)-1;
			}
			else
				currentMonth = currentMonth-1;
			moving=true;	
			setupCalender(1,currentMonth,currentYear,'calendar');
		}
	}
	
	function moveRight(divid){		
		var div1 = document.getElementById("div1");
		var div2 = document.getElementById("div2");
		var div3 = document.getElementById("div3");
		
		
		left = div1.style.left;

		
		var leng = left.length;		
		left = left.substr(0,leng-2);
		
		left = (left*1) +10						
		div1.style.left = left+"px";
		
		
		
		left = div2.style.left;						
		var leng = left.length;		
		left = left.substr(0,leng-2);		
		left = (left*1) +10
						
		div2.style.left = left+"px";
		
		left = div3.style.left;						
		var leng = left.length;		
		left = left.substr(0,leng-2);		
		left = (left*1) +10
		
		div3.style.left = left+"px";
		
		if(left>=740){
			clearInterval(timer);
			
			if(currentMonth==11){
				currentMonth = 0;
				currentYear = (currentYear*1)+1;
			}
			else
				currentMonth = ((currentMonth*1)+1);
				
			moving=true;				
			setupCalender(1,currentMonth,currentYear,'calendar');
		}
		
	}
	