var highlight_array = new Array(); function initForm(){ initializeFocus(); ifInstructs(); browserDetect(); } // for radio and checkboxes, they have to be cleared manually, so they are added to the // global array highlight_array so we dont have to loop through the dom every time. function initializeFocus(){ fields = getElementsByClassName(document, "*", "field"); for(i = 0; i < fields.length; i++) { if(fields[i].type == 'radio' || fields[i].type == 'checkbox' || fields[i].type == 'file') { fields[i].onclick = function(){clearSafariRadios(); addClassName(this.parentNode.parentNode, "focused", true)}; fields[i].onfocus = function(){clearSafariRadios(); addClassName(this.parentNode.parentNode, "focused", true)}; highlight_array.splice(highlight_array.length,0,fields[i]); } else if(fields[i].id!='term') { fields[i].onfocus = function(){clearSafariRadios();addClassName(this.parentNode.parentNode, "focused", true)}; fields[i].onblur = function(){removeClassName(this.parentNode.parentNode, "focused")}; } } } function clearSafariRadios() { for(var i = 0; i < highlight_array.length; i++) { if(highlight_array[i].parentNode) { removeClassName(highlight_array[i].parentNode.parentNode, 'focused'); } } } function ifInstructs(){ var container = document.getElementById('public'); if(container){ removeClassName(container,'noI'); var instructs = getElementsByClassName(document,"*","instruct"); if((container.offsetWidth <= 450) || (instructs == '')){ addClassName(container,'noI',true); } } } function browserDetect(){ var detect = navigator.userAgent.toLowerCase(); var container = document.getElementsByTagName('html'); if(detect.indexOf('safari') + 1){ addClassName(container[0], 'safari', true); } if(detect.indexOf('firefox') + 1){ addClassName(container[0], 'firefox', true); } } /*--------------------------------------------------------------------------*/ //http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/ function getElementsByClassName(oElm, strTagName, strClassName){ var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); var arrReturnElements = new Array(); strClassName = strClassName.replace(/\-/g, "\\-"); var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)"); var oElement; for(var i=0; i