//静岡マツダ営業日カレンダー：セールス用
//

//カレンダーのID（変更の必要無し）
var cal_Id = 'calendarSales';

var calObject = new Object();
calObject[cal_Id] = new Object();


//営業カレンダーを表示させる範囲を指定
var limitPastYear = 2011;		//xxxx年
var limitPastMonth = 4;			//x月から
var limitFutureYear = 2012;		//xxxx年
var limitFutureMonth = 3;		//x月まで

//Xヵ月後のカレンダーを表示する場合（当月=1）
var cal_display_month = 1;

//祝日・休業日等の設定（定休日は設定の必要無し）
//"vacation" ... 年末年始・お盆等の長期休暇、臨時休業の設定 ... 優先順位高
//"noevent" ... 土日祝日でもイベントが開催されない場合の設定 ... 優先順位高
//"event" ... 土日祝日以外のイベント開催日の設定 ... 優先順位中
//"holiday" ... 祝日（イベントと同様） ... 優先順位中
//"off" ... 定休日以外の休業日の設定 ... 優先順位低
calObject[cal_Id].day = new Object();
calObject[cal_Id].text = new Object();
//2010
calObject[cal_Id].day["2010/1/1"] = "holiday";
calObject[cal_Id].day["2010/1/11"] = "holiday";
calObject[cal_Id].day["2010/2/11"] = "holiday";
calObject[cal_Id].day["2010/3/21"] = "holiday";
calObject[cal_Id].day["2010/3/22"] = "holiday";
calObject[cal_Id].day["2010/4/29"] = "holiday";
calObject[cal_Id].day["2010/5/3"] = "holiday";
calObject[cal_Id].day["2010/5/4"] = "holiday";
calObject[cal_Id].day["2010/5/5"] = "holiday";
calObject[cal_Id].day["2010/7/19"] = "holiday";
calObject[cal_Id].day["2010/9/20"] = "holiday";
calObject[cal_Id].day["2010/9/23"] = "holiday";
calObject[cal_Id].day["2010/10/11"] = "holiday";
calObject[cal_Id].day["2010/11/3"] = "holiday";
calObject[cal_Id].day["2010/11/23"] = "holiday";
calObject[cal_Id].day["2010/12/23"] = "holiday";
calObject[cal_Id].day["2010/1/1"] = "vacation";
calObject[cal_Id].day["2010/1/2"] = "vacation";
calObject[cal_Id].day["2010/8/9"] = "vacation";
calObject[cal_Id].day["2010/8/10"] = "vacation";
calObject[cal_Id].day["2010/8/11"] = "vacation";
calObject[cal_Id].day["2010/8/12"] = "vacation";
calObject[cal_Id].day["2010/12/27"] = "vacation";
calObject[cal_Id].day["2010/12/28"] = "vacation";
calObject[cal_Id].day["2010/12/29"] = "vacation";
calObject[cal_Id].day["2010/12/30"] = "vacation";
calObject[cal_Id].day["2010/12/31"] = "vacation";
calObject[cal_Id].day["2010/12/6"] = "off";
calObject[cal_Id].day["2010/12/20"] = "off";
//2011
calObject[cal_Id].day["2011/1/1"] = "holiday";
calObject[cal_Id].day["2011/1/10"] = "holiday";
calObject[cal_Id].day["2011/2/11"] = "holiday";
calObject[cal_Id].day["2011/3/21"] = "holiday";
calObject[cal_Id].day["2011/4/29"] = "holiday";
calObject[cal_Id].day["2011/5/3"] = "holiday";
calObject[cal_Id].day["2011/5/4"] = "holiday";
calObject[cal_Id].day["2011/5/5"] = "holiday";
calObject[cal_Id].day["2011/7/18"] = "holiday";
calObject[cal_Id].day["2011/9/19"] = "holiday";
calObject[cal_Id].day["2011/9/23"] = "holiday";
calObject[cal_Id].day["2011/10/10"] = "holiday";
calObject[cal_Id].day["2011/11/3"] = "holiday";
calObject[cal_Id].day["2011/11/23"] = "holiday";
calObject[cal_Id].day["2011/12/23"] = "holiday";
calObject[cal_Id].day["2011/1/1"] = "vacation";
calObject[cal_Id].day["2011/1/2"] = "vacation";
calObject[cal_Id].day["2011/5/2"] = "vacation";
calObject[cal_Id].day["2011/8/8"] = "vacation";
calObject[cal_Id].day["2011/8/9"] = "vacation";
calObject[cal_Id].day["2011/8/10"] = "vacation";
calObject[cal_Id].day["2011/8/11"] = "vacation";
calObject[cal_Id].day["2011/12/27"] = "vacation";
calObject[cal_Id].day["2011/12/28"] = "vacation";
calObject[cal_Id].day["2011/12/29"] = "vacation";
calObject[cal_Id].day["2011/12/30"] = "vacation";
calObject[cal_Id].day["2011/12/31"] = "vacation";
calObject[cal_Id].day["2011/4/29"] = "noevent";
calObject[cal_Id].day["2011/11/3"] = "noevent";
calObject[cal_Id].day["2011/11/23"] = "noevent";
calObject[cal_Id].day["2011/1/3"] = "event";
calObject[cal_Id].day["2011/1/4"] = "event";
calObject[cal_Id].day["2011/1/5"] = "event";
calObject[cal_Id].day["2011/1/6"] = "off";
calObject[cal_Id].day["2011/1/12"] = "off";
calObject[cal_Id].day["2011/1/17"] = "off";
calObject[cal_Id].day["2011/2/7"] = "off";
calObject[cal_Id].day["2011/2/21"] = "off";
calObject[cal_Id].day["2011/3/7"] = "off";
calObject[cal_Id].day["2011/3/23"] = "off";
calObject[cal_Id].day["2011/4/4"] = "off";
calObject[cal_Id].day["2011/4/11"] = "off";
calObject[cal_Id].day["2011/4/18"] = "off";
calObject[cal_Id].day["2011/5/11"] = "off";
calObject[cal_Id].day["2011/5/18"] = "off";
calObject[cal_Id].day["2011/5/19"] = "off";
calObject[cal_Id].day["2011/6/6"] = "off";
calObject[cal_Id].day["2011/6/20"] = "off";
calObject[cal_Id].day["2011/7/4"] = "off";
calObject[cal_Id].day["2011/7/27"] = "off";
calObject[cal_Id].day["2011/8/1"] = "off";
calObject[cal_Id].day["2011/8/22"] = "off";
calObject[cal_Id].day["2011/9/5"] = "off";
calObject[cal_Id].day["2011/10/3"] = "off";
calObject[cal_Id].day["2011/10/17"] = "off";
calObject[cal_Id].day["2011/11/7"] = "off";
calObject[cal_Id].day["2011/11/21"] = "off";
calObject[cal_Id].day["2011/12/5"] = "off";
calObject[cal_Id].day["2011/12/19"] = "off";

