/* Browser specific code */

var browser = "common";
if ( navigator.userAgent.indexOf ("MSIE") != -1)
    browser = "ie";
else if ( navigator.userAgent.indexOf ("AppleWebKit") != -1)
    browser = "webkit";
else if ( navigator.userAgent.indexOf ("Opera") != -1)
    browser = "opera";
else if ( navigator.userAgent.indexOf ("Gecko") != -1)
    browser = "gecko";

/* Multi Browser Code */

function AddEvent(obj, event, func)
{ if (obj.addEventListener) obj.addEventListener(event, func, false);
  else obj.attachEvent('on' + event, func); }

function DelEvent(obj, event, func)
{ if (obj.removeEventListener) obj.removeEventListener(event, func, false);
  else obj.detachEvent('on' + event, func); }

var ScreenPos = {X:0, Y:0, width:0, height:0, hScroll:0, wScroll:0, obj:false};
function UpdateScreenPos(event)
{
  try
  { //no suprises
    ScreenPos.width  = window.innerWidth  || document.documentElement.clientWidth  || document.body.clientWidth  || 1024;
    ScreenPos.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 768;
    ScreenPos.hScroll = document.documentElement.scrollTop  || document.body.scrollTop  || window.pageYOffset || 0;
    ScreenPos.wScroll = document.documentElement.scrollLeft || document.body.scrollLeft || window.pageXOffset || 0;
    ScreenPos.X = (browser!='ie') ? event.pageX : (window.event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft);
    ScreenPos.Y = (browser!='ie') ? event.pageY : (window.event.clientY + (document.documentElement.scrollTop  || document.body.scrollTop)  - document.documentElement.clientTop);
    ScreenPos.obj = (browser!='ie') ? event.target : event.srcElement;
  }
  catch(e) {}
}
AddEvent(document, 'mousemove', UpdateScreenPos);

function CheckEnter(event)
{
  var keyCode = window.event ? window.event.keyCode : (event ? event.which : 0);
  return (keyCode == 13);
}

function Pos(obj)
{
  this.width  = obj.offsetWidth;
  this.height = obj.offsetHeight;

  this.X = 0;
  this.Y = 0;
  do { this.X += obj.offsetLeft; this.Y += obj.offsetTop; obj = obj.offsetParent; } while (obj);
}

function SubmitOnEnter(event, form)
{ if (CheckEnter(event)) form.submit(); }

var tt         = false;
var tt_hovered = false;
function StartPopup(obj, popup, under_mouse)
{
  if (tt) tt.style.display = 'none';

  var S = ScreenPos;
  var P = obj ? new Pos(obj) : new Array();

  if (typeof(under_mouse) != 'undefined')
  { P.X = S.X; P.Y = S.Y; P.width = P.height = 15; }

  tt = (typeof(popup) == 'object') ? popup : document.getElementById(popup);
  if (!tt) return;

  tt.style.visibility = 'hidden';
  tt.style.display    = 'block';

  tt.style.left    = (P.X + ((P.X<S.width/2)  ? 0 : P.width - tt.offsetWidth)) + 'px';
  tt.style.top     = (P.Y + ((P.Y<S.height/2) ? 2 + P.height : - 2 - tt.offsetHeight)) + 'px';

  if (browser=='ie')
  { var f = document.getElementById('layerframe');
    f.style.left  =tt.style.left; f.style.top   =tt.style.top;
    f.style.width =tt.offsetWidth;f.style.height=tt.offsetHeight;
    f.style.display='block'; }

  tt.style.visibility = 'visible';

  if (typeof(under_mouse) == 'undefined')
  {
    tt_hovered = false;
    AddEvent(document, 'mousemove', CheckPopup);
  }
}

function CheckPopup(event)
{
  if (!tt) return;
  var D = 30; var S = ScreenPos; var P = new Pos(tt);
  if ( (S.X<P.X-D) || (S.X>P.X+P.width+D) || (S.Y<P.Y-D) || (S.Y>P.Y+P.height+D) )
  { if (tt_hovered) HidePopup(event); }
  else
  { tt_hovered = true; }
}

