/**************************************************************************** * Radio Control Framework Personal Use and Evaluation License (PUEL) * * * * View COPYING for full license details. * * * * In summary, your allowed to use Radio Control Framework * * * for personal use or, alternatively, * * * for product evaluation. * * * * In summary, your not allowed to use Radio Control Framework * * * for commercial, distribution, or modification purposes. * * * for government purposes. * * * * If you do not belong to either category, you will have to purchase a * * commercial license. Do not hesitate to contact RemoteHams for details. * * * * RemoteHams provides this product "as is" without warranty of any kind, * * either expressed or implied, including, but not limited to, the * * implied warranties of merchantability and fitness for a particular * * purpose. The entire risk as to the quality and performance of the * * product is with you. Should it prove defective, you assume the cost * * of all necessary servicing, repair, or correction. In addition, * * RemoteHams shall be allowed to provide updates to the product in * * urgent cases. You are then obliged to install such updates. * * * * Copyright (C) 2008 by Brandon Hansen, Brad DeMorrow * * kg6ypi@remotehams.com, syllogism711@gmail.com * * * ****************************************************************************/ /* HTML Data Loader */ function loadHTMLData(url, divID) { var httpData=false; if(window.XMLHttpRequest) { httpData = new XMLHttpRequest(); } else if(window.ActiveXObject) { httpData = new ActiveXObject("Microsoft.XMLHTTP"); } if(httpData) { var obj = document.getElementById(divID); httpData.open("GET",url); httpData.onreadystatechange = function() { if(httpData.readyState==4) { obj.innerHTML = httpData.responseText; } } httpData.send(""); return true; } alert("Sorry, loading HTML data dynamically is not supported by your web browser."); return null; } /* XML Data Loader */ function loadXMLData(file) { var xmlData; if (window.XMLHttpRequest) { xmlData=new window.XMLHttpRequest(); xmlData.open("GET",file,false); xmlData.send(""); return xmlData.responseXML; } else if (ActiveXObject("Microsoft.XMLDOM")) { xmlData=new ActiveXObject("Microsoft.XMLDOM"); xmlData.async=false; xmlData.load(dname); return xmlData; } alert("Sorry, loading XML data dynamically is not supported by your web browser."); return null; } /* XML Data Processor */ function process_data(xmlData) { if (xmlData.getElementsByTagName("frequency")[0].childNodes.length>0) { update_frequency(xmlData.getElementsByTagName("frequency")[0].childNodes[0].nodeValue); } if (xmlData.getElementsByTagName("smeter")[0].childNodes.length>0) { update_smeter(xmlData.getElementsByTagName("smeter")[0].childNodes[0].nodeValue); } if (xmlData.getElementsByTagName("buttons")[0].childNodes.length>0) { update_buttons(document.getElementById("UIbuttons"),xmlData.getElementsByTagName("buttons")[0].childNodes[0].nodeValue, xmlData); } if (xmlData.getElementsByTagName("dropdowns")[0].childNodes.length>0) { update_dropdowns(document.getElementById("UIdropdowns"),xmlData.getElementsByTagName("dropdowns")[0].childNodes[0].nodeValue, xmlData); } if (xmlData.getElementsByTagName("sliders")[0].childNodes.length>0) { update_sliders(document.getElementById("UIsliders"), xmlData.getElementsByTagName("sliders")[0].childNodes[0].nodeValue, xmlData); } return; } /* XML Data Helpers */ function get_buttons_data(strItem, xmlData) { var tmpData = xmlData.getElementsByTagName("buttons_data")[0].childNodes; if (tmpData.length>0) { for(var i = 0; i < tmpData.length; ++i) { if (tmpData[i].nodeName==strItem) { return tmpData[i].childNodes[0].nodeValue; } } } return ""; } function get_dropdown_data(strItem, xmlData) { var tmpData = xmlData.getElementsByTagName("dropdowns_data")[0].childNodes; if (tmpData.length>0) { for(var i = 0; i < tmpData.length; ++i) { if (tmpData[i].nodeName==strItem) { return tmpData[i].childNodes[0].nodeValue; } } } return ""; } function get_dropdown_list(strItem, xmlData, ItemSelected) { var tmpStr=""; var tmpData = xmlData.getElementsByTagName("dropdowns_list")[0].childNodes; if (tmpData.length>0) { for(var i = 0; i < tmpData.length; ++i) { if (tmpData[i].nodeName==strItem) { // get the list! var items = tmpData[i].childNodes[0].nodeValue.split(','); if (items.length>0) { for(var ii = 0; ii < items.length; ++ii) { if (items[ii]==ItemSelected) { tmpStr+=''; } else { tmpStr+=''; } } } return tmpStr; } } } return tmpStr; } function get_slider_data(strItem, xmlData) { var tmpData = xmlData.getElementsByTagName("sliders_data")[0].childNodes; if (tmpData.length>0) { for(var i = 0; i < tmpData.length; ++i) { if (tmpData[i].nodeName==strItem) { return tmpData[i].childNodes[0].nodeValue; } } } return ""; } function get_slider_range(strItem, xmlData) { var tmpData = xmlData.getElementsByTagName("sliders_range")[0].childNodes; if (tmpData.length>0) { for(var i = 0; i < tmpData.length; ++i) { if (tmpData[i].nodeName==strItem) { return tmpData[i].childNodes[0].nodeValue; } } } return ""; } /* Visual Helpers */ function hide_div(szDivID) { if(document.getElementById) { var obj = document.getElementById(szDivID); obj.style.display = "none"; obj.style.visibility = "hidden"; } } function show_div(szDivID) { if(document.getElementById) { var obj = document.getElementById(szDivID); obj.style.display = "inline"; obj.style.visibility = "visible"; } } /* Visual Data Element Updaters */ function update_frequency(val) { val=val.split('.'); document.getElementById("UIfreq").innerHTML=val[0]; return; } function update_smeter(val) { document.getElementById("UIsmeter").innerHTML=val; return; } function update_buttons(divObj, strList, xmlData) { if (divObj.innerHTML==" ") { divObj.innerHTML=''; } var created=false; var items = strList.split(','); if (items.length>0) { for(var i = 0; i < items.length; ++i) { var tmpData = get_buttons_data(items[i], xmlData); if (document.getElementById("btn-"+items[i])==null) { /* Create the button */ created=true; if (items[i]=="TX") { if (tmpData=="1") { divObj.innerHTML += ''; } else { divObj.innerHTML += ''; } } else { if (tmpData=="1") { divObj.innerHTML += ''; } else { divObj.innerHTML += ''; } } } else { /* Update the button */ var obj = document.getElementById("btn-"+items[i]); if (items[i]=="TX") { if (tmpData=="1") { obj.className="radio_tx_button_on"; } else { obj.className="radio_tx_button_off"; } } else { if (tmpData=="1") { obj.className="radio_button_on"; } else { obj.className="radio_button_off"; } } } } if (created) { divObj.innerHTML += '
'; } } return; } function update_dropdowns(divID, strList, xmlData) { divID.innerHTML=''; var items = strList.split(','); if (items.length>0) { for(var i = 0; i < items.length; ++i) { var tmpData = get_dropdown_data(items[i], xmlData); divID.innerHTML += items[i]+'
'; } } return; } function update_sliders(divID, strList, xmlData) { divID.innerHTML=''; var items = strList.split(","); if (items.length>0) { for(var i = 0; i < items.length; ++i) { var tmpData = get_slider_data(items[i], xmlData).split(','); divID.innerHTML += items[i]+' ['+tmpData[1]+ '] ['+get_slider_range(items[i], xmlData)+']
'; } } return; } /* Tab Controls */ function HideTabs() { hide_div("UIbuttons"); hide_div("UIdropdowns"); hide_div("UIsliders"); } function TabSwitcher(tab) { HideTabs(); if (tab=="buttons") { show_div("UIbuttons"); } else if (tab=="dropdowns") { show_div("UIdropdowns"); } else if (tab=="sliders") { show_div("UIsliders"); } else if (tab=="all") { show_div("UIbuttons"); show_div("UIdropdowns"); show_div("UIsliders"); } } /* Flash Helpers */ function EmbedFlashMovie(szDivID, Url) { var obj = document.getElementById(szDivID); obj.innerHTML=''; }