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

Element.Center = function(element, parent) {
        var w, h, pw, ph, ot, ol;
        var d = Element.getDimensions(element);
        w = d.width;
        h = d.height;
        //Position.prepare();
        if (!parent) {
                var ws = document.viewport.getDimensions(); //Position.GetWindowSize();
                pw = ws.width;
                ph = ws.height;
		var so = document.viewport.getScrollOffsets();
		ot = 0 //so.top;
		ol = 0 //so.left;
        } else {
                pw = parent.offsetWidth;
                ph = parent.offsetHeight;
		ot = 0;
		ol = 0;
        }
	element.style.position = 'fixed';
        element.style.top = (ph/2) - (h/2) +  ot + "px";
        element.style.left = (pw/2) - (w/2) +  ol + "px";
}



function d(obj)
{
  for (var i in obj)
  {
    if (obj[i] && obj[i] != '')
      debug(i + ' : ' + obj[i]);
  }
}

function pOpen(el, center, callback, id)
{
  var el = $(el);
  var W = 20;
  var sp;
  var container;

  if (center && $(center) != true)
  {
    container = $(center);
    sp = container.down('.popup-wrapper');
  }
  else
  {
    container = el.up();
    if (id)
      sp = $(id);
    else
      sp = el.next('.popup-wrapper');
  }

  if (Object.isUndefined(sp))
    sp = el.select('span')[0];
  if (el.hasClassName('popup') && !sp.hasClassName('popup-wrapper'))
  {
    if (!callback)
      callback = '';
    sp = sp.wrap('div', { 'class': 'popup-wrapper', 'style': 'position:absolute;z-index:24' });
    sp.insert({top:'<a href="javascript:void(0);" onclick="pClose($(this).up());'+callback+'" id="popup_close_button">x</a>'});
    sp.remove();
    //el.insert({after: sp});
    container.insert({bottom: sp});
  }

  var xy = el.viewportOffset();
  var wh = sp.getDimensions();
  var doc_wh = document.viewport.getDimensions();

  var pxy;
 
  if (sp.tagName != 'SPAN')
  {
    if (!center)
    {
      pxy = el.positionedOffset();
      sp.style.left = pxy.left + 'px';
      sp.style.top = (pxy.top - W) + 'px';
    }
    else
    {
      center = $(center);
      if (center == true)
      {
	sp.style.display = 'block';
	Element.Center(sp);
	return;
      }
      pxy = center.positionedOffset();
      var pwh = center.getDimensions();
      sp.style.left = (pxy.left + (pwh.width - wh.width) / 2) + 'px';
      sp.style.top = '4px'; //(pxy.top + (pwh.height - wh.height) / 2) + 'px';
    }
  }

  sp.style.display = 'block';
  var sp_xy = sp.viewportOffset();

//  alert(sp_xy.left);

  var space_w = doc_wh.width - (sp_xy.left + wh.width + W);
  var space_h = doc_wh.height - (sp_xy.top + wh.height + W);
  if (space_w < 0)
    sp.style.left = space_w + 'px';
  if (space_h < 0)
    sp.style.top = space_h + 'px';

  sp_xy = sp.viewportOffset();
//   alert(sp_xy.left);
 
  if (sp_xy.left < 0)
      sp.style.left = 0 + 'px';
  if (sp_xy.top < 0)
      sp.style.top = 0 + 'px';
}

function pClose(el)
{
  var el = $(el);
  var sp = el;
  if (el.tagName == 'A')
    sp = el.select('span')[0];
  sp.style.display = 'none';
  el.blur();
}

function pToggle(el)
{
  var el = $(el);
  if (el.select('span')[0].style.display == 'block')
    pClose(el);
  else
    pOpen(el);
}


function f_show(id, pre)
{
  if (!pre)
    pre = 'div_';

	var fx = new Effect.Fade($('plus_' + id));
	fx = new Effect.Appear($('minus_' + id));
	fx = new Effect.Appear($(pre + id));
}

function f_show_fast(id, pre)
{
  if (!pre)
    pre = 'div_';
	var fx = new Effect.Fade($('plus_' + id), { duration: 0.0 } );
	fx = new Effect.Appear($('minus_' + id), { duration: 0.0 } );
	fx = new Effect.Appear($(pre + id), { duration: 0.0} );
}

function f_hide(id, pre)
{
  if (!pre)
    pre = 'div_';
	var fx = new Effect.Fade($('minus_' + id));
	fx = new Effect.Appear($('plus_' + id));
	fx = new Effect.Fade($(pre + id));
}

function f_showHide(id, pre)
{
  if (!pre)
    pre = 'div_';

  var elem = $(pre + id);

	if (elem.style.display == 'none')
	{
		f_show(id, pre);
	}
	else
	{
		f_hide(id, pre);
	}

	return;
}

function f_toggle(id, disp)
{
  if (!disp)
    disp = 'block';

	var elem = $(id);

	if(elem.style.display == 'none')
	{
		elem.style.display = disp;
	}
	else
	{
		elem.style.display = 'none';
	}

	return;
}

function addComment(el, id, ind)
{
  $('comment_return_message').update("");
  $('comment_indicator').update(ind);
  $('comment_description').value = '';
  $('comment_ind_id').value = id;
  pOpen(el, true, '', 'comment_box');
}

function clearCommentBox(request)
{
  var sub = $('comment_submit');
  sub.disabled = false;
  sub.value = sub.getAttribute('originalValue');

  var response = request.responseText;
  if (response == 'Merci' || response == 'Thank you') // success
  {
    alert(response);
    $('comment_return_message').update("");
    $('comment_box').hide();
    $('comment_description').value = '';
    $('comment_ind_id').value = '';
    return;
  }

}
