author | Dan Fuhry <dan@enanocms.org> |
Mon, 15 Nov 2010 19:21:40 -0500 | |
changeset 1311 | a228f7e8fb15 |
parent 1116 | 220428d80925 |
permissions | -rw-r--r-- |
/** * Images used for form field validation * @var string img_bad: Shown on field validation failure * @var string img_good: Shown on field validation success * @var string img_neu: Shown when a field's value matches known good regexp but still needs testing (e.g. DB info) */ var img_bad = '../images/checkbad.png'; var img_good = '../images/check.png'; var img_neu = '../images/checkunk.png'; /** * Highlights the background of the next-up <tr> tag. * @param object Form field */ function set_focus(item) { var hint_id = ( item.type == 'radio' ) ? 'hint_' + item.name + '_' + item.value : 'hint_' + item.name; if ( document.getElementById(hint_id) ) { var el = document.getElementById(hint_id); el.style.zIndex = String(getHighestZ() + 2); domObjChangeOpac(0, el); el.style.display = 'block'; domOpacity(el, 0, 100, 400); } item = getParentTR(item); if ( item.tagName == 'TR' ) { item.style.backgroundColor = '#FFFFE0'; } } /** * Clears the background of the next-up <tr> tag. * @param object Form field */ function clear_focus(item) { var hint_id = ( item.type == 'radio' ) ? 'hint_' + item.name + '_' + item.value : 'hint_' + item.name; if ( document.getElementById(hint_id) ) { var el = document.getElementById(hint_id); // el.style.display = 'none'; domOpacity(el, 100, 0, 200); setTimeout(function() { el.style.display = 'none'; }, 250); } item = getParentTR(item); if ( item.tagName == 'TR' ) { if ( IE ) { item.style.backgroundColor = 'transparent'; } else { item.style.backgroundColor = null; } } } function getParentTR(item) { var tagName = item.tagName; while ( tagName != 'TR' && tagName != null ) { item = item.parentNode; tagName = item.tagName; } if ( tagName == 'TR' && item.className != 'nohighlight' ) { return item; } return null; } function init_hint(input, hint) { hint.className = 'fieldtip_js'; setTimeout(function() { if ( input.type == 'radio' ) { var tr = getParentTR(input).parentNode.parentNode.parentNode; var span_width = $dynano(tr).Width() - 24; } else { var span_width = $dynano(input).Width() - 24; } var span_top = $dynano(input).Top() + $dynano(input).Height(); var span_left = $dynano(input).Left(); hint.style.top = span_top + 'px'; hint.style.left = span_left + 'px'; hint.style.width = span_width + 'px'; hint.style.display = 'none'; }, 100); } var set_inputs_to_highlight = function() { var inputs = document.getElementsByTagName('input'); for ( var i = 0; i < inputs.length; i++ ) { // Highlighting var tr = getParentTR(inputs[i]); if ( tr ) { inputs[i].onfocus = function() { set_focus(this); } inputs[i].onblur = function() { clear_focus(this); } } // Hints var hint_id = ( inputs[i].type == 'radio' ) ? 'hint_' + inputs[i].name + '_' + inputs[i].value : 'hint_' + inputs[i].name; if ( document.getElementById(hint_id) ) { var el = document.getElementById(hint_id); if ( el.tagName == 'SPAN' ) { init_hint(inputs[i], el); } } } } addOnloadHook(set_inputs_to_highlight); function install_set_ajax_loading() { var base = document.getElementById('enano-body'); var hider = document.createElement('div'); hider.style.position = 'absolute'; hider.style.backgroundColor = '#FFFFFF'; hider.style.top = $dynano(base).Top() + 'px'; hider.style.left = $dynano(base).Left() + 'px'; hider.style.width = $dynano(base).Width() + 'px'; hider.style.height = $dynano(base).Height() + 'px'; hider.style.backgroundPosition = 'center center'; hider.style.backgroundImage = 'url(../images/loading-big.gif)'; hider.style.backgroundRepeat = 'no-repeat'; hider.id = 'ajax_loader'; domObjChangeOpac(70, hider); var body = document.getElementsByTagName('body')[0]; body.appendChild(hider); // opacity('ajax_loader', 0, 70, 750); } function install_unset_ajax_loading() { if ( document.getElementById('ajax_loader') ) { var body = document.getElementsByTagName('body')[0]; body.removeChild(document.getElementById('ajax_loader')); /* opacity('ajax_loader', 70, 0, 750); setTimeout(function() { var body = document.getElementsByTagName('body')[0]; body.removeChild(document.getElementById('ajax_loader')); }, 1000); */ } }