#343322: should generate IS NULL in sql w/ None values in substitution
/* toggle visibility of an element by its id * & set current visibility status in a cookie * XXX whenever used outside of preferences, don't forget to * move me in a more appropriate place */functiontoggleVisibility(elemId,cookiename){_clearPreviousMessages();jqNode(elemId).toggleClass('hidden');asyncRemoteExec('set_cookie',cookiename,jQuery('#'+elemId).attr('class'));}functioncloseFieldset(fieldsetid){varlinklabel=_('open all');varlinkhref='javascript:openFieldset("'+fieldsetid+'")'_toggleFieldset(fieldsetid,1,linklabel,linkhref)}functionopenFieldset(fieldsetid){varlinklabel=_('close all');varlinkhref='javascript:closeFieldset("'+fieldsetid+'")'_toggleFieldset(fieldsetid,0,linklabel,linkhref)}function_toggleFieldset(fieldsetid,closeaction,linklabel,linkhref){jQuery('#'+fieldsetid).find('div.openlink').each(function(){varlink=A({'href':"javascript:noop();",'onclick':linkhref},linklabel)jQuery(this).empty().append(link);});jQuery('#'+fieldsetid).find('fieldset[id]').each(function(){varfieldset=jQuery(this);if(closeaction){fieldset.addClass('hidden')}else{fieldset.removeClass('hidden');linkLabel=(_('open all'));}});}functionvalidatePrefsForm(formid){varform=getNode(formid);freezeFormButtons(formid);try{vard=_sendForm(formid,null);}catch(ex){log('got exception',ex);returnfalse;}function_callback(result,req){_clearPreviousMessages();_clearPreviousErrors(formid);// successif(result[0]){returnsubmitSucces(formid)}// FailuresunfreezeFormButtons(formid);vardescr=result[1];if(!isArrayLike(descr)||descr.length!=2){log('got strange error :',descr);updateMessage(descr);return;}_displayValidationerrors(formid,descr[0],descr[1]);vardom=DIV({'class':'critical'},_("please correct errors below"));jQuery(form).find('div.formsg').empty().append(dom);updateMessage(_(""));returnfalse;}d.addCallback(_callback);returnfalse;}functionsubmitSucces(formid){varform=jQuery('#'+formid);setCurrentValues(form);vardom=DIV({'class':'message'},_("changes applied"));jQuery(form).find('div.formsg').empty().append(dom);jQuery(form).find('input').removeClass('changed');checkValues(form,true);return;}function_clearPreviousMessages(){jQuery('div#appMsg').addClass('hidden');jQuery('div.formsg').empty();}function_clearPreviousErrors(formid){jQuery('#'+formid+' span.error').remove();}functioncheckValues(form,success){varunfreezeButtons=false;jQuery(form).find('select').each(function(){unfreezeButtons=_checkValue(jQuery(this),unfreezeButtons);});jQuery(form).find('[type=text]').each(function(){unfreezeButtons=_checkValue(jQuery(this),unfreezeButtons);});jQuery(form).find('input[type=radio]').each(function(){if(jQuery(this).attr('checked')){unfreezeButtons=_checkValue(jQuery(this),unfreezeButtons);}});if(unfreezeButtons){unfreezeFormButtons(form.attr('id'));}else{if(!success){_clearPreviousMessages();}_clearPreviousErrors(form.attr('id'));freezeFormButtons(form.attr('id'));}}function_checkValue(input,unfreezeButtons){varcurrentValueInput=jQuery("input[id=current-"+input.attr('name')+"]");if(currentValueInput.attr('value')!=input.attr('value')){input.addClass('changed');unfreezeButtons=true;}else{input.removeClass('changed');jQuery("span[id=err-"+input.attr('id')+"]").remove();}input.removeClass('error');returnunfreezeButtons}functionsetCurrentValues(form){jQuery(form).find('input[id^=current-value]').each(function(){varcurrentValueInput=jQuery(this);varname=currentValueInput.attr('id').split('-')[1];jQuery(form).find("[name="+name+"]").each(function(){varinput=jQuery(this);if(input.attr('type')=='radio'){if(input.attr('checked')){log(input.attr('value'));currentValueInput.attr('value',input.attr('value'));}}else{currentValueInput.attr('value',input.attr('value'));}});});}functioninitEvents(){jQuery('form').each(function(){varform=jQuery(this);freezeFormButtons(form.attr('id'));form.find('input[type=text]').keyup(function(){checkValues(form);});form.find('input[type=radio]').change(function(){checkValues(form);});form.find('select').change(function(){checkValues(form);});});}$(document).ready(function(){initEvents();});