function ajaxFailure(r){
  yuiPanelObj.setHeader('Error');
  var msg='Sorry, but an error occurred while communicating with the server.<br /><br />'+((r.responseText=='') ? 'Please refresh the page and try again. If the problem persists, wait until you can re-establish a network connection.' : r.responseText);
  yuiPanelObj.setBody(msg);
  yuiPanelObj.center();
}
function checkRequiredField(fieldObj){
  if(!$(fieldObj)){
    return true;
  }else if(Element.hasClassName(fieldObj,'required') && $F(fieldObj).strip()==''){
    return false;
  }else{
    return true;
  }
}
function checkRequiredFields(f){
  var ok=true;
  els = Form.getElements(f);
  for(i=0;i<els.length;i++){
    if(!checkRequiredField(els[i])){
      alert('Required information missing.');
      ok=false;
      break;
    }
  }
  return ok;
}
function confirm_destroy(element, object, options){
  if (confirm("Are you sure you want to PERMANENTLY delete "+object+"?\nThis action can not be undone.")) {
    var f = document.createElement('form');
    f.style.display = 'none';
    element.parentNode.appendChild(f);
    f.method = 'POST';
    f.action = options.action;
    var m = document.createElement('input');
    m.setAttribute('type', 'hidden');
    m.setAttribute('name', '_method');
    m.setAttribute('value', 'delete');
    f.appendChild(m);
    if(options.token_name && options.token_value) {
      var s = document.createElement('input'); 
      s.setAttribute('type', 'hidden'); 
      s.setAttribute('name', options.token_name); 
      s.setAttribute('value', options.token_value); 
      f.appendChild(s); 
    }
    f.submit();
  }
  return false;
}
function display_pview(t){
  if(!(typeof(yuiPanelObj)=='undefined')){
    new Ajax.Request((t+((t.indexOf('?') > -1) ? '&' : '?')+'noCache='+(new Date).getTime()+'.'+(Math.random()*1234567)+'&authenticity_token='+authToken),{method:'get',onSuccess:show_pview,onFailure:ajaxFailure});
    yuiPanelObj.setHeader('Loading...');
    yuiPanelObj.setBody('<img src="/images/wait.gif" alt="Please wait..." class="wait" />');
    yuiPanelObj.show();
    if(!(typeof(questionDialogObj)=='undefined')) yuiPanelObj.cfg.setProperty('zindex',questionDialogObj.cfg.getProperty('zindex')+2);
    yuiPanelObj.center();
  }
}
function email_hider(c1,c2,c3){
  return (c1!='' && c2!='') ? ('<a href="'+'mail'+'to'+':'+c1+'&#64;'+c2+'">'+((c3!='') ? c3 : (c1+'@'+c2))+'</a>') : '<a href="/contact.php">contact us</a>';
}
function highlightField(fieldObj){
  Element.addClassName(fieldObj,'highlight');
  // Kludge to get around Mozilla 'permission denied' bug
  var oldAttr=$(fieldObj).getAttribute('autocomplete');
  if (oldAttr != 'off') $(fieldObj).setAttribute('autocomplete','off');
  $(fieldObj).focus();
  if (oldAttr != 'off') $(fieldObj).setAttribute('autocomplete',oldAttr);
  $(fieldObj).blur();
}
function leadingZero(s){
  return (s.toString().length==1) ? '0'+s : s;
}
function mceSwitch(mceHolder,on){
  if(on){
    tinyMCE.execCommand('mceAddControl',true,mceHolder);
    Element.hide(mceHolder+'_mce_on');
    Element.show(mceHolder+'_mce_off');
    $(mceHolder+'_editor').value='wysiwyg';
    mceStatus=true;
  }else{
    tinyMCE.execCommand('mceRemoveControl',true,mceHolder);
    Element.hide(mceHolder+'_mce_off');
    Element.show(mceHolder+'_mce_on');
    $(mceHolder+'_editor').value='basic';
    mceStatus=false;
  }
}
function proposal_reveal(id){
  $$('#formMainDiv > div').each(function(obj){
    if(obj.id==id){
      obj.show();
    }else{
      obj.hide();
    }
  });
  id2 = id.substring(0,id.length-6);
  $$('#proposalnav > ul > li').each(function(obj){
    if(obj.id=='proposalnav_'+id2){
      obj.addClassName('active');
    }else{
      obj.removeClassName('active');
    }
  });
}
function show_comments(pid){
  pWin=window.open('/reviews/comments/'+pid,'comments','height=600,resizable=yes,scrollbars=yes,toolbar=yes,width=800');
  pWin.focus();
  return false;
}
function show_pview(r){
  if(r.responseText==''){
    ajaxFailure(r);
    return;
  }
  yuiPanelObj.center();
}
function show_popup(linkObj){
  pWin=window.open(unescape(linkObj.href)+'?popup=true',null,'height=600,resizable=yes,scrollbars=yes,toolbar=yes,width=820');
  pWin.focus();
  return false;
}
function submitWait(){
  $$('.submitbutton').each(function(el){Element.hide(el)});
  Element.show('waiting');
  return true;
}
function submitWaitCheckRequired(formObj){
  if(checkRequiredFields(formObj)){
    submitWait();
  }else{
    Element.hide('waiting');
    Element.show('submit_button');
    return false;
  }
}
function validateEmail(email){
  if(($(email).value).strip()!=''){
    var emailFilter=/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i;
    if(!emailFilter.test($(email).value)){
      alert('The email address you entered appears to be invalid');
      if(!Element.hasClassName($(email),'highlighted')) highlightField($(email));
    }else{
      Element.removeClassName($(email),'highlight');
    }
  }
}
