function open_popup_window(url) {
  new_window=window.open(url, "popup", "width=400,height=400,status=no");
  new_window.focus();
}

function addAutocompleteOff(element_id){
  var el = $(element_id);
  el.setAttribute('autocomplete', 'off');
}

function submit_form_to( form_id, path, popup ){
  var original_form_action = $(form_id).action;
  $(form_id).action = path;
  if ( popup ) $(form_id).setAttribute('target','_blank');
  $(form_id).submit(); 
  if ( popup ) $(form_id).setAttribute('target','');
  $(form_id).action = original_form_action;
}

function is_visible( element_id ){
 // try{
    var a = $(element_id) 
    if (a.visible()) 
      return true;
    else return false;
//  }
//  catch(e){
//    return false;
//  }
}

//function validate_date(date){
//  return date == '' || date.match(/(January|February|March|April|May|June|July|August|September|Oktober|November|December) (\d\d|\d)(, \d\d\d\d)/gi);  
//}

function open_tooltip( tool_tip_element ){
  document.getElementById(tool_tip_element).style.display='inline';
  //$(tool_tip_element).visualEffect("blind_down", {"duration": 0.5});
}

function close_tooltip( tool_tip_element ){
  document.getElementById(tool_tip_element).style.display='none';
}


function setInnerHTML( element, html ){               //for IE to not crash!!
  var new_el = document.createElement(element.tagName);
  new_el.id = element.id;
  new_el.className = element.className;
  new_el.innerHTML = html;

  element.parentNode.replaceChild(new_el, element);
}

function submit_form_to( form_id, path, popup ){
  var original_form_action = $(form_id).action;
  $(form_id).action = path;
  if ( popup ) $(form_id).setAttribute('target','_blank');
  $(form_id).submit(); 
  if ( popup ) $(form_id).setAttribute('target','');
  $(form_id).action = original_form_action;
}

function select_tag_set_bg_color( id, color, set_options_colors ){
  if ( set_options_colors == null )
    set_options_colors = true;
  // set select tag background color to color if the selected object is selected :)
  var sel_tag = $(id);
  if (sel_tag.options[sel_tag.selectedIndex].id == 'currently_selected_static_page_version')
    sel_tag.style.backgroundColor = color;
  else
    sel_tag.style.backgroundColor = 'white';

  if ( set_options_colors )
    for(var i=0; i < sel_tag.options.length; i++) {
     if (sel_tag.options[i].id == 'currently_selected_static_page_version')
        sel_tag.options[i].style.backgroundColor = color;
      else
        sel_tag.options[i].style.backgroundColor = 'white';  
    }
}


// Mailer

function select_all_mails(){
   var mail_checkboxes = document.getElementsByClassName('mail_check_box');
   checked_mails_count = 0;
   for (i=0; i < mail_checkboxes.length; i++){ 
     mail_checkboxes[i].setAttribute('checked', true);
     checked_mails_count++;
   }
   $('delete_selected_link').style.display = '';
}

function toggle_delete_selected_button( checkbox_checked ){
  if (checkbox_checked == true){
    $('delete_selected_link').style.display = '';
    checked_mails_count++;
  }    
  else{
    checked_mails_count--;
    if (checked_mails_count == 0)  
      $('delete_selected_link').style.display = 'none';
  }
}

function show_template_dialog(){
  $('new_template_dialog').style.top = '200px'; //document.viewport.getScrollOffsets()[1] + 200 + 'px';
  $('new_template_dialog').style.left = '500px'; //(document.viewport.getWidth() / 2 - $('new_template_dialog').getStyle('width')) + 'px';
  $('new_template_dialog').show();
}


