/* MouseEnterLeave.js v1.0.0 by Ken Snyder: http://kendsnyder.com/sandbox/enterleave/ */
(function() {
  var events = Prototype.Browser.IE ? 
    {"bindAsMouseEnter":"fromElement", "bindAsMouseLeave":"toElement"} :
    {"bindAsMouseEnter":"relatedTarget", "bindAsMouseLeave":"relatedTarget"};
  for (var eventName in events) {
    (function(relTargetProperty) {
      Function.prototype[eventName] = function() {
        var __method = this, args = $A(arguments), object = args.shift();
        return function(event) {
          event = event || window.event;
          try { 
            var relatedTarget = $(event[relTargetProperty]);
            if (relatedTarget && relatedTarget != this && !relatedTarget.descendantOf(this)) {
              __method.apply(object, [Event.extend(event)].concat(args));
            }
          } catch(e) {}
        };
      };
    })(events[eventName]);
  }
})();

Element.addMethods({
  onHover: function(element, callbackOver, callbackOut) {
    return $(element).observe('mouseover', callbackOver).observe('mouseout', callbackOut);
  }
});



var uservoiceOptions = {
  /* required */
  key: 'konversi',
  host: 'konversi.uservoice.com', 
  forum: '38578',
  showTab: true,  
  /* optional */
  alignment: 'left',
  background_color:'#F77F00', 
  text_color: 'white',
  hover_color: '#9EC400',
  lang: 'de'
};

function _loadUserVoice() {
  var s = document.createElement('script');
  s.setAttribute('type', 'text/javascript');
  s.setAttribute('src', ("https:" == document.location.protocol ? "https://" : "http://") + "cdn.uservoice.com/javascripts/widgets/tab.js");
  document.getElementsByTagName('head')[0].appendChild(s);
}

function showfold(id) {	$(id).show(); }
function hidefold(id) {	$(id).hide(); }


function fixImgs(whichId, maxW) {
  if (whichId == "exp-bild") {
    var pix = $$("#exp-bild img");
  }
  var pix=document.getElementById(whichId).getElementsByTagName('img');
  for (i=0; i<pix.length; i++) {
    w=pix[i].width;
    h=pix[i].height;
    if (w > maxW) {
      f=1-((w - maxW) / w);
      pix[i].style.width=w * f + "px";
      pix[i].style.height=h * f + "px";
    }
  }
}

function fixImgs2(whichId) {
  var pix=document.getElementById(whichId).getElementsByTagName('img');
  for (i=0; i<pix.length; i++) {
    h=pix[i].height;
    if (h > 9 && h< 20) {
     if (h=19){
        pix[i].style.paddingBottom = "2px";
     } else {}
     pix[i].style.paddingTop = "4px";
    }
  }
}

function fixImgs3(whichId) {
  var pix=document.getElementById(whichId).getElementsByTagName('img');
  for (i=0; i<pix.length; i++) {
    h=pix[i].height;
    if (h > 9 && h< 15) {
     pix[i].style.marginBottom = "-3px";
    }
  }
}

function ajaxCall(url, options) {
  var default_options = $H({ form_authenticity_token: auth_token });
  options.parameters = default_options.merge(options.parameters);
  return new Ajax.Request(url, options);
}

function initTooltips() {
  $$(".tooltip_trigger").each(function(trigger) {
    trigger.observe("mouseover", function() {
      var text = trigger.readAttribute("tooltip");
      Tip(text, BGCOLOR, '#E7EBEE', TITLE,'', TITLEBGCOLOR, '#749eb2', TITLEFONTCOLOR, '#FFFFFF', WIDTH, 300, SHADOW, true);
    });
    trigger.observe("mouseout", function() {
      UnTip();
    });
  });
}
document.observe("dom:loaded", initTooltips);

/* checks the spelling in the currently active tiny_mce editor */
function checkSpelling() {
  if (tinyMCE.selectedInstance) tinyMCE.selectedInstance.execCommand("mceSpellCheck");
}
function handletinyMCEEvents(e) {
  if(e.type == 'keyup' && e.keyCode == 32) {
    tinyMCE.selectedInstance.execCommand("mceSpellCheck");
  }
}


function validateContactForm() {
  $$(".field_with_errors").invoke("removeClassName", "field_with_errors");
  var errors = false;
  $w("email_ name message_ address_").each(function(field) {
    if ($(field) && $F(field).blank()) {
      $(field).addClassName('field_with_errors')
      errors = true;
    }
  });
  var emailreg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
  if ($("email_") && !$F("email_").match(emailreg)) {
    $("email_").addClassName('field_with_errors')
    errors = true;
  }
  if (!errors) {
    $("email_").up("form").submit();
  }
}

function clearPrefills() {
  $$(".prefill").each(function(field) {
    field.value = "";
  });
}


function animatedLinkList(id) {
  var element = $(id);
  var list = element.down("ul");
  var height = list.immediateDescendants()[0].getDimensions().height;
  var hovered;
  element.observe('mouseover', function() {
    hovered = true;    
  }.bindAsMouseEnter());
  element.observe('mouseout', function() {
    hovered = false;
  }.bindAsMouseLeave());
  var page = 1;
  var rails_page = 1;
  var items = list.immediateDescendants();
  var per_page = 3;
  var timer = new PeriodicalExecuter(function() {
    if (hovered) return false;
    new Effect.Move(list, { x: 0, y: -per_page * height, duration: 0.4 });
    page += 1;
    if ((page + 1) * per_page > items.length) {
      rails_page += 1;
      var count = list.immediateDescendants().length;
      new Ajax.Request('/themen/questions?page=' + rails_page, { onComplete: function() {
        items = list.immediateDescendants();
        if (count == items.length) { // no new content received
          new Effect.Move(list, { mode: 'absolute', x: 0, y: 0, duration: 1.5 });
          page = 1;
        }
      } });
    }
  }, 10);
}





function initMarquee() {
  var i = 1
  $$("#insurer_news .insurer_news_row").each(function(div) {
    var width = div.getDimensions().width + $("insurer_news").getDimensions().width;
    scrollLeft(div, width, i);
    i += 1;
  });
}

function scrollLeft(element, width, factor) {
  new Effect.Move(element, { x: -width, y:0, mode: "relative", duration: width / 30 * factor, transition: Effect.Transitions.linear, afterFinish: function() { element.style.left = "0px"; scrollLeft(element, width, factor); } });
}