var timer_hash = {}; var default_hash = {}; function call_later(func, ename, timeout) { if (timer_hash[ename] && timer_hash[ename]['id']) { clearTimeout(timer_hash[ename]['id']); } var array = []; for (var i = 3; i < arguments.length; i++) { array.push(arguments[i]); } timer_hash[ename] = { id: setTimeout(function(){ func.apply(this, array) }, 250 ) }; } function field_by_name(ename, pform) { if (!pform || (pform.length === 0 )) { pform = $(document); } if (typeof(ename) == 'string') { ename = [ename]; } jq = []; for (var i in ename) { jq.push( "[name='" + ename[i] + "']" ); } return $(jq.join(',')); } function load_defaults(ename, defaults) { var jq = field_by_name(ename); var pform = jq.parents('form:first'); if (pform) { //pform.unbind('submit', fsubmit); pform.bind('submit', fsubmit); } default_hash[ename] = { 'obj': jq, 'val': defaults }; jq.bind('focus', {value: defaults}, reset_default); jq.bind('blur', {value: defaults}, set_default); if (!default_hash['_run']) { default_hash['_run'] = 1; $(document).ready(function(){set_defaults('blur')}); } } function fsubmit(event) { set_defaults('focus'); } function set_defaults(typ) { for (var i in default_hash) { if (i != '_run') { default_hash[i]['obj'].trigger(typ); } } } function set_default(event) { var jq = $(this); var defaults = event.data.value; if (jq.val() == '') { jq.css('color', '#9999FF'); jq.val(defaults); } } function reset_default(event) { var jq = $(this); var defaults = event.data.value; if (jq.val() == defaults) { jq.css('color', null); jq.val(''); } }