// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function change_make_primary(element){
  if( element.getAttribute('checked') ){
    $('.make_primary').setAttribute('checked',null);
  } 
}

function mark_for_deletion(element){
  $(element).next('.should_destroy').value = 1;
  $(element).up('.form-input').previous().hide();
  $(element).up('.form-input').hide();
}

function mark_subscription_type_for_deletion(element){
  $(element).next('.should_destroy').value = false; 
  $(element).up('table').hide();
}

function externalLinks() {
 if (!document.getElementsByTagName){ return;}
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external"){
     anchor.target = "_blank";
   }
 }
}
Event.observe(window, 'load', externalLinks );


function preventDefault(e){
  if (e && e.preventDefault){
    e.preventDefault();
  } else if (window.event) {
    window.event.returnValue = false;
  }
}

function set_up_notice_controls(){
  var notice = $('notice-rounded');
  var timeout = false;
  if(notice){
    //after 10 secs fade out
    var set_fade_out = function(){
     // timeout = setTimeout(fade_out_now,10000);
    };
    var fade_out_now = function(){
      $('notice-rounded').fade({duration:0.5});
    };
    //if the user hovers over the notice do not fade out till 10 secs after they stop hovering
    Event.observe(notice, 'mouseover', function(e){
      if(timeout){
        clearTimeout(timeout);
        timeout = false;
      }
    });
    
    Event.observe(notice, 'mouseout', function(e){
      set_fade_out();
    });
    //if the user clicks on the close button then it fade out immediately
    Event.observe(notice.down('.close-button'), 'click', function(e){
      fade_out_now();
    });
    
    set_fade_out();
  }
}

Event.observe(window, 'load', function(){
  var close_spans = $$('.closer');
  var click_listener = function(e) {
    target = Event.element(e);
    target.up().hide();
  };
  for (var i=0; i < close_spans.length; i++) {
    Event.observe(close_spans[i], 'click', click_listener);
  }
  set_up_notice_controls();
});

function get_identifier(element){
  var splitted = element.id.split('-');
  return splitted[(splitted.length-1)];
}

function insertAtCursor(myField, myValue) {
  //IE support
  if (document.selection) {
    myField.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
  }
  //MOZILLA/NETSCAPE support
  else if (myField.selectionStart || myField.selectionStart == '0') {
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
    } else {
    myField.value += myValue;
  }
}

function insert_throbber(selector){
  selected = $$(selector)[0];
  if(selected){
    selected.update('<img class="throbber" alt="loading" src="/images/throbber.gif"/>');
  }
}