function show_reply_area(mail_id, active_reply_area_mail_id, reply_mode){
 // if ((mail_id + '') != active_reply_area_mail_id){
    
    if (reply_mode == null)
      reply_mode = 'reply';
    
    // save draft of open email (if any)
    if (active_reply_area_mail_id != "0" && 
       tinyMCE.get('email_body_text_area').getContent() != '' )
       
      new Ajax.Request('/admin/emails/ajax_auto_save_draft', {asynchronous:true, evalScripts:true, parameters:'body=' + encodeURIComponent(tinyMCE.get('email_body_text_area').getContent()) +'&'+Form.serialize('email_form') + '&no_msg=true'});
    
    if ((mail_id + '') != active_reply_area_mail_id){
      tinyMCE.execCommand('mceRemoveControl', false, 'email_body_text_area');
     // $('email_body_text_area_parent').innerHTML = ''

      if (active_reply_area_mail_id == "0"){ 
        setInnerHTML( $('mail_' + mail_id + '_reply_area'), $('reply_area').innerHTML );   
        $('reply_area_table').remove();    
      }
      else {
        setInnerHTML( $('mail_' + mail_id + '_reply_area'), $('mail_' + active_reply_area_mail_id + '_reply_area').innerHTML )
        setInnerHTML( $('mail_' + active_reply_area_mail_id + '_reply_area'), '');
      }

      // rebind event listeners and reset autocompleter element references
      email_recipients_autocompleter.afterACHasMoved();
      email_cc_autocompleter.afterACHasMoved();
      email_bcc_autocompleter.afterACHasMoved();

      observe_mailing_list_fields();

      $('active_reply_area_mail_id').value = mail_id;
      $('mail_' + mail_id + '_reply_area_row').show(); 
      
      $('new_mail_subject_field').hide();
      $('new_mail_change_subject_link').show();
      
      
      // close cc, bcc template and mailing list options if open
      
      $('email_cc').value = '';
      Element.hide('cc');
      Element.show('cc_link');

      $('email_bcc').value = '';
      Element.hide('bcc');
      Element.show('bcc_link');
        
      Element.hide('template_panel');
      Element.show('templates_link');
      
      Element.hide('custom_mailing_list');
      Element.show('custom_mailing_list_link');
      
      if ( $('mail_' + mail_id + '_to_me_address') )
       $('from').value = $('mail_' + mail_id + '_to_me_address').value;

      tinyMCE.execCommand('mceAddControl', false, 'email_body_text_area');
      
      new Form.Element.EventObserver('templates', function(element, value) {new Ajax.Request('/admin/emails/ajax_change_template', {asynchronous:true, evalScripts:true, parameters:'id=' + value + '&authenticity_token=' + encodeURIComponent($('email_form').authenticity_token.value)})});
    
      window.scrollTo(0, $('mail_' + mail_id + '_reply_area').cumulativeOffset()[1]);
    }
    
    // reset draft id 0, so that draft for new mail is stored as new draft
    $('draft_id').value = 0
    
    var email_from = $('mail_' + mail_id + '_from').innerHTML;
    var email_from_quote = email_from;
    email_from = email_from.replace(/&lt;/, "<");
    email_from = email_from.replace(/&gt;/, ">");
    
    if ( reply_mode == 'reply'){
      $('email_recipients').value = email_from;
      $('email_subject_field').value = "Re: " + $('original_mail_subject').value;
    }
    else if ( reply_mode == 'forward'){
      $('email_recipients').value = '';
      $('email_subject_field').value = "Fwd: " + $('original_mail_subject').value;
    } else { // reply all mode
      $('email_subject_field').value = "Re: " + $('original_mail_subject').value;
      $('email_recipients').value = email_from + ', ' + $('mail_' + mail_id + '_to_without_me').value;
    }
     
    // quote original mail, insert with delay as tiny_mce seems to still load at this point  
    setTimeout(function() { 
      if ($('mail_'+mail_id+'_quote_original').checked == true){
      var quote_header = "On " + $('mail_'+mail_id+'_date').descendants()[0].innerHTML + ' ' + email_from_quote + " wrote:<br/><br/>";
      var quoted_mail = quote_header + $('mail_'+mail_id+'_body').innerHTML;
      quoted_mail = '<div style="border-left: 1px solid #cccccc; margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">' + quoted_mail + '</div>';
      tinyMCE.execInstanceCommand("email_body_text_area", "mceSetContent", false, "<br/><br/><br/>"+quoted_mail)}
      else   
        tinyMCE.execInstanceCommand("email_body_text_area", "mceSetContent", false, "");  
      
      tinyMCE.execCommand('mceFocus',false,'email_body_text_area');  //Try to help IE to focus, but doesn't help a lot :). Also if IE focuses it puts the caret at the bottom :(
      }, 200); 
   
  //}
}


function reset_mailing_list_fields(){
  var selects = document.getElementsByTagName('select');
  
  for (i=0; i < selects.length; i++)
    if (selects[i].id.match(/^mailing_list/))
      selects[i].value = '---';

  $('email_recipients').value = '';
}


function observe_mailing_list_fields(){
  
  var selects = document.getElementsByTagName('select');
  
  for (i=0; i < selects.length; i++)
    if (selects[i].id.match(/^mailing_list/))
      new Form.Element.EventObserver(selects[i].id, function(element, value) {new Ajax.Request('/admin/emails/ajax_create_mailing_list', {asynchronous:true, evalScripts:true, parameters:Form.serialize('email_form')})});
}


