//------------------- //...Helper functions //------------------- //-------------------------------- //...Events and requests handling //-------------------------------- function createRequestObject() { var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } return xmlhttp; } //------------------------------------------------ function prepareLink(type) { var refid = document.getElementById("refid") ? document.getElementById("refid").value : ''; var id = document.getElementById("id") ? document.getElementById("id").value : ''; var period = document.getElementById("period") ? document.getElementById("period").value : ''; var outFormat = document.getElementById("out_format") ? document.getElementById("out_format").value : ''; var parameters_bien = document.getElementById("parameters_bien") ? document.getElementById("parameters_bien").value : ''; var parameters_am = document.getElementById("parameters_am") ? document.getElementById("parameters_am").value : ''; if (refid === '' || id === '' || period === '' || outFormat === '' || (parameters_bien === '' && parameters_am === '')) { return ''; } //...prepare request var link = 'chart_client.pl?' + 'type=' + type + '&refid=' + refid + '&id=' + id + '&period=' + period + '&outformat=' + outFormat + '¶meters_bien=' + parameters_bien + '¶meters_am=' + parameters_am; return link; } function warning(msg) { if (msg != '') { alert(msg); } } //------------------------------------------------ //....Send request to load chart //------------------------------------------------ function sendRqst(type) { //...prepare request in order to update form var link = prepareLink(type); if (link == '') { return; } var httpReq = createRequestObject(); httpReq.open('get', link); httpReq.onreadystatechange = function(){handleResponse(httpReq);}; httpReq.send(null); } //------------------------------------------------ //...Handler for common requests //------------------------------------------------ function handleResponse(req) { if(req.readyState == 4) { if (req.status == 200) { var response = req.responseText; var jsonResponse = JSON.parse(response); if(jsonResponse.msg == "chart_data_ok") { document.getElementById('loading').innerHTML = ''; var json = jsonResponse.chart_data; showCharts(json); } else { document.getElementById('loading').innerHTML=jsonResponse.msg; } } //...HTTP_STATE_OK = 200 } //...READY_STATE_COMPLETE == 4 } //------------------------------------------------ //...Show chart //------------------------------------------------ function showCharts(json) { // override chart count to ensure correct resizing chartCount = function () { return json.Charts.length; } // prepare dlg dlgPrepare(); // show charts prepareCharts(json); } //------------------------------------------------ //...On load //------------------------------------------------ $(function () { // On DOM ready... sendRqst('load_chart'); });