var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i=0; i--) { input = inputs[i]; if (input.type=='checkbox' || input.type=='radio') { // wrap the checkbox var wrapper = setWrapper(input); updateCheckbox(wrapper, input); // add listeners for change/click var getUpdater = function(wrapper, input) { return function() { updateCheckbox(wrapper, input); } } var getToggler = function(wrapper, input) { return function() { toggleCheckbox(wrapper, input); } } if (window.attachEvent) { input.attachEvent('onclick', getUpdater(wrapper, input)); input.attachEvent('onchange', getUpdater(wrapper, input)); } else { input.addEventListener('click', getUpdater(wrapper, input), false); input.addEventListener('change', getUpdater(wrapper, input), false); } wrapper.onclick = getToggler(wrapper, input); } } } function unCheckRadio(input) { //FIXME: nee dit is niet netjes, maar het werkt wel var wrapper = input.previousSibling; wrapper.style.backgroundPosition='0px 0px'; } function updateCheckbox(wrapper, input) { if (input.checked) { wrapper.style.backgroundPosition='0px 15px'; if (input.type=='radio') { var form = input.form; var inputs = document.getElementsByName(input.name); for (var i=inputs.length-1; i>=0; i--) { if (inputs[i].form==form) { if (inputs[i]!=input) { unCheckRadio(inputs[i]); } } } } } else { wrapper.style.backgroundPosition='0px 0px'; } } function toggleCheckbox(wrapper, input) { if (input.type=='checkbox' && input.checked) { input.checked=0; } else { input.checked=1; } updateCheckbox(wrapper, input); } function fixLabels(form) { var labels = form.getElementsByTagName('LABEL'); if (labels) { for (var i=labels.length-1; i>=0; i--) { if (labels[i].className.match(/\b(text|password)\b/)) { labels[i].style.position='absolute'; labels[i].style.marginLeft='7px'; labels[i].style.textAlign='left'; labels[i].style.width='auto'; var input = labels[i].parentNode.getElementsByTagName('INPUT')[0]; input.onfocus = function(label) { return function() { label.style.display='none'; } }(labels[i]); input.onblur = function(label, input) { return function() { if (input.value=='') { label.style.display='block'; } } }(labels[i], input); labels[i].onclick = function(label, input) { return function() { label.style.display='none'; input.focus(); } }(labels[i], input); if (input.value!=='') { labels[i].style.display='none'; } } } } } function fixForms() { var forms = document.getElementsByTagName('FORM'); if (forms) { for (var i=forms.length-1; i>=0; i--) { if (forms[i].className.match(/\b(casLogin|casResetPassword|casDelete|casRegister|eijerkampNewsletter)\b/)) { // login form found fixLabels(forms[i]); } } } } function init() { fixCheckboxes(); fixForms(); } if (window.attachEvent) { window.attachEvent('onload', init); } else { window.addEventListener('load', init, false); }