/** DHML API ---- */ var DHTML = (document.getElementById || document.all || document.layers); function getObj(name) { var obj; var style; if (document.getElementById) { this.obj = document.getElementById(name); this.style = document.getElementById(name).style; } else if (document.all) { this.obj = document.all[name]; this.style = document.all[name].style; } else if (document.layers) { this.obj = getObjNN4(document,name); this.style = this.obj; } } function getOpenerObj (name) { var obj; var style; if(document.getElementById) { this.obj = parent.document.getElementById(name); this.style = parent.document.getElementById(name).style; } else if (document.all) { this.obj = parent.document.all[name]; this.style = parent.document.all[name].style; } else if (document.layers) { this.obj = getObjNN4(parent.document,name); this.style = this.obj; } } function getObjNN4(obj,name) { var x = obj.layers; var foundLayer; for (var i=0;i<x.length;i++) { if (x[i].id == name) foundLayer = x[i]; else if (x[i].layers.length) var tmp = getObjNN4(x[i],name); if (tmp) foundLayer = tmp; } return foundLayer; } /** DHML API END ---- */ function UriParams() { var uri = document.location.search.substr(1,document.location.search.length); var params = uri.split('&'); var myParams = new Array(); var i=0; var hash; var str1,str2; for(i=0;i<params.length;i++) { hash = params[i].split('='); str1 = hash[0]; str2 = hash[1]; myParams[str1] = str2; } return myParams; } /** COLORSELECTOR ROUTINES */ function _CloseOnEsc() { if (event.keyCode == 27) { window.close(); return; } } function Init() { // run on page load var uriParams = UriParams(); var formID = uriParams['formID']; var openerObj = new getOpenerObj(formID); if(openerObj.obj != undefined) { var color = openerObj.obj.value; color = color.substr(1,color.length); color = ValidateColor(color) || '000000'; View(color); // set default color } } function View(color) { // preview color var ColorPreview = new getObj("ColorPreview"); if(ColorPreview.style != undefined) { ColorPreview.style.backgroundColor = '#' + color; var cHex = new getObj("ColorHex"); cHex.obj.value = '#' + color; } else { ColorPreview = new getObjNN4(document,'ColorHex'); ColorPreview.value='#' + color; } } function Set(string) { // select color var color = ValidateColor(string); if (color == null) { alert("Invalid color code: " + string); } // invalid color else { // valid color View(color); // show selected color var uriParams = UriParams(); var formID = uriParams['formID']; var openerObj = new getOpenerObj(formID); var colorObj = new getOpenerObj('col_'+formID); if(openerObj.obj != undefined) { openerObj.obj.value = color; colorObj.style.backgroundColor = '#'+color; window.close(); } else { openerObj.value=color; window.close(); } } } function ValidateColor(string) { // return valid color code string = string || ''; string = string + ""; string = string.toUpperCase(); var chars = '0123456789ABCDEF'; var out = ''; for (var i=0; i<string.length; i++) { // remove invalid color chars var schar = string.charAt(i); if (chars.indexOf(schar) != -1) { out += schar; } else out+=0; } if (out.length != 6) { return null; } // check length return out; } function validateStringColor(id) { input=document.getElementById(id); input.value=ValidateColor(input.value); if(input.value==null)return; document.getElementById("col_"+id).style.backgroundColor="#"+input.value; } /* COLORSELECTOR ROUTINES */