

function Dump(d,l) {
    if (l == null) l = 1;
    var s = '';
    if (typeof(d) == "object") {
        s += typeof(d) + " {\n";
        for (var k in d) {
            for (var i=0; i<l; i++) s += "  ";
            s += k+": " + Dump(d[k],l+1);
        }
        for (var i=0; i<l-1; i++) s += "  ";
        s += "}\n"
    } else {
        s += "" + d + "\n";
    }
    return s;
}



window.greenfw = new Object();

window.greenfw.runCommands = function(command_list){
	
	len = command_list.length;
	for (i = 0; i < len; i++){
	
		switch (command_list[i].name){
			
			case 'add_document_head_item':
			
				//document.all.tags("HEAD")[0].innerHTML = 
				//	document.all.tags("HEAD")[0].innerHTML 
				//	+ command_list[i].data.text;
				//alert(document.all.tags("HEAD")[0].innerHTML);
				
			break;

			case 'runjs':
			
				eval(command_list[i].data);
			
			break;
			
			case 'redirect':
				if (command_list[i].data) document.location = command_list[i].data;
			break;
			
		}//sw
	
	}//for

}

window.greenfw.ajaxGetHtml = function(data){
	
	var d = {
		url: 'http://'+window.greenfw.config.controller.live_site,
		dataType: 'json'
	}
	
	if (data.data){
		d.data = data.data;
	}
	
	window.greenfw.loading_state(1);
	
	d.success = (function(req_data){return function(data, textStatus, XMLHttpRequest){
		window.greenfw.loading_state(0);
		if (data && data.commands) window.greenfw.runCommands(data.commands);
		if (req_data.success) req_data.success(data);										
	}})(data);
	
	/*d.error = function(XMLHttpRequest, textStatus, errorThrown){
		alert(textStatus);
	}*/
/*if (data.success){
		d.success = data.success;
	}*/

	d.data.m = 'ajax_get_html';
	
	jQuery.ajax(d);
}

window.greenfw.ajaxPost = function(form, data){

	var action = jQuery(form).attr("action");

	var d = {
	  type: 'POST',
		url: action+'&m=ajax_request',
		//data: jQuery(form).serialize(),
		dataType: 'json'
	};
	
	window.greenfw.loading_state(1);
	
	d.success = (function(req_data){return function(data, textStatus, XMLHttpRequest){
		window.greenfw.loading_state(0);
		if (data && data.commands) window.greenfw.runCommands(data.commands);
		if (req_data.success) req_data.success(data);										
	}})(data);
	
	jQuery(form).append('<input type=\"hidden\" name=\"m\" value=\"ajax_request\">')
	jQuery(form).ajaxSubmit(d);
}

window.greenfw.ajaxRequest = function(data){

	var d = {
		url: 'http://'+window.greenfw.config.controller.live_site,
		dataType: 'json'
	}
	
	if (data.data){
		d.data = data.data;
	}
	
	window.greenfw.loading_state(1);
	
	d.success = (function(req_data){return function(data, textStatus, XMLHttpRequest){
		window.greenfw.loading_state(0);
		if (data && data.commands) window.greenfw.runCommands(data.commands);
		if (req_data.success) req_data.success(data);										
	}})(data);

	d.data.m = 'ajax_request';
	
	jQuery.ajax(d);
}

window.greenfw.loading_state = function(state){
	
	if (state){
		jQuery("#loading-indicator").show();
	} else {
		jQuery("#loading-indicator").hide();
	}
	
}







jQuery(document).ready(function(){
	
	if (!jQuery(".errors-canvas").length){
		jQuery("body").append("<div class=\"errors-canvas\"></div>");
	}
	
	jQuery(".errors-canvas").ajaxError(function(e, xhr, settings, exception) {
		//alert(Dump(exception));
		jQuery(this).html(exception);
	});
	
});


