$(document).ready(
	function()
	{		
		$("#loader")
			.ajaxStart(startAjaxRequest)
			.ajaxStop(stopAjaxRequest)
			//.ajaxSuccess(handleResponse)
			//.ajaxError(handleError)
			.hide();
		$(".ex").click(
			function()
			{
				var a = $(this);
				
				$("#loader").show("fast");
				
				$("#example")
					.animate({height: "hide"}, "fast")
					.find("#anchors").empty()
					.end()
					.find("div").remove()
					.end()
					.animate(
						{height: "hide"}, 
						"fast",
						function()
						{
							$.get(a.attr("href") + "?" + Math.random(), handleResponse);
						}
					);
				
				return false;
			}
		);
		
		$("#changelog div").hide();
		$("#changelog-link").click(
			function(){
				$("#changelog div").toggle();
				return false;
			}
		);
	}
);

function handleResponse(data)
{
	var anchors = $("#anchors");
	var example = $("#example");

	
	$("script[@exec='pre']", data).each(
		function()
		{
			eval($(this, data).text());
		}
	);
		
	//loadCSS($("css", data));
	
	$("item[@type='description']", data).each(
		function(i){
			var obj = $(this);
			var id = "description" + (i > 0 ? "-" + (i + 1) : "");
			
			anchors.append("<li><a href=\"#" + id + "\">" + lStr.description + (i > 0 ? " " + (i + 1) : "") + "</a></li>");
			
			var d = $("<div id=\"" + id + "\"></div>");
			d.append(obj.text()).addClass("fragment");
			example.append(d);
		}
	);	

	$("item[@type='demo']", data).each(
		function(i){
			var obj = $(this);
			var id = "demo" + (i > 0 ? "-" + (i + 1) : "");
			
			anchors.append("<li><a href=\"#" + id + "\">" + lStr.demo + (i > 0 ? " " + (i + 1) : "") + "</a></li>");
			
			var d = $("<div id=\"" + id + "\"></div>");
			d.append(obj.text()).addClass("fragment");
			example.append(d);
		}
	);	

	$("item[@type='alternative']", data).each(
		function(i){
			var obj = $(this);
			var id = "alternative" + (i > 0 ? "-" + (i + 1) : "");
			
			anchors.append("<li><a href=\"#" + id + "\">" + lStr.alternative + (i > 0 ? " " + (i + 1) : "") + "</a></li>");
			
			var d = $("<div id=\"" + id + "\"></div>");
			d.append(obj.text()).addClass("fragment");
			example.append(d);
		}
	);
	
	example.tabs();
	
	$("script[@exec='post']", data).each(
		function()
		{
			eval($(this).text());
		}
	);
	
	example.animate({height: "show"}, "fast");
}

function loadContent(data, callback)
{
	
		
	if(callback) callback();
	
	example.animate({height: "show"}, "fast");
}

function execScripts(scripts)
{
	scripts.each(
		function()
		{
			eval($(this).text());
		}
	);
}

function loadCSS(css)
{
	css.each(
		function(){return;}
	);
}

function startAjaxRequest()
{
		
}

function stopAjaxRequest()
{
	$("#loader").hide("fast");
}

function handleError()
{
}
