/* ChartFactory */
function chartFillAxisTime(formId, ajaxUrl) {
  if (!document.getElementById(formId))
    return;
  var i = 1;
  var max = 10;
  var lastVal = '';
  while (i <= 10) {
    var aNode = getFormFieldByName(formId, 'axisTime' + i);
    if (aNode.value != '') {
      lastVal = aNode.value;
    }
    var vNode = getFormFieldByName(formId, 'value' + i);
    if (vNode.value != '' && aNode.value == '') {
      lastVal = setFieldvalueAjaxText(ajaxUrl + lastVal, aNode);
      return;
    }
    i++;
  }
  alert('Csak értékkel rendelkező mezők időtengelye kerül kitöltésre!');
}

function chartQueryAllNone(id, on) {
  var val = on ? "checked" : "";
  $("#"+id).children("input.c").attr("checked", val);
}

function chartItemQueryUpdate() {
  var url = '/editor/charts/chartitemquery.html';
  var holder = $('div.chartItemQueryHolder');
  var curl = '/editor/charts/getchart.html';
  var cholder = $('div#chartItemQueryChartHolder');
  var theform = holder.children('form');
  var formData = theform.serializeArray();
  chartIQFormData = formData;

  $('div#loading').show();

  // load table
  holder.empty();
  holder.load(webroot + url, formData, function(response, status, xhr) {
      if (status == "error") {
	holder.html(xhr.status + " " + xhr.statusText);
      }
      $('div#loading').hide();
    });

 
}

function chartItemQueryToChart(targetId) {
  var holder = $('div.chartItemQueryHolder');
  var curl = '/editor/charts/getchart.html';
  var cholder = $('div#chartItemQueryChartHolder');
  var formData = chartIQFormData;
  $('div#loading').show();
  // load chart
  $.ajax({
    type: "POST",
	url: webroot + curl,
	data: formData,
	//	async: false,
	dataType: "json",
	success: function(response, status, xhr) {
	// global scope
	var jdata = response;

	swfobject.embedSWF(webroot + "/flash/open-flash-chart.swf", targetId, "600", "350", "9.0.0", {allowScriptAccess: "always"});
	alert('Loading');
	//	alert(JSON.stringify(jdata));
	findSWF(targetId).load( JSON.stringify(jdata));
	$('div#loading').hide();
      }
    });
}


function ofc_ready(){ 

}

function chartItemQueryReset(id, type) {
  var url = '/editor/charts/chartitemquery.html';
  var holder = $('div.chartItemQueryHolder');
  holder.empty();
  $('div#loading').show();
  holder.load(webroot + url + '?resetForm=1&queryid=' + id + '&querytype=' + type, function(response, status, xhr) {
      if (status == "error") {
	holder.html(xhr.status + " " + xhr.statusText);
      }
      $('div#loading').hide();
    });
 
}

function chartQueryDSTChange(node) {
  var url = '/editor/charts/chartquery.html';
  //  var theform = $(node).parents('form');
  var data = $(node).parents('form').serializeArray();
  var holder =   $(node).parents('div.chartQueryHolder');
  /* holder.empty();
     $('div#loading').show();*/
displayLoadingBox(holder);
  holder.load(webroot + url, data, function(response, status, xhr) {
      //   $('div#loading').hide();
    });
}

function chartValueModAjax(id, params) {
  var url = '/editor/charts/modvalue.html?id=';
  $('div#loading').show();
  $("#"+id+' > span.cval').load(webroot + url + id + params, function(response, status, xhr) {
      $('div#loading').hide();
    });
}

function chartQueryDCChange(node) {
  var p = node.parentNode;
  for( var i=0; i<p.childNodes.length; i++) {
    if (p.childNodes[i].className && p.childNodes[i].className == 'c' && p.childNodes[i].checked) {
      return;
    }
  }

  var dstid = p.getAttribute('name').split('-')[1];
  var pp = p.parentNode;
  for( var i=0; i<pp.childNodes.length; i++) {
    if (pp.childNodes[i].localName && pp.childNodes[i].localName.toLowerCase() == 'input' && pp.childNodes[i].value == dstid) {
      pp.childNodes[i].checked = false;
      chartQueryDSTChange(pp.childNodes[i]);
    }
  }
}

function chartQueryUpdate(response, node) {
  //  alert(response.responseText);
}

function displayLoadingBox(node) {
  node.html('<div class="cqloading"><img src="' + webroot + '/images/loading.gif" alt="loading" /></div>');
}

function chartQueryDateDisplay(node, targetId) {
  if (!document.getElementById(targetId))
    return;
  if (node.checked) {
    document.getElementById(targetId).style.display = 'block';
  } else {
    document.getElementById(targetId).style.display = 'none';
  }
}

function chartQueryAutoSwitch(node, targetId) {
  if (!document.getElementById(targetId))
    return;
  if (node.checked) {
    document.getElementById(targetId).value = '';
    document.getElementById(targetId).disabled = 'disabled';
  } else {
    document.getElementById(targetId).disabled = false;
  }
}

function chartSaveImage(id, chartid, debug) {
  var url = "/editor/charts/saveimage.html";
  var data = findSWF(chartid).get_img_binary();
  var holder = $('#' + chartid + '-imageresults');
  holder.empty();
  $('div#loading').show();
  holder.load(url, { 'img': data, 'id': id }, function(response, status, xhr) {
      if (status == "error") {
	holder.html(xhr.status + " " + xhr.statusText);
      } 
      $('div#loading').hide();
    });
}

function chartCheckDerivationForm(formId) {
  var resultsNode = $("#derivationAjaxSubmitResults");
  var url = '/editor/charts/derivation-ajaxcheck.html';
  var surl = '/editor/charts/derivation-submit.html';
  var theform = $("#" + formId);
  $('div#loading').show();
  $.ajax({
    url: webroot + url,
	type: "POST",
	data: theform.serializeArray(),
	success: function(data) {
	resultsNode.html("");
	if (!data.length) {
	  $("#" + formId + " label").removeClass("inputerror");
	  resultsNode.load(webroot + surl, theform.serializeArray());
	} else {
	  var errors = data.split(",");
	  $("#" + formId + " label").each(function (i) {
	      var node = $(this);
	      if (jQuery.inArray($("#" + node.attr("for")).attr("name"), errors) > -1) {
		if (!node.hasClass("inputerror")) {
		  node.addClass("inputerror");
		}
	      } else {
		if (node.hasClass("inputerror")) {
		  node.removeClass("inputerror");
		}
	      }
	    });
	}
	$('div#loading').hide();
      },

	});
}

function ajaxError(holder, response, status, xhr) {
  if (status == "error") {
    holder.html(xhr.status + " " + xhr.statusText);
  }
}