//2012
calObject[cal_Id].day["2012/1/1"] = "holiday";
calObject[cal_Id].day["2012/1/2"] = "holiday";
calObject[cal_Id].day["2012/1/9"] = "holiday";
calObject[cal_Id].day["2012/2/11"] = "holiday";
calObject[cal_Id].day["2012/3/20"] = "holiday";
calObject[cal_Id].day["2012/4/29"] = "holiday";
calObject[cal_Id].day["2012/4/30"] = "holiday";
calObject[cal_Id].day["2012/5/3"] = "holiday";
calObject[cal_Id].day["2012/5/4"] = "holiday";
calObject[cal_Id].day["2012/5/5"] = "holiday";
calObject[cal_Id].day["2012/7/16"] = "holiday";
calObject[cal_Id].day["2012/9/17"] = "holiday";
calObject[cal_Id].day["2012/9/22"] = "holiday";
calObject[cal_Id].day["2012/10/8"] = "holiday";
calObject[cal_Id].day["2012/11/3"] = "holiday";
calObject[cal_Id].day["2012/11/23"] = "holiday";
calObject[cal_Id].day["2012/12/23"] = "holiday";
calObject[cal_Id].day["2012/12/24"] = "holiday";
calObject[cal_Id].day["2012/1/1"] = "vacation";
calObject[cal_Id].day["2012/1/2"] = "vacation";
calObject[cal_Id].day["2012/3/20"] = "noevent";
calObject[cal_Id].day["2012/1/3"] = "event";
calObject[cal_Id].day["2012/1/4"] = "event";
calObject[cal_Id].day["2012/1/5"] = "event";
calObject[cal_Id].day["2012/1/11"] = "off";
calObject[cal_Id].day["2012/1/16"] = "off";
calObject[cal_Id].day["2012/2/6"] = "off";
calObject[cal_Id].day["2012/2/20"] = "off";
calObject[cal_Id].day["2012/3/5"] = "off";
calObject[cal_Id].day["2012/3/21"] = "off";
calObject[cal_Id].day["2012/4/2"] = "off";
calObject[cal_Id].day["2012/4/16"] = "off";
calObject[cal_Id].day["2012/5/7"] = "off";
calObject[cal_Id].day["2012/5/21"] = "off";
calObject[cal_Id].day["2012/6/4"] = "off";
calObject[cal_Id].day["2012/6/18"] = "off";
calObject[cal_Id].day["2012/7/2"] = "off";
calObject[cal_Id].day["2012/8/6"] = "off";
calObject[cal_Id].day["2012/8/20"] = "off";
calObject[cal_Id].day["2012/9/3"] = "off";
calObject[cal_Id].day["2012/10/1"] = "off";
calObject[cal_Id].day["2012/10/15"] = "off";
calObject[cal_Id].day["2012/11/5"] = "off";
calObject[cal_Id].day["2012/11/19"] = "off";
calObject[cal_Id].day["2012/12/3"] = "off";
calObject[cal_Id].day["2012/12/17"] = "off";