function HidePopup(event)
{ if (!tt) return;
  tt.style.display = 'none'; tt = false;
  if (browser=='ie') document.getElementById('layerframe').style.display='none';
}

function StartTooltip(event, obj, text)
{
  var t = document.getElementById('tooltip');
  //text = unescape(text);//decodeURIComponent(text)
  t.innerHTML = text;
  setTimeout( function()
  { if (t.innerHTML != text) return;
    StartPopup(null, t.parentNode, true); }, 200 );

  obj.onmouseout = function()
  { if (t.innerHTML != text) return;
    t.parentNode.style.display='none'; t.innerHTML = '';
    if (browser=='ie') document.getElementById('layerframe').style.display='none'; }
}

function ToggleSection(obj)
{
  var state = document.getElementById(obj).style;
  state.display = (state.display == 'none') ? 'block' : 'none';
  return false;
}

activepage = '';
function SetPage(id)
{
  if (activepage.length > 0)
  {
    document.getElementById('link_'+activepage).className = "";
    document.getElementById('cont_'+activepage).style.display = "none";
  }

  document.getElementById('link_'+id).className = "selected";
  document.getElementById('cont_'+id).style.display = "block";
  activepage = id;
}

var input_mon = new Array();
function InputDesc(input)
{
  var id = input.parentNode.id + '_desc';
  var D  = document.getElementById(id);
  if (D)
  { for (var i in input_mon)
    { document.getElementById(input_mon[i].parentNode.id+'_desc').style.display = input_mon[i].value.length ? 'none' : 'block';
      input_mon[i].style.display = input_mon[i].value.length ? 'block' : 'none'; }
    return; }
  var P = new Pos(input);
  var D = document.createElement('a');
  D.id  = id;
  D.style.display = input.value.length ? 'none' : 'block';
  D.typeName      = 'text';
  D.className     = input.className;
  D.title         = input.title;
  D.innerHTML     = '&nbsp;'+input.title;
  D.tabIndex      = input.tabIndex;
  D.onclick       = function() { this.style.display = 'none'; input.style.display = 'block'; input.focus(); }
  D.onfocus       = function() { this.style.display = 'none'; input.style.display = 'block'; input.focus(); };
  input.onblur    = function() { InputDesc(this); };
  input.onchange  = function() { InputDesc(this); };
  input.style.display = input.value.length ? 'block' : 'none';
  input.parentNode.insertBefore(D, input);
  input_mon[input_mon.length] = input;
}

function DateLoad(obj, value)
{ var date = value.split('.');
  if (date.length < 3) date = new Array('0000','00','00');
  var o = document.getElementById(obj); o.value = date.join('.');
  for (n in o.parentNode.childNodes) switch (o.parentNode.childNodes[n].className)
  { case 'date_year' : o.parentNode.childNodes[n].value = date[0]; break;
    case 'date_month': o.parentNode.childNodes[n].value = date[1]; break;
    case 'date_day'  : o.parentNode.childNodes[n].value = date[2]; break; } }

function DateUpdate(obj, pos, value)
{ var date = document.getElementById(obj).value.split('.');
  date[pos] = value;
  document.getElementById(obj).value = date.join('.'); }

function ListUpdate(list,item,added,delim)
{ var l = list.value.length ? list.value.split(delim) : new Array();
  for (var n=0;n<l.length;++n) if (l[n]==item)
  { if (added) return;
    l.splice(n,1); list.value=l.join(delim); return; }
  if (!added) return;
  l[l.length] = item; list.value=l.join(delim); return;
}

function Hover(obj, custom)
{ if (ScreenPos.obj && (ScreenPos.obj.nodeName == 'INPUT')) return;
  var i = obj.getElementsByTagName('input');
  for (var n=0; n<i.length; ++n)
  { if (i[n].type == 'text') continue;
    if (!i[n].checked) continue;
    i[n].focus(); return; }
  for (var n=0; n<i.length; ++n)
  { if (i[n].type == 'text') continue;
    i[n].focus(); return; }
}

