window.onload=window.onresize=setJS; function setJS() { document.documentElement.className = document.documentElement.className.replace("nojs", "js"); } function decToHex(d) { var hex = Number(d).toString(16).toUpperCase(); hex = "000000".substr(0, 6 - hex.length) + hex; return hex; } function ajax(url, formId, result) { var xmlHttp = (window.XMLHttpRequest ? new XMLHttpRequest() :(window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") :false)); if (xmlHttp) { xmlHttp.open('POST', url); xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlHttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); xmlHttp.send(buildPost(formId)); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { document.getElementById(result).innerHTML = xmlHttp.responseText; } } } } function valueByArrow(inputName, minValue, maxValue, hex) { var temp = document.getElementById(inputName); temp.onkeydown = function(e) { var e = e || window.event; var keyCode = e.keyCode; if (keyCode == 38 || keyCode == 40) { var isOk = /(^[0-9a-fA-F]{6}$)|(^\d{1,3}$)/i.test(temp.value); if (isOk || temp.value == "") { if (temp.value == "") temp.value = 0; if (hex) temp.value = parseInt(temp.value, 16); if (keyCode == 38) { if (temp.value >= maxValue) temp.value = minValue; else temp.value++; } else if (keyCode == 40) { if (temp.value <= minValue) temp.value = maxValue; else if (temp.value > maxValue) temp.value = maxValue; else temp.value = temp.value - 1; } if (hex) temp.value = decToHex(temp.value); } } } } function buildPost(formId) { var form = document.getElementById(formId), inputs = form.getElementsByTagName("input"), input, inputName, result = ""; for (var idx = 0; idx < inputs.length; ++idx) { input = inputs[idx]; inputName = input.name; if (input.type == "text" || input.type == "hidden") { if (input.name == "hex") valueByArrow(input.name, 0, 16777215, true); if (input.name == "red" || input.name == "green" || input.name == "blue" || input.name == "huew" || input.name == "satw" || input.name == "ligw") valueByArrow(input.name, 0, 255, false); if (inputName == "hue") valueByArrow(input.name, 0, 359, false); if (input.name == "sat" || input.name == "lig") valueByArrow(input.name, 0, 100, false); result = result+input.name+"="+input.value+"&"; } } result.substring(0, result.length - 1); return result; }