﻿var c = function (id) 
{
	return "string" == typeof id ? document.getElementById(id) : id;
};

var Class = {
	create: function()
	{
		return function()
		{
			this.initialize.apply(this, arguments);
		}
	}
}

var Extend = function(destination, source)
{
	for (var property in source)
	{
		destination[property] = source[property];
	}
	return destination;
}

var Calendar = Class.create();
Calendar.prototype =
{
	initialize: function(container, options) 
	{
		this.Container = c(container);//容器(table结构)
		this.Days = [];//日期对象列表
		this.SetOptions(options);
		this.Year = this.options.Year || new Date().getFullYear();
		this.Month = this.options.Month || new Date().getMonth() + 1;
		this.SelectDay = this.options.SelectDay ? new Date(this.options.SelectDay) : null;
		this.onSelectDay = this.options.onSelectDay;
		this.onToday = this.options.onToday;
		this.onFinish = this.options.onFinish;
		this.Draw();
	},
//设置默认属性
	SetOptions: function(options)
	{
		this.options = {//默认值
			Year:			0,//显示年
			Month:			0,//显示月
			SelectDay:		null,//选择日期
			onSelectDay:	function(){},//在选择日期触发
			onToday:		function(){},//在当天日期触发
			onFinish:		function(){}//日历画完后触发
		};
		Extend(this.options, options || {});
	},
	//当前月
	NowMonth: function() 
	{
		this.PreDraw(new Date());
	},
	//上一月
	PreMonth: function() 
	{
		this.PreDraw(new Date(this.Year, this.Month - 2, 1));
	},
	//下一月
	NextMonth: function() 
	{
		this.PreDraw(new Date(this.Year, this.Month, 1));
	},
	//上一年
	PreYear: function() 
	{
		this.PreDraw(new Date(this.Year - 1, this.Month - 1, 1));
	},
	//下一年
	NextYear: function() 
	{
		this.PreDraw(new Date(this.Year + 1, this.Month - 1, 1));
	},
	//根据日期画日历
	PreDraw: function(date) 
	{
		//再设置属性
		this.Year = date.getFullYear(); this.Month = date.getMonth() + 1;
		//重新画日历
		this.Draw();
	},
	//画日历
	Draw: function()
	{
		//用来保存日期列表
		var arr = [];
		//用当月第一天在一周中的日期值作为当月离第一天的天数
		for(var i = 1, firstDay = new Date(this.Year, this.Month - 1, 1).getDay(); i <= firstDay; i++)
		{
			arr.push(0);
		}
		//用当月最后一天在一个月中的日期值作为当月的天数
		for(var i = 1, monthDay = new Date(this.Year, this.Month, 0).getDate(); i <= monthDay; i++)
		{
			arr.push(i);
		}
		//清空原来的日期对象列表
		this.Days = [];
		//插入日期
		var frag = document.createDocumentFragment();
		while(arr.length)
		{
			//每个星期插入一个tr
			var row = document.createElement("tr");
			//每个星期有7天
			for(var i = 1; i <= 7; i++)
			{
				var cell = document.createElement("td"); cell.innerHTML = "&nbsp;";
				if(arr.length)
				{
					var d = arr.shift();
					if(d)
					{
						cell.innerHTML = d;
						this.Days[d] = cell;
						var on = new Date(this.Year, this.Month - 1, d);
						//判断是否今日
						this.IsSame(on, new Date()) && this.onToday(cell);
						//判断是否选择日期
						this.SelectDay && this.IsSame(on, this.SelectDay) && this.onSelectDay(cell);
					}
				}
				row.appendChild(cell);
			}
			frag.appendChild(row);
		}

		//先清空内容再插入(ie的table不能用innerHTML)
		while(this.Container.hasChildNodes())
		{
			this.Container.removeChild(this.Container.firstChild); 
		}
		this.Container.appendChild(frag);
		//附加程序
		this.onFinish();
	},
	//判断是否同一日
	IsSame: function(d1, d2)
	{
		return (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate());
	}
}



var all=new Array();
var nowmonth="";
var nowyear="";
function ss()
{
	var s=Math.random();
	$.getJSON("getcon.php?id="+s,function(json)
	{
		var allcon=new Array();
		for(var i=0;i<json.length;i++)
		{
			var date=json[i]["senddate"];
			var st=new Array();
			st=date.split("-");
			allcon[i]=[st[0],st[1],st[2],json[i]["title"],json[i]["description"]];
		}
		all=allcon;
		nowcon();
	});
}

function nowcon(){
	var today=new Date();
	var cale = new Calendar("idCalendar", {
	SelectDay: new Date().setDate(10),
	//onSelectDay: function(o){ o.className = "onSelect"; },
	onToday: function(o){ o.className = "onToday"; },
	onFinish: function(){
	c("idCalendarYear").innerHTML = this.Year; c("idCalendarMonth").innerHTML = this.Month;c("idCalendarDay").innerHTML =today.getDate();
	var thisyear=this.Year;
	var thismonth=this.Month;
	nowmonth=this.Month;
	nowyear=this.Year;
	for(var i = 0, len = all.length; i < len; i++){
	if(all[i][0]==this.Year && all[i][1]==this.Month)
	{
		this.Days[all[i][2]*1].innerHTML = "<a href='javascript:aa("+all[i][2]+");'>" + all[i][2]*1 + "</a>";
	}
	var monthflag=[1,2,3,4,5,6,7,8,9,10,11,12]
	var monthcon="";
	for(var j=0;j<monthflag.length;j++)
	{
		if(monthflag[j]==this.Month)
		{
			monthcon+="<a style='color:red;'>"+monthflag[j]+"</a>";
		}else
		{
			monthcon+="<a>"+monthflag[j]+"</a>";
		}
	}
	c("idCalendarMonthList").innerHTML =monthcon;
	}
	var flag=0;
		for(var i=0;i<all.length;i++)
		{
			if(this.Month==all[i][1] && this.Year==all[i][0])
			{
				c("nowbg").innerHTML='<p class="xiangxi"><b id="time" class="time">'+all[i][0]+"-"+all[i][1]+"-"+all[i][2]+'</b><a id="xx" href="/a/ymsite/gonggaorili/'+all[i][0]+'/'+all[i][1]+all[i][2]+'" target="_blank">详细&gt;&gt;</a></p><h2 id="title">'+all[i][3]+'</h2><p id="con">'+all[i][4]+'</p>';
				flag=1;
				break;
			}
		}

		if(flag==0)
		{
			c("nowbg").innerHTML="本月暂无活动";
		}
	}
	});
	c("idCalendarPre").onclick = function(){ cale.PreMonth(); }
	c("idCalendarNext").onclick = function(){ cale.NextMonth(); }
	//c("idCalendarPreYear").onclick = function(){ cale.PreYear(); }
	//c("idCalendarNextYear").onclick = function(){ cale.NextYear(); }
	//c("idCalendarNow").onclick = function(){ cale.NowMonth(); }
}

function aa(calday)
{
	for(var i=0;i<all.length;i++)
	{
		if(nowmonth==all[i][1] && nowyear==all[i][0])
		{
			if(all[i][2]==calday)
			{
				c("time").innerHTML=all[i][0]+"-"+all[i][1]+"-"+all[i][2];
				c("xx").href="/a/ymsite/gonggaorili/"+all[i][0]+"/"+all[i][1]+all[i][2];
				c("con").innerHTML=all[i][4];
				c("title").innerHTML=all[i][3];
				break;
			}
		}
	}
}
ss();
