
//var webserviceURL = 'api.php';
var webserviceBase = '/hirt';
//var webserviceBase = '/hirt/hirt';
var reportCode = undefined;
var requestCode = Math.floor(999999 * Math.random());

Event.observe(window, 'load', function() {

  //Event.observe('submitReport', 'click', showHIRT);

  Event.observe('report_close', 'click', hideHIRT);

  // for development
  //showHIRT();
  
});

function showHIRT() {
	//alert(getClientWidth() + ' x  ' + getClientHeight());
	$('cover').style.width = getClientWidth() + 'px';
	$('cover').style.height = getClientHeight() + 'px';
	$('cover').style.visibility = 'visible';
	$('reportContainer').style.top = ( (getClientHeight() / 2) - 400/2 ) + 'px';
	$('reportContainer').style.left = ( (getClientWidth() / 2) - 640/2 ) + 'px';
	$('reportContainer').style.visibility = 'visible';
	
	$('report_body').update("Loading report questions...");
	loadNextSet();
	
}

function hideHIRT() {
	$('cover').style.visibility = 'hidden';
	$('reportContainer').style.visibility = 'hidden';
}

function loadNextSet(lastSetId) {

	var lastSetId = (lastSetId == null) ? "" : lastSetId;

	if (reportCode == undefined) {
		getReportCode();
		/* getReportCode will use a callback to call loadNextSet again once reportCode is known */
		return;
	}
	
	updater = new Ajax.Updater('report_body', webserviceBase+"/set.php/"+lastSetId+"/_/html/"+reportCode, {
		method: 'GET'
	});
}

function doNext(lastSetId) {
	
	/* store */
	formData = $('hirtForm').serialize(true);
	//alert( Object.toJSON(formData) );
	
	var headers = new Array;
	headers[0] = "X-JSON";
	headers[1] = Object.toJSON(formData);
	
	new Ajax.Request(webserviceBase + '/report.php/'+reportCode, {
		  method: 'PUT',
		  asynchronous: false,
		  requestHeaders: headers,
		  onSuccess: function(transport) {
		    
		  }
		});

	loadNextSet(lastSetId);
	
}

function getClientWidth() {
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function getClientHeight() {
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function getReportCode() {

	new Ajax.Request(webserviceBase+"/report.php", {
		method: 'post',
		onSuccess: function(response) {
			reportCode = response.headerJSON.reportCode;
			loadNextSet();
		},
		parameters: {
			requestCode: requestCode
		}
	});

}
