function loadXMLDoc(dname) { if (window.XMLHttpRequest) { xhttp=new XMLHttpRequest(); } else { xhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",dname,false); xhttp.send(); return xhttp.responseXML; } function loadXMLString(txt) { if (window.DOMParser) { parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml"); } else // Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(txt); } return xmlDoc; } function sortTable(sortColumn, dataType, direction) { tableBody = document.getElementById ("sortTableBody"); tableRows = tableBody.getElementsByTagName ("tr"); for (var i = 1; i < tableRows.length; ++i) { currentData = tableRows[i].getElementsByTagName ("td")[sortColumn].firstChild; while (currentData.nodeValue == null) { currentData = currentData.firstChild; } currentData = currentData.nodeValue if (currentData[0] == ' ') { tableBody.removeChild(tableRows[i]); } else { if (currentData[0] == "(") { currentData = currentData.substring(1, currentData.length - 1); } switch ( dataType) { case "number": currentData = parseFloat(currentData.replace(',', '')); break; case "date": dateParts = currentData.split("\/"); currentData = new Date (dateParts[2], dateParts[1], dateParts[0]); break; case "time": timeParts = currentData.split("\:"); currentData = timeParts[0] + (timeParts[1] / 60) break; case "word2": dataWords = currentData.split(" "); currentData = currentData.slice (dataWords[0].length + 1); default: currentData = String(currentData); } for (var j = 0; j < i; ++j) { checkData = tableRows[j].getElementsByTagName ("td")[sortColumn].firstChild; while (checkData.nodeValue == null) { checkData = checkData.firstChild; } checkData = checkData.nodeValue if (checkData[0] == "(") { checkData = checkData.substring(1, checkData.length - 1); } switch ( dataType) { case "number": checkData = parseFloat(checkData.replace(',', '')); break; case "date": dateParts = checkData.split("\/"); checkData = new Date (dateParts[2], dateParts[1], dateParts[0]); break; case "time": timeParts = checkData.split("\:"); checkData = timeParts[0] + (timeParts[1] / 60) break; case "word2": dataWords = checkData.split(" "); checkData = checkData.slice (dataWords[0].length + 1); default: checkData = String(checkData); } if (direction == "down") { if (currentData > checkData) { tableBody.insertBefore (tableRows[i], tableRows[j]); break; } } else { if (currentData < checkData) { tableBody.insertBefore (tableRows[i], tableRows[j]); break; } } } } } tableRows = tableBody.getElementsByTagName ("tr"); for (var i = 0; i < tableRows.length; ++i) { currentClass = tableRows[i].className; if ((i % 2) == '0' && currentClass == 'row_even') {tableRows[i].className = 'row_odd';} else {if ((i % 2) == '1' && currentClass == 'row_odd') {tableRows[i].className = 'row_even';}} } } function addOnload (yourFunctionName) { if (window.attachEvent) { window.attachEvent ('onload', yourFunctionName); } else { if (window.onload) { var curronload = window.onload; var newonload = function () { curronload (); yourFunctionName (); }; window.onload = newonload; alert (newonload); } else { window.onload = yourFunctionName; } } } function getUrlVars() { var vars = {}; var parts = window.location.href.replace (/[?&]+([^=&]+)=([^&]*)/gi, function (m,key,value) { vars[key] = value; }); return vars; } function ordinalNum (number) { var lastDigit = number % 10; var tensDigit = parseInt(number / 10) % 10; var ordNum = ''; if (tensDigit == 1) { ordNum = number + 'th'; } else { switch (lastDigit) { case 1: ordNum = number + 'st'; break; case 2: ordNum = number + 'nd'; break; case 3: ordNum = number + 'rd'; break; default: ordNum = number + 'th'; break; } } return ordNum; }