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


/************************************************************/

function scroll_element(element_name, direction, scroll_by) {
  var ele = $(element_name);

  var top = ele.getStyle('top'); top = (top == null ? 0 : parseInt(top));
  var left = ele.getStyle('left'); left = (left == null ? 0 : parseInt(left));

  var width = parseInt(ele.getStyle('width'));
  var height = parseInt(ele.getStyle('height'));

  var y = 0;
  var x = 0;

  if ( direction == 'down' ) {
    y = [height + top - scroll_by, scroll_by].min();
    if ( height + top >= scroll_by && y > 0 ) {
      y = -y;
    }else {
      y = 0;
    }
  }else if (direction == 'up') {
    y = [top.abs(), scroll_by].min();
    if ( !(top < 0 && y > 0) ) {
      y = 0;
    }
  }else if ( direction == 'left' ) {
    x = [width + left - scroll_by, scroll_by].min();
    if ( width + left >= scroll_by && x > 0 ) {
      x = -x;
    }else {
      x = 0
    }
  }else if (direction == 'right') {
    x = [left.abs(), scroll_by].min();
    if ( !(left < 0 && x > 0) ) {
      x = 0;
    }
  }

  if ( x != 0 || y != 0 ) {
    new Effect.Move(element_name, {x: x, y: y, queue: { position: 'end', scope: 'global', limit: 1 } });
  }
}

/************************************************************/

function toggle_box_tab(link, divid, tab) {
  $$('#' + divid + ' div.box-content > div').each( 
    function(e) { 
      $(e).hide();
    }
  );

  $$('#' + divid + ' div.box01-head-tab > a').each( 
    function(e) { 
      $(e).removeClassName('active');
    }
  );

  $(link).addClassName('active');
  $$('#' + divid + ' div.box-content > div.' + tab).first().show();
}

/************************************************************/

var topnav_timer;

/************************************************************/

function topnav_on(obj_or_event) {
  var ele;

  try {
    ele = obj_or_event.element();
  }catch(e) {
    ele = obj_or_event;
  }

  topnav_all_off();

  try {
    dropdown = "topnav_dropdown_" + ele.rel;
    $(dropdown).show();
  }catch(e) {;}

}

/************************************************************/

function topnav_all_off() {

  clearTimeout(topnav_timer);

  $$('#topnav a.has_dropdown').each( 
    function(e) { 
      topnav_off(e);  
    }
  );
}

/************************************************************/

function topnav_off_timer(event) {
  topnav_timer = setTimeout(topnav_off, 1000, event);
}

/************************************************************/

function topnav_off(obj_or_event) {
  var ele;

  try {
    ele = obj_or_event.element();
  }catch(e) {
    ele = obj_or_event;
  }

  try {
    dropdown = "topnav_dropdown_" + ele.rel;
    $(dropdown).hide();
  }catch(e) {;}

}

/************************************************************/

function topnav_dropdown_on(obj_or_event) {
  clearTimeout(topnav_timer);
}

/************************************************************/

function topnav_dropdown_off(obj_or_event) {
  clearTimeout(topnav_timer);
  topnav_timer = setTimeout(topnav_all_off, 200);
}

/************************************************************/

Event.observe(window, 'load', function() {  

  $$('#topnav a').each( 
    function(e) { 
      Event.observe(e, "mouseover", topnav_on);  
      Event.observe(e, "mouseout", topnav_off_timer);  
    }
  );

  $$('#topnav_dropdowns div.topnav_dropdown').each(
    function(e) {
      Event.observe(e, "mouseover", topnav_dropdown_on);  
      Event.observe(e, "mouseout", topnav_dropdown_off);  
    }
  );

});

/************************************************************/
