//CHART
function updateSWF(chart,json){
  tmp = getFlashMovieObject(chart);
  tmp.load(JSON.stringify(json));
}

function getFlashMovieObject(movieName){
  if (window.document[movieName]){
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1) {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else {
    return document.getElementById(movieName);
  }
}


function hideGraph(XMLHttpRequest, textStatus, errorThrown)  { }

OFC = {};
OFC.jquery = {
    name: "jQuery",
    version: function(src) { return $('#'+ src)[0].get_version() },
    rasterize: function (src, dst) { $('#'+ dst).replaceWith(OFC.jquery.image(src)) },
    image: function(src) { return "<img src='data:image/png;base64," + $('#'+src)[0].get_img_binary() + "' />"},
    popup: function(src) {
        var img_win = window.open('','','');
        with(img_win.document) {
            write('<html><head><title>Charts: Export as Image<\/title><\/head><body>' + OFC.jquery.image(src) + '<\/body><\/html>') }
		img_win.document.close();
     }
}
if (typeof(Control == "undefined")) {var Control = {OFC: OFC.jquery}}
function save_image() {OFC.jquery.popup('ichart')}


$(function() {
	
	$(".type").change(function(){
		$type = $(this);
		type = $type.val();
		id = $type.attr("id");
		sezione = id.substr(id.length-3,1);
		sub = id.substr(id.length-1);

		$scenario = $("#scenario-"+sezione+"-"+sub);
		scenario = $scenario.val();
		
		$scenario.emptySelect();
		$.getJSON("ajax/getScenariOptions.php?type="+type+"&target="+id+"&scenario="+scenario,
				  function(data){ 
				  	if(data){ $scenario.attr("disabled",false).loadSelect(data);update([Number(sezione)]);}
				  	else { $scenario.attr("disabled",true);}
				  }
		);
	});
	
	$(".scenari").change(function(){
		id = $(this).attr("id");
		sezione = id.substr(id.length-3,1);
		update([Number(sezione)]);
		});
	
	var is_checkbox = $("#variabili-1").hasClass("is-checkbox");
	$("#variabili-1").checkboxTree({
		collapsedarrow: "images/checkboxtree/img-arrow-collapsed.gif",
		expandedarrow: "images/checkboxtree/img-arrow-expanded.gif",
		blankarrow: "images/checkboxtree/img-arrow-blank.gif",
		checkchildren: false,
		checkparents: false,
		collapsed: false,
		hidecbwithjs:false,
		is_multiple: is_checkbox,
		checkedClass: "checked"
	});
	
	$("#variabili-1 label").mouseup(function(){
		$input = $(this).prev("input");
		
		var titolo = $input.attr("title");
		$("#titolo-1 span").html(titolo);
		$("#querybuilder-1 input[name='titolo']").val(titolo);
		
		var descrizione = $input.attr("description");
		$("#text-1-0").html(descrizione);
		$("#querybuilder-1 input[name='descrizione']").val(escape(descrizione));
		update([1]);
		});	
	
	var is_checkbox = $("#variabili-2").hasClass("is-checkbox");
	$("#variabili-2").checkboxTree({
		collapsedarrow: "images/checkboxtree/img-arrow-collapsed.gif",
		expandedarrow: "images/checkboxtree/img-arrow-expanded.gif",
		blankarrow: "images/checkboxtree/img-arrow-blank.gif",
		checkchildren: false,
		checkparents: false,
		collapsed: false,
		hidecbwithjs:false,
		is_multiple: is_checkbox,
		checkedClass: "checked"
	});
	
	$("#variabili-2 ul label").mouseup(function(){
		$input = $(this).prev("input");
		
		var titolo = $input.attr("title");
		$("#titolo-2 span").html(titolo);
		$("#querybuilder-2 input[name='titolo']").val(titolo);
		
		var descrizione = $input.attr("description");
		$("#text-2-0").html(descrizione);
		$("#querybuilder-2 input[name='descrizione']").val(escape(descrizione));
		
		update([2]);
	});	

	var is_checkbox = $("#variabili-2").hasClass("is-checkbox");
	$("#variabili-3").checkboxTree({
		collapsedarrow: "images/checkboxtree/img-arrow-collapsed.gif",
		expandedarrow: "images/checkboxtree/img-arrow-expanded.gif",
		blankarrow: "images/checkboxtree/img-arrow-blank.gif",
		checkchildren: false,
		checkparents: false,
		collapsed: false,
		hidecbwithjs:false,
		is_multiple: is_checkbox,
		checkedClass: "checked"
	});
	
	$("#variabili-3 ul label").mouseup(function(){
		$input = $(this).prev("input");
		
		var titolo = $input.attr("title");
		$("#titolo-3 span").html(titolo);
		$("#querybuilder-3 input[name='titolo']").val(titolo);
		
		var descrizione = $input.attr("description");
		$("#text-3-0").html(descrizione);
		$("#querybuilder-3 input[name='descrizione']").val(escape(descrizione));
		
		update([3]);
		
	});	
	
	$("#world").click(function(){
		$("#region_trigger a").removeClass("current");
		$("input[id=areas]").val($("input[name=world]").val());
		$(this).addClass("current");
		update([3]);
		return false;
	});
	
	$("#oecd").click(function(){
		$("#region_trigger a").removeClass("current");
		$("input[id=areas]").val($("input[name=oecd]").val());
		$(this).addClass("current");
		update([3]);
		return false;
	});
	
	$("#noecd").click(function(){
		$("#region_trigger a").removeClass("current");
		$("input[id=areas]").val($("input[name=noecd]").val());
		$(this).addClass("current");
		update([3]);
		return false;
	});
	
	var $v = $("#variabili-1 :checked");
	$("#titolo-1  span").html($v.attr("title"));
	$("#querybuilder-1 input[name='titolo']").val(escape($v.attr("title")));
	
	$("#text-1-0").html($v.attr("description"));
	$("#querybuilder-1 input[name='descrizione']").val(escape($v.attr("description")));
	
	$v = $("#variabili-2 :checked");
	$("#titolo-2  span").html($v.attr("title"));
	$("#querybuilder-2 input[name='titolo']").val(escape($v.attr("title")));
	
	$("#text-2-0").html($v.attr("description"));
	$("#querybuilder-2 input[name='descrizione']").val(escape($v.attr("description")));
	

	$v = $("#variabili-3 :checked");
	$("#titolo-3  span").html($v.attr("title"));
	$("#querybuilder-3 input[name='titolo']").val(escape($v.attr("title")));
	
	$("#text-3-0").html($v.attr("description"));
	$("#querybuilder-3 input[name='descrizione']").val(escape($v.attr("description")));
	
	$("#report-1").click(function(e){
		e.stopPropagation();
		var target = navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? "_self" : "_blank";
		$("#querybuilder-1").attr("action","reports.php").attr("target",target).submit();
	});
	$("#report-2").click(function(e){
		e.stopPropagation();
		var target = navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? "_self" : "_blank";
		$("#querybuilder-2").attr("action","report.php?graph=2-1").attr("target",target).submit();
	});
	$("#report-3").click(function(e){
		e.stopPropagation();
		var target = navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? "_self" : "_blank";
		$("#querybuilder-3").attr("action","reports.php").attr("target",target).submit();
	});

});


function validate(){
	return true;
}

function update(what){

	if($.inArray(1,what)>-1){
		
		var options = { 
				url:		'ajax/getLabels.php',
				type:		'post',
				success:	function(data){$("#labels-1").html(data);$("#querybuilder-1 input[name='legenda']").val(escape(data))},
				dataType:	'html'
		}; 
		$("#querybuilder-1").ajaxSubmit(options);

		var options = { 
				url:		'ajax/getTxt.php',
				type:		'post',
				success:	function(data){updateTXT(1,data)},
				dataType:	'json'
		}; 
		$("#querybuilder-1").ajaxSubmit(options);
		
		var options = { 
				url:		'jsongraph.php?graph=1-1',
				type:		'post',
				success:	function(data){updateSWF("ichart-1-1",data);},
				error: 		hideGraph,
				dataType:	'json'
		}; 
		$("#querybuilder-1").ajaxSubmit(options);

		var options = { 
				url:		'jsongraph.php?graph=1-2',
				type:		'post',
				success:	function(data){updateSWF("ichart-1-2",data);},
				error: 		hideGraph,
				dataType:	'json'
		}; 
		$("#querybuilder-1").ajaxSubmit(options);
	}

	if($.inArray(2,what)>-1){
		
		var options = { 
				url:		'ajax/getLabels.php',
				type:		'post',
				success:	function(data){$("#labels-2").html(data);$("#querybuilder-2 input[name='legenda']").val(escape(data))},
				dataType:	'html'
		}; 
		$("#querybuilder-2").ajaxSubmit(options);
		
		var options = { 
				url:		'jsongraph.php?graph=2-1',
				type:		'post',
				success:	function(data){updateSWF("ichart-2-1",data);},
				error: 		hideGraph,
				dataType:	'json'
		};
		$("#querybuilder-2").ajaxSubmit(options);
	}
	
	if($.inArray(3,what)>-1){
		
		var options = { 
				url:		'ajax/getLabels.php',
				type:		'post',
				success:	function(data){$("#labels-3").html(data);$("#querybuilder-3 input[name='legenda']").val(escape(data))},
				dataType:	'html'
		}; 
		$("#querybuilder-3").ajaxSubmit(options);
		
		var options = { 
				url:		'ajax/getTxt.php',
				type:		'post',
				success:	function(data){updateTXT(3,data)},
				dataType:	'json'
		}; 
		$("#querybuilder-3").ajaxSubmit(options);
		
		var options = { 
				url:		'jsongraph.php?graph=3-1',
				type:		'post',
				success:	function(data){updateSWF("ichart-3-1",data);},
				error: 		hideGraph,
				dataType:	'json'
		}; 
		
		$("#querybuilder-3").ajaxSubmit(options);
		
		var options = { 
				url:		'jsongraph.php?graph=3-2',
				type:		'post',
				success:	function(data){updateSWF("ichart-3-2",data);},
				error: 		hideGraph,
				dataType:	'json'
		}; 
		
		$("#querybuilder-3").ajaxSubmit(options);
	}
	
	return false;
}

function updateTXT(s,json){
	if(json.length>1){
		$.each(json,function(i,data){
			$("#text-"+s+"-"+(i+1)).html(data.descrizione);
		});
	}
	else{
		data = json[0];
		$("#text-"+s+"-1").html(data.descrizione);
		$("#text-"+s+"-2").html(data.descrizione);
	}
}

var ajax_load = "<img class='preloader' src='images/preloader.gif' alt='loading...' />";
//FORM
$.fn.resetSelect = function(){
	return this.each(function(){
		if (this.tagName=='SELECT')
			$(this).val($('option:first', this).val()); 
	});
}
$.fn.emptySelect = function() {
    return this.each(function(){
        if (this.tagName=='SELECT') this.options.length = 0;
	});
}
$.fn.loadSelect = function(opts) {
	return this.emptySelect().each(function(){
		if (this.tagName=='SELECT') {
			var selectElement = this;
			$.each(opts,function(index,opt){
				var selected = opt.selected ? true : false;
          		var option = new Option(opt.caption,opt.value,false,selected);

	          	if ($.browser.msie) {
	            	selectElement.add(option);
	          	}
	          	else {
	            	selectElement.add(option,null);
	          	}
			});
			
			if($("option",this).size()<=1) $(this).addClass("disabled");
			else $(this).removeClass("disabled");

		}
	});
}
$.fn.addFormField = function(opts){
	return this.each(function(){
		if (this.tagName=='FORM'){
			$(this).append("<input type='"+opts.type+"' name='"+opts.name+"' value='"+opts.value+"' class='extraInput'>");
		}
	});
}
