$(document).ready(function() {
	$.ajaxSetup({
	  cache: false
	});

	_initFrontPage();
});

function _initFrontPage() {
	//$("#content").load("home.html");
	$("#content").load("programme.html", null, _initProgram);
	_initNews();
	
	$("#menu-programme").bind("click", function() {
		$("#content").load("programme.html", null, _initProgram);
	});
	$("#menu-abo").bind("click", function() {
		$("#content").load("abo.html");
	});
	$("#menu-location").bind("click", function() {
		$("#content").load("location.html");
	});
	$("#menu-artistes").bind("click", function() {
		$("#content").load("artistes.html");
	});
	$("#menu-photos").bind("click", function() {
		$("#content").load("photos.html", null, _setupPhotos);
	});
	$("#menu-archives").bind("click", function() {
		$("#content").load("archives.html");
	});
	$("#menu-historique").bind("click", function() {
		$("#content").load("historique.html");
	});
	$("#menu-liens").bind("click", function() {
		$("#content").load("liens.html");
	});
}

function _initNews() {
	$.ajax({
		type: "GET",
		url: "prog.xml",
		data: {},
		cache: false,
		dataType: ($.browser.msie) ? "text" : "xml",
	   success: function(data){
	     var xml;
	     if (typeof data == "string") {
	       xml = new ActiveXObject("Microsoft.XMLDOM");
	       xml.async = false;
	       xml.loadXML(data);
	     } else {
	       xml = data;
	     }
	     _parseNews(xml);
	   }
	});	
}

function _initProgram() {
	$("#content").append($.IMG({id:"loading",src:"images/loading.gif"}));
	$.ajax({
		type: "GET",
		url: "prog.xml",
		data: {},
		cache: false,
		dataType: ($.browser.msie) ? "text" : "xml",
	   success: function(data){
	     var xml;
	     if (typeof data == "string") {
	       xml = new ActiveXObject("Microsoft.XMLDOM");
	       xml.async = false;
	       xml.loadXML(data);
	     } else {
	       xml = data;
	     }
	     _parseProgram(xml);
	   }
	});	
}

function _parseProgram(xml,status) {
	$("#loading").remove();

	var progMonth = null;
	var currentYear = new Date().getFullYear();
	var currentMonth = new Date().getMonth() + 1;

	$(xml).find("prog entry").each(function(i) {
		var entry = this;
		var year = parseInt($(entry).attr("year"));
		var date = $("date",entry);
		var comment = entry.getAttribute("comment");
		
		if (comment != null) {
			$("#content table tbody").append($.TR({},
				$.TD({colSpan:4},
					$.H3({className:"prog-month"}, comment)
				)
			));
		}

		if (year == currentYear && currentMonth > parseInt(date.attr("month"))) return true;

		var month = entry.getAttribute("month") + " " + entry.getAttribute("year");
		if (month != progMonth) {
			progMonth = month;
			$("#content table tbody").append($.TR({},
				$.TD({colSpan:4},
					$.H3({className:"prog-month"}, progMonth)
				)
			));
		}

		var images = $("image",entry);
		var title = $("title",entry).text();
		var otherImages = $.SPAN({});
		if (images.length > 0) {
			for (var j = 0; j < images.length; j++) {
				var src = $(images[j]).attr("src");
				if (j == 0) {
					title = $.A({href:"images/prog/"+src,className:"box",title:title}, title);
				} else {
					$(otherImages).append(
						$.A({className:"box", 
							href:"images/prog/"+src,
							title:title}, "(page 2)")
					)
				}			
			}
		}
		
		$("#content table tbody").append($.TR({className:"prog-entry"},
			$.TD({className:"prog-date"}, date.text()),
			$.TD({className:"prog-time"}, $("time",entry).text() || " "),
			$.TD({className:"prog-price"}, $("price",entry).text() || " "),
			$.TD({className:"prog-title"}, 
				title , " ", otherImages
			)
		));
	});

	_setupPhotos();
}

function _setupPhotos() {
	$("a.box").fancybox(); 
}

function _parseNews(xml) {
	var progMonth = null;
	var currentYear = new Date().getFullYear();
	var currentMonth = new Date().getMonth() + 1;
	var newsCounter = 0;
	$(xml).find("prog entry").each(function(i) {
		var entry = this;
		var year = parseInt($(entry).attr("year"));
		var date = $("date",entry);
		if (year == currentYear && currentMonth > parseInt(date.attr("month"))) return true;
		
		if (newsCounter > 1) return false;
		newsCounter++;
		
		$("#next-dates").append($.P({}, 
			$.DIV({},$.STRONG({}, date.text())), 
			$.DIV({},$("title",entry).text())
		));
	});

	$("#next-dates").append($.P({}, 
		$.A({className:"more-info",href:"#"}, "plus d'info...")
	));
	$(".more-info").bind("click", function() {
		$("#menu-programme").click();
	});
}


