var STD_weekdays=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var STD_months=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var STD_daysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

var ie=false;

function main(){
	if(window.ActiveXObject){
		ie=true;
	}
	
	var schedule=new XMLHttpRequest();
	schedule.open("GET","schedule.xml",false);
	schedule.send(null);
	
	var content=document.getElementById("content");
	
	createSchedule(content,schedule.responseXML.documentElement);
	createDateSelector(content,schedule.responseXML.documentElement);
	createToday(content);
}
function createSchedule(div,schedule){
	var months;
	var month;
	var month_header;
	var month_name;
	
	var days;
	var day;
	var day_header;
	var day_date;
	
	var slots;
	var slot;
	var slot_span;
	var slot_time;
	var slot_movie;
	
	var back_to_top;
	
	var i;
	var j;
	var k;
	
	months=schedule.getElementsByTagName("month");	
	for(i=0;i<months.length;i++){
		month_name=months[i].getAttribute("name");
		
		month=document.createElement("div");
		month.id=month_name;
		
		back_to_top=document.createElement("a");
		back_to_top.href="#";
		back_to_top.className="back-to-top";
		back_to_top.appendChild(document.createTextNode("back to top"));
		
		month.appendChild(back_to_top);
		
		month_header=document.createElement("h2");
		month_header.appendChild(document.createTextNode(month_name));
		month.appendChild(month_header);
		
		days=months[i].getElementsByTagName("day");
		for(j=0;j<days.length;j++){			
			day_date=days[j].getAttribute("date");
			
			day_header=document.createElement("h3");
			day_header.id=day_date;
			day_header.appendChild(document.createTextNode(day_date));
			
			month.appendChild(day_header);
			
			day=document.createElement("ul");
			day.id=day_date+"-slots";
			month.appendChild(day);
			
			slots=days[j].getElementsByTagName("slot");
			for(k=0;k<slots.length;k++){				
				slot_time=slots[k].getAttribute("time");
				slot_movie=slots[k].getAttribute("movie");
				
				slot=document.createElement("li");
				day.appendChild(slot);
				
				slot_span=document.createElement("span");
				slot_span.className="time";
				slot_span.appendChild(document.createTextNode(slot_time));
				slot.appendChild(slot_span);
				
				slot_span=document.createElement("span");
				slot_span.appendChild(document.createTextNode(slot_movie));
				slot.appendChild(slot_span);
			}
		}
		
		div.appendChild(month);
	}
}
function createDateSelector(div,schedule){
	var months=schedule.getElementsByTagName("month");
	
	var date_navigation;
	var span;
	var month_selector;	
	var month_selector_option;
	var button;
	
	date_navigation=document.createElement("div");
	date_navigation.id="date-navigation";	
	
	span=document.createElement("span");
	span.appendChild(document.createTextNode("select a date: "));
	date_navigation.appendChild(span);
	
	month_selector=document.createElement("select");
	month_selector.id="month-selector";
	
	for(var i=0;i<months.length;i++){
		month_selector_option=document.createElement("option");
		month_selector_option.text=months[i].getAttribute("name");
		
		if(ie==true){
			month_selector.add(month_selector_option);
		}else{
			month_selector.add(month_selector_option,null);
		}
	}
	date_navigation.appendChild(month_selector);
	
	button=document.createElement("input");
	button.type="button";
	button.value="GO";
	button.onclick=date_selector_click;
	date_navigation.appendChild(button);
	
	div.insertBefore(date_navigation,div.firstChild);
}
function date_selector_click(){
	var month_selector=document.getElementById("month-selector");
	var selected=month_selector.options[month_selector.selectedIndex];
	var month=selected.text;
	
	window.location.href="#"+month;
}
function createToday(div){
	var td=new Date();
	var date_id=STD_months[td.getMonth()]+"-"+td.getDate()+"-"+td.getFullYear();
	
	var today=document.createElement("div");
	today.id="today";
	
	var today_header=document.createElement("h2");
	today_header.appendChild(document.createTextNode("Today"));
	today.appendChild(today_header);
	
	var date_header=document.createElement("h3");
	date_header.appendChild(document.createTextNode(date_id));
	today.appendChild(date_header);
	
	var today_slots=document.getElementById(date_id+"-slots");
	var clone=today_slots.cloneNode(true);
	clone.id="today-slots";
	
	today.appendChild(clone);
	
	div.insertBefore(today,div.firstChild);
}

window.onload=main;