function Summary(pfx, sum)
{ var val = 0;
  for (var n=1; o=document.getElementById(pfx+'_o'+n); ++n)
  { if (typeof(o.onchange) != 'function') o.onkeyup = function(){ Summary(pfx,sum); };
    val += parseInt(o.value, 10) || 0; }
  for (var n=1; o=document.getElementById(pfx+'_c'+n); ++n)
  { if (typeof(o.onchange) != 'function') o.onkeyup = function(){ Summary(pfx,sum); };
    val += parseInt(o.value, 10) || 0; }
  document.getElementById(pfx+'_sum').innerHTML = val + (sum==100?'%':'');
  document.getElementById(pfx+'_sum').style.color = (val != sum) ? 'red' : '';
}

function StartGallery(gallery, num)
{
  HideLayer();

  var html = '';
  html += '<div id="prevlink">&lt;</div>';
  html += '<div id="nextlink">&gt;</div>';
  html += '<div class="img_holder"><div class="img_border"><img id="galleryimg" src="'+gallery[num][0]+'"/></div><div class="img_info">'+gallery[num][1]+'</div></div>';

  //var pic = new Image(1,1); pic.src = gallery[num][0];
  ShowLayer(html, 510);
  document.getElementById('galleryimg').style.maxWidth = '410px';

  var margin = Math.max(100, (document.getElementById('popupcontent').offsetHeight - document.getElementById('prevlink').offsetHeight) / 2 - 1);

  if (num > 0)
  { document.getElementById('prevlink').onclick = function() { StartGallery(gallery, num-1); };
    document.getElementById('prevlink').style.margin  =  margin + 'px 10px';
    document.getElementById('prevlink').style.visibility = 'visible'; }
  if (num < gallery.length-1)
  { document.getElementById('nextlink').onclick = function() { StartGallery(gallery, num+1); };
    document.getElementById('nextlink').style.margin  =  margin + 'px 10px';
    document.getElementById('nextlink').style.visibility = 'visible'; }

  return false;
}

function ShowLayer(html, width)
{
  document.getElementById('popupcontent').innerHTML = html;

	document.getElementById('popuplayer').style.height  = Math.max(ScreenPos.hScroll + ScreenPos.height,document.body.offsetHeight) + "px";
  document.getElementById('popuplayer').style.display = 'block';

  var p = document.getElementById('popupcontainer');
  p.style.display = 'block';
  p.style.top   = (ScreenPos.hScroll + (ScreenPos.height / 4)) + "px";
  p.style.left  = ((ScreenPos.width - width) / 2) + "px";
  p.style.width = width + "px";
  p.style.visibility = 'visible';
}

function HideLayer()
{
  document.getElementById('popupcontainer').style.display    = 'none';
  document.getElementById('popupcontainer').style.visibility = 'hidden';
  document.getElementById('popuplayer').style.display = 'none';
}


var print_wnd  = false;
function PrintPopup(loc)
{
  print_wnd  = window.open (loc,'print_page','location=0,status=0,scrollbars=1,width=700,height=400');
  if (typeof(print_wnd.loaded) != 'undefined') print_wnd.loaded = false;
  setTimeout('PrintCheck()', 200);
  return false;
}

function PrintCheck()
{
  if ((typeof(print_wnd.loaded) == 'undefined') || (print_wnd.loaded != true))
  { setTimeout('PrintCheck()', 200); return; }

  print_wnd.document.getElementById('doccontent').innerHTML = document.getElementById('doccontent').innerHTML;

  var nav;
  for (var num=1; nav=print_wnd.document.getElementById('no_print'+num); ++num )
    nav.style.display = 'none';

  for (var num=0; nav=print_wnd.document.getElementById('cont_cpage'+num); ++num )
    nav.style.display = 'block';
}
