//------------------- //...Helper functions //------------------- // ########################################## Spinner object #################################### //-------------------------------------------------------------------------------------------------- //...spinner animation object //-------------------------------------------------------------------------------------------------- function createSpinnerObject() { // animation element var opts = { lines: 11, // 15 The number of lines to draw length: 4, // The length of each line width: 2, // The line thickness radius: 2, // 6The radius of the inner circle corners: 1, // Corner roundness (0..1) rotate: 0, // The rotation offset direction: 1, // 1: clockwise, -1: counterclockwise color: '#000', // #rgb or #rrggbb or array of colors speed: 1, // Rounds per second trail: 60, // Afterglow percentage shadow: false, // Whether to render a shadow hwaccel: false, // Whether to use hardware acceleration className: 'spinner', // The CSS class to assign to the spinner zIndex: 2e9, // The z-index (defaults to 2000000000) top: '-8', // Top position relative to parent in px left: '-16' // Left position relative to parent in px }; var spinner = new Spinner(opts); return spinner; } //-------------------------------------------------------------------------------------------------- function stopSpinnerObject(type) { spinner.stop(getSpinnerTarget(type)); } //-------------------------------------------------------------------------------------------------- function startSpinnerObject(type) { spinner.spin(getSpinnerTarget(type)); disableForm(document.DataAccessForm); } //-------------------------------------------------------------------------------------------------- function getSpinnerTarget(type) { var target; if (type == 'submit_form' || type == 'submit_chart') { target = document.getElementById('spinner_send'); } return target; } //-------------------------------------------------------------------------------------------------- function stopSpinnerObjects() { stopSpinnerObject('submit_chart'); stopSpinnerObject('submit_form'); } var spinner = createSpinnerObject(); // ########################################## Form Handling #################################### //-------------------------------------------------------------------------------------------------- //...Form handling //-------------------------------------------------------------------------------------------------- function disableForm(form){ form.disabled=true; for (i = 0; i < form.length; i++) { var formElement = form.elements[i]; if (true) { formElement.disabled = true; } } } //-------------------------------------------------------------------------------------------------- function enableForm(form){ form.disabled=false; for (i = 0; i < form.length; i++) { var formElement = form.elements[i]; if (true) { formElement.disabled = false; } } } //-------------------------------------------------------------------------------------------------- function warning(msg) { if (msg !== "") { alert(msg); } } //-------------------------------------------------------------------------------------------------- function checkDate() { if (document.getElementById("from").value === '') { document.getElementById("from").focus(); } else if (document.getElementById("to").value === '') { document.getElementById("to").focus(); } } // ########################################## Piwik #################################### //-------------------------------------------------------------------------------------------------- //...Enable Piwik Tracking Support //-------------------------------------------------------------------------------------------------- var pwurl; var pbase; var oscript; if ('https:' == document.location.protocol){ pwurl = 'https:'; } else{ pwurl = 'http:'; } pwurl += '//dienste.dlr.rlp.de/piwik/'; pbase = pwurl + 'piwik.js'; oscript = document.createElement('script'); oscript.type = 'text/javascript'; oscript.defer = true; oscript.async = true; oscript.src = pbase; document.getElementsByTagName('head')[0].appendChild(oscript); // ########################################## AJAX Communication #################################### //-------------------------------------------------------------------------------------------------- //...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) { // get form fields // waage var widArr = new Array(); var waageIdsArr = $('#wid').chosen().val(); if (waageIdsArr !== null && waageIdsArr !== '') { widArr = waageIdsArr; } // Bundesland var blidArr = new Array(); var federalListArr = $('#blid').chosen().val(); if (federalListArr !== null && federalListArr !== '') { blidArr = federalListArr; } // Reg.-Bezirk var rbzidArr = new Array(); var districtListArr = $('#rbzid').chosen().val(); if (districtListArr !== null && districtListArr !== '') { rbzidArr = districtListArr; } // Landkreis var lkidArr = new Array(); var ruralListArr = $('#lkid').chosen().val(); if (ruralListArr !== null && ruralListArr !== '') { lkidArr = ruralListArr; } // date period var fromList = document.getElementById("from"); var from = fromList.options[fromList.selectedIndex].value; var toList = document.getElementById("to"); var to = toList.options[toList.selectedIndex].value; //...prepare request var link = 'tdsa_client.pl?type=' + type + '&wid=' + widArr + '&blid=' + blidArr + '&rbzid=' + rbzidArr + '&lkid=' + lkidArr + '&from=' + from + '&to=' + to; return link; } //-------------------------------------------------------------------------------------------------- //....Interface 1 //-------------------------------------------------------------------------------------------------- function sendRqst(type) { //...prepare request in order to update form var link = prepareLink(type); var httpReq = createRequestObject(); httpReq.open('get', link); httpReq.onreadystatechange = function(){handleResponse(httpReq);}; httpReq.send(null); startSpinnerObject(type); } //-------------------------------------------------------------------------------------------------- //...Callback handler for file download //-------------------------------------------------------------------------------------------------- function handleDownloadResponse (submitreq) { if (submitreq.readyState == 4) { if (submitreq.status == 200) { var responseSubmit = submitreq.responseText; var jsonResponse = JSON.parse(responseSubmit); stopSpinnerObjects(); if (jsonResponse.msg == "aggregation_ok") { //...track it try { var pwt = Piwik.getTracker(pwurl + "piwik.php", 5); pwt.setDocumentTitle("Download_Compare" + cid + "/" + document.getElementById('neighbor_des').firstChild.data); pwt.trackPageView(); pwt.enableLinkTracking(); } catch( err ) {} //...trigger Download var src ='tdsa_dl.pl?' + '&file=' + jsonResponse.file + '&filepath=' + jsonResponse.filepath; window.location = src; } else { warning(jsonResponse.msg); } enableForm(document.DataAccessForm); } //...HTTP_STATE_OK = 200 } //...READY_STATE_COMPLETE == 4 } //-------------------------------------------------------------------------------------------------- //...Callback handler for chart loading //-------------------------------------------------------------------------------------------------- function handleChartResponse (submitreq) { if (submitreq.readyState == 4) { if (submitreq.status == 200) { // ...indicate that chart is loading $('#loading_text').html(''); var responseSubmit = submitreq.responseText; var jsonResponse = JSON.parse(responseSubmit); stopSpinnerObjects(); if(jsonResponse.msg == "chart_data_ok") { stopSpinnerObjects(); var jsonData = jsonResponse.chart_data; showCharts(jsonData); enableForm(document.DataAccessForm); } else { clearCharts(); warning(jsonResponse.msg); } enableForm(document.DataAccessForm); } //...HTTP_STATE_OK = 200 } //...READY_STATE_COMPLETE == 4 } //-------------------------------------------------------------------------------------------------- //...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 == "validate_ok") { // ...start file download if (jsonResponse.action == "submit_form") { var httpDownload; //...prepare link to generate downloadfile var linkDownload = prepareLink('start_download'); httpDownload = createRequestObject(); httpDownload.open('get', linkDownload); httpDownload.onreadystatechange = function () { handleDownloadResponse(httpDownload); }; httpDownload.send(null); } // ...load chart if (jsonResponse.action == "submit_chart") { var httpChart; // ...indicate that chart is loading $('#loading_text').html(jsonResponse.msg_chart_text); //...prepare link to generate chart var linkChart = prepareLink('load_chart'); httpChart = createRequestObject(); httpChart.open('get', linkChart); httpChart.onreadystatechange = function () { handleChartResponse(httpChart); }; httpChart.send(null); } } else { stopSpinnerObjects(); checkDate(); clearCharts(); enableForm(document.DataAccessForm); warning(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; }; chartCount = function () { return 1; }; // prepare dlg dlgPrepare(); // show charts prepareCharts(json); } //------------------------------------------------ //...Show chart //------------------------------------------------ function clearCharts() { emptyCharts(); } //-------------------------------------------------------------------------------------------------- //...onload ready //-------------------------------------------------------------------------------------------------- $(function() { //...enable jquery tooltips for all emlements of document $( document ).tooltip(); // drop down list (chosen init) $("#wid").chosen({width:"280px", no_results_text: "Keine Übereinstimmung für..."}); $("#blid").chosen({width:"280px", no_results_text: "Keine Übereinstimmung für..."}); $("#rbzid").chosen({width:"280px", no_results_text: "Keine Übereinstimmung für..."}); $("#lkid").chosen({width:"280px", no_results_text: "Keine Übereinstimmung für..."}); //...init info-tooltips $( "#wginfo" ).tooltip({content:"
Hinweis:
Die Anzahl der Wagen je Region (Bundelsland, Landkreis usw.) ist unterschiedlich. Die Aussagekraft für einzelne Regionen steigt mit der Anzahl der Waagen. Beim Bewegen des Mauszeigers über einen Kurvenverlauf wird unter anderem auch die Anzahl der Waagen angezeigt."}); $( "#dlinfo" ).tooltip({content:"
Hinweis:
Aufgrund technischer Gegebenheiten kann es vorkommen, dass zum Zeitpunkt des Datenabrufes nicht alle Daten für den gewünschten Zeitraum zur Verfügung stehen. Versuchen Sie es in diesem Fall später noch einmal.
"}); $( "#yinfo" ).tooltip({content:"
Hinweis:
Es können maximal vier aufeinander folgende Jahre aufgerufen werden.
"}); });