//定休日等、毎週繰り返しのイベント設定
calObject[cal_Id].week = new Object();
calObject[cal_Id].week["flag"] = 1;
calObject[cal_Id].week["Mon"];
calObject[cal_Id].week["Tue"] = "off";
calObject[cal_Id].week["Wed"];
calObject[cal_Id].week["Thu"];
calObject[cal_Id].week["Fri"];
calObject[cal_Id].week["Sat"] = "event";
calObject[cal_Id].week["Sun"] = "event";

//毎月繰り返しのイベント設定
calObject[cal_Id].month = new Object();
//calObject[cal_Id].month[8] = "maitsuki_youka";

//現在日から一定日数経過時のイベント設定
calObject[cal_Id].after = new Array();
//calObject[cal_Id].after[3] = "mikkago";

calObject[cal_Id].click = new Object();
////パラメータを送るURL
calObject[cal_Id].click["url"];
////クリック可能にするクラス名(クラス指定無しの場合は指定せず)
//calObject[cal_Id].click["clicklink"];

calObject[cal_Id].today = new Date();
calObject[cal_Id].cal_year = calObject[cal_Id].today.getYear();
calObject[cal_Id].cal_month = calObject[cal_Id].today.getMonth() + cal_display_month;
calObject[cal_Id].cal_day = calObject[cal_Id].today.getDate();
if(calObject[cal_Id].cal_year < 1900) calObject[cal_Id].cal_year += 1900;
if(calObject[cal_Id].cal_month < 1){
	calObject[cal_Id].cal_month += 12;
	calObject[cal_Id].cal_year -= 1;
}else if(calObject[cal_Id].cal_month > 12){
	calObject[cal_Id].cal_month -= 12;
	calObject[cal_Id].cal_year = calObject[cal_Id].cal_year + 1;
}
if(cal_display_month == 1){
	calObject[cal_Id].text[calObject[cal_Id].cal_year+"/"+calObject[cal_Id].cal_month+"/"+calObject[cal_Id].cal_day] = "Today";
	for(i=0;i<calObject[cal_Id].after.length;i++){
		if(calObject[cal_Id].after[i] != undefined){
			nmsec = i * 1000 * 60 * 60 * 24;
			msec  = (new Date()).getTime();
			dt    = new Date(nmsec+msec);
			month = dt.getMonth() + 1;
			date  = dt.getDate();
			year = dt.getYear();
			if(year < 1900) year += 1900;
			calObject[cal_Id].day[year+"/"+month+"/"+date] = calObject[cal_Id].after[i];
		}
	}
}
document.write("<div class='cal_wrapper clearfix'>");
document.write("<ul class='cal_ui'>");
document.write("<li class=\"cal_prev\" onclick=\"prevCal('"+cal_Id+"')\"><a></a></li>");
document.write("<li class='cal_next' onclick=\"nextCal('"+cal_Id+"')\"><a></a></li>");
document.write("<li class='cal_to' onclick=\"currentCal('"+cal_Id+"')\"><a></a></li>");
document.write("</ul>");
document.write("<div id='"+cal_Id+"' class='cal_base'></div>");
document.write("</div>");
calObject[cal_Id].to_year = calObject[cal_Id].cal_year;
calObject[cal_Id].to_month = calObject[cal_Id].cal_month;
calObject[cal_Id].to_day = calObject[cal_Id].cal_day;
function currentCal(calObj){
	calObject[calObj].cal_year = calObject[calObj].to_year;
	calObject[calObj].cal_month = calObject[calObj].to_month;
	calObject[calObj].cal_day = calObject[calObj].to_day;
	writeCal(calObject[calObj].cal_year,calObject[calObj].cal_month,calObject[calObj].cal_day,calObj);
	$("div.calendarSales li.cal_next").removeClass("hidden");
	$("div.calendarSales li.cal_prev").removeClass("hidden");
}
function prevCal(calObj){
	calObject[calObj].cal_month -= 1;
	if(calObject[calObj].cal_month < 1){
		calObject[calObj].cal_month = 12;
		calObject[calObj].cal_year -= 1;
	}
	if(calObject[calObj].cal_year <= limitPastYear && calObject[calObj].cal_month <= limitPastMonth){
		$("div.calendarSales li.cal_prev").addClass("hidden");
	}
	$("div.calendarSales li.cal_next").removeClass("hidden");
	writeCal(calObject[calObj].cal_year,calObject[calObj].cal_month,0,calObj);
}
function nextCal(calObj){
	calObject[calObj].cal_month += 1;
	if(calObject[calObj].cal_month > 12){
		calObject[calObj].cal_month = 1;
		calObject[calObj].cal_year += 1;
	}
	if(calObject[calObj].cal_year >= limitFutureYear && calObject[calObj].cal_month >= limitFutureMonth){
		$("div.calendarSales li.cal_next").addClass("hidden");
	}
	$("div.calendarSales li.cal_prev").removeClass("hidden");
	writeCal(calObject[calObj].cal_year,calObject[calObj].cal_month,0,calObj);
}
function getWeek(year,month,day){
	if (month == 1 || month == 2) {
		year--;
		month += 12;
	}
	var week = Math.floor(year + Math.floor(year/4) - Math.floor(year/100) + Math.floor(year/400) + Math.floor((13 * month + 8) / 5) + day) % 7;
	return week;
}
function writeCal(year,month,day,calObj){
	var calendars = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	var weeks = new Array("<li class='cal_headline'><span>月</span></li>","<li class='cal_headline'><span>火</span></li>","<li class='cal_headline'><span>水</span></li>","<li class='cal_headline'><span>木</span></li>","<li class='cal_headline'><span>金</span></li>","<li class='cal_headline Saturday'><span>土</span></li>","<li class='cal_headline Sunday'><span>日</span></li>");
	var monthName = new Array('','1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月');
	var cal_flag = 0;
	if(year % 100 == 0 || year % 4 != 0){
		if(year % 400 != 0){
			cal_flag = 0;
		}else{
			cal_flag = 1;
		}
	}else if(year % 4 == 0){
		cal_flag = 1;
	}else{
		cal_flag = 0;
	}
	calendars[2] += cal_flag;
	var cal_start_day = getWeek(year,month,0);
	var cal_tags = "<p>" + year + "年" + "<strong>" + monthName[month] + "</strong></p>";
	cal_tags += "<ul class='cal_main'>";
	for(var i=0;i<weeks.length;i++){
		cal_tags += weeks[i];
	}
	for(var i=0;i < cal_start_day;i++){
		cal_tags += "<li><span>&nbsp;</span></li>";
	}
	//main
	var first_thu_flag = 1;
	var day_after = null;
	for(var cal_day_cnt = 1;cal_day_cnt <= calendars[month];cal_day_cnt++){
		var cal_day_match = year + "/" + month + "/" + cal_day_cnt;
		var dayClass = "";

		if(calObject[calObj].day[cal_day_match]){
			dayClass = ' class="'+calObject[calObj].day[cal_day_match]+'"';
		}else if(calObject[calObj].month[cal_day_cnt] != undefined){
			dayClass = ' class="'+calObject[calObj].month[cal_day_cnt]+'"';
		}else if(calObject[calObj].week["flag"] != undefined){
			if(cal_start_day == 0 && calObject[calObj].week["Mon"] != undefined){
				dayClass = ' class="'+calObject[calObj].week["Mon"]+'"';
			}else if(cal_start_day == 1 && calObject[calObj].week["Tue"] != undefined){
				dayClass = ' class="'+calObject[calObj].week["Tue"]+'"';
			}else if(cal_start_day == 2 && calObject[calObj].week["Wed"] != undefined){
				dayClass = ' class="'+calObject[calObj].week["Wed"]+'"';
			}else if(cal_start_day == 3 && calObject[calObj].week["Thu"] != undefined){
				dayClass = ' class="'+calObject[calObj].week["Thu"]+'"';
			}else if(cal_start_day == 4 && calObject[calObj].week["Fri"] != undefined){
				dayClass = ' class="'+calObject[calObj].week["Fri"]+'"';
			}else if(cal_start_day == 5 && calObject[calObj].week["Sat"] != undefined){
				dayClass = ' class="'+calObject[calObj].week["Sat"]+'"';
			}else if(cal_start_day == 6 && calObject[calObj].week["Sun"] != undefined){
				dayClass = ' class="'+calObject[calObj].week["Sun"]+'"';
			}else{
				dayClass = ' class="undefined"';
			}
		}else{
			dayClass = ' class="undefined"';
		}

		if(calObject[calObj].text[cal_day_match]){
			text_f = "<span class=\""+calObject[calObj].text[cal_day_match]+"\">";
			text_b = "</span>";
		}else{
			text_f = "<span>";
			text_b = "</span>";
		}
		//Click to Action
		var clickActions = "";
		if(calObject[calObj].click["day"] == calObject[calObj].day[cal_day_match] && calObject[calObj].click["url"] != undefined)
			clickActions = " onclick=\"location.href='"+calObject[calObj].click["url"]+cal_day_match+"'\"";
		cal_tags += "<li"+dayClass+clickActions+">" + text_f + cal_day_cnt + text_b + "</li>";
		if(cal_start_day == 6){
			cal_start_day = 0;
		}else{
			cal_start_day++;
		}
	}
	while(cal_start_day <= 6 && cal_start_day != 0){
		cal_tags += "<li><span>&nbsp;</span></li>";
		cal_start_day++;
	}
	cal_tags += "</ul>";
	document.getElementById(calObj).innerHTML = cal_tags;
}
writeCal(calObject[cal_Id].cal_year,calObject[cal_Id].cal_month,calObject[cal_Id].cal_day,cal_Id);
