// Miscellaneous variables

var d = document;
var dc = document.cookie;
var sw = screen ? screen.width : 0;
var sh = screen ? screen.height : 0;

// Browser check (version / type)

var bName = navigator.appName;
var bAgent = navigator.userAgent;
var bVer = parseInt(navigator.appVersion);
var isDOM = document.getElementById;
var isOpera = (bAgent.indexOf('Opera') > 0 || bName == 'Opera');
var isOpera5 = (isOpera && bAgent.indexOf('Opera 5') > 0);
var isOpera6 = (isOpera && bAgent.indexOf('Opera 6') > 0);
var isOpera7 = (isOpera && bAgent.indexOf('Opera 7') > 0);
var isOpera8 = (isOpera && bAgent.indexOf('Opera 8') > 0);
var isOpera5up = (isOpera5 || isOpera6 || isOpera7 || isOpera8);
var isOpera6up = (isOpera6 || isOpera7 || isOpera8);
var isOpera7up = (isOpera7 || isOpera8);
var isIE = (bName == "Microsoft Internet Explorer" && bVer >= 4 && !isOpera);
var isIE4 = (bAgent.indexOf('MSIE 4') > 0 && isIE);
var isIE5 = (bAgent.indexOf('MSIE 5') > 0 && isIE);
var isIE6 = (bAgent.indexOf('MSIE 6') > 0 && isIE);
var isIE7 = (bAgent.indexOf('MSIE 7') > 0 && isIE);
var isIE5up = (isIE5 || isIE6 || isIE7);
var isIE6up = (isIE6 || isIE7);
var isMoz = (bAgent.indexOf("Gecko") > -1 && isDOM && !isOpera);
var isNS = (bName == "Netscape" && bVer >= 4 && !isOpera);
var isNS4 = (isNS && !isDOM);
var isNS5 = (isMoz && isNS);
var isNS6 = (isMoz && bVer >= 5 && isNS);
var isNS5up = (isNS5 || isNS6);
var isFFox = (isMoz && bAgent.indexOf('Firefox') > 0);
var isNew = (isIE5up || isNS6 || isOpera5up || isMoz || isFFox);
var isCool = (isIE5up || isNS6 || isMoz || isFFox || isOpera7up);

// Miscellaneous functions

function trim(s) { 
  if (typeof s != "string") return s;
  var retS = s; 
  var ch = retS.substring(0, 1);
  while (ch == " ") {
    retS = retS.substring(1, retS.length);
    ch = retS.substring(0, 1);
  }
  ch = retS.substring(retS.length - 1, retS.length);
  while (ch == " ") {
    retS = retS.substring(0, retS.length - 1);
    ch = retS.substring(retS.length - 1, retS.length);
  }
  while (retS.indexOf("  ") != -1) retS = retS.substring(0, retS.indexOf("  ")) + 
    retS.substring(retS.indexOf("  ") + 1, retS.length);
  return retS;
}

function is_integer(n) {
  var s = trim(n) + " ";
  for (var i = 0; i < s.length - 1; i++) {
    var c = s.charCodeAt(i);
    if (c < 48 || c > 57) return false;
  }
  return true;
}

function as_integer(n) {
  var s = trim(n) + " ";
  var result = "";
  for (var i = 0; i < s.length - 1; i++) {
    var c = s.charCodeAt(i);
    if (c >= 48 && c <= 57) result += s.charAt(i);
  }
  if (result == "") result = 0;
  return result;
}

function checkEmail(s) { 
  var ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
  var re1 = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
  var re2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
  for (var i = 0; i < s.length; i++) { if (ok.indexOf(s.charAt(i)) < 0) return false; }
  if (!s.match(re1) && s.match(re2)) return true; 
  else return false;
}

// Navigation buttons function

var btnImgs = new Array(9);
var btnsLoaded = false;

function preloadImages(sitePath) {
  var x, y;
  for (x = 1; x <= 9; x++) {
    btnImgs[x - 1] = new Array(2);
    btnImgs[x - 1][0] = new Image();
    btnImgs[x - 1][0].src = sitePath + "images/btn" + x + "1.gif";
    btnImgs[x - 1][1] = new Image();
    btnImgs[x - 1][1].src = sitePath + "images/btn" + x + "2.gif";
  }
  btnsLoaded = true;
}

function hoverBtn(idx, state) {
  if (!btnsLoaded) return;
  var btnImg = d.images["btn" + idx];
  if (btnImg != null) btnImg.src = btnImgs[idx - 1][state - 1].src;
}

// Cookie handler functions

function getExpiresDate(newdate) { 
  var today = new Date(); 
  var ms = Date.parse(today);
  today.setTime(ms + newdate * 24 * 60 * 60 * 1000);
  return today.toUTCString();
}

function getCookie(cname) { 
  var arg = cname + '='; 
  var alen = arg.length; 
  var clen = dc.length; 
  var i = 0;
  while (i < clen) {
    j = i + alen;
    if (dc.substring(i, j) == arg) {
      endstr = dc.indexOf(';', j);
      if (endstr == -1) endstr = dc.length;
      return unescape(dc.substring(j, endstr));
    }
    i = dc.indexOf(' ', i) + 1;
    if (i == 0) break;
  }
  return null;
}

function setCookie(cname, cvalue, cexpdate) { 
  var result = false;
  if (cname != null && cvalue != '') { 
    d.cookie = cname + '=' + escape(cvalue) + ';expires=' + getExpiresDate(cexpdate);
    if (getCookie(cname) != null) result = true;
  }
  return result;
}

function delCookie(cname) { 
 if (getCookie(cname) == null) return true;
 else if (setCookie(cname, '', -1) == false) return true;
 else return false;
}

// Fixed Popup Window

function showPopup(pwidth, pheight, surl) { 
  var param = "toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no," +
   "width=" + pwidth + ",height=" + pheight+",left=" + ((sw - pwidth) / 2) + ",top=" + ((sh - pheight) / 2);
  var fixdlgwin = window.open(surl, null, param, true);
  fixdlgwin.opener = window;
  fixdlgwin.focus();
}

// Extended Popup Window

function showPopupExt(pwidth, pheight, surl, extparams) { 
 var param = "width=" + pwidth + ",height=" + pheight + ",left=" + ((sw - pwidth) / 2) + ",top=" + 
   ((sh - pheight) / 2) + "," + extparams;
 var dlgwin = window.open(surl, null, param, true);
 dlgwin.opener = window;
 dlgwin.focus();
}

// Page functions

var entryTimer = 0;
var entryPos = 303;

function setFontSize(fs) {
  var i, s;
  var sClass = "2";
  var obj = null;
  if (fs == 0) {
    i = getCookie("fontsz");
    if (i == null) fs = 2; 
    else fs = i;
  }
  if (fs == 1) {
    sClass = "1";
    d.txtbtn1.className = "txtsizesel";
    d.txtbtn2.className = "txtsizeunsel";
    d.txtbtn3.className = "txtsizeunsel";
  } else if (fs == 3) {
    sClass = "3";
    d.txtbtn1.className = "txtsizeunsel";
    d.txtbtn2.className = "txtsizeunsel";
    d.txtbtn3.className = "txtsizesel";
  } else {
    d.txtbtn1.className = "txtsizeunsel";
    d.txtbtn2.className = "txtsizesel";
    d.txtbtn3.className = "txtsizeunsel";
  }
  for (i = 1; i < 1000; i++) {
    if (i < 10) s = "st0" + i; else s = "st" + i;
    obj = d.getElementById(s);
    if (obj == null) break;
    else obj.className = "smalltxt" + sClass;
  }
  for (i = 1; i < 1000; i++) {
    if (i < 10) s = "ht0" + i; else s = "ht" + i;
    obj = d.getElementById(s);
    if (obj == null) break;
    else obj.className = "headertxt" + sClass;
  }
  for (i = 1; i < 1000; i++) {
    if (i < 10) s = "it0" + i; else s = "it" + i;
    obj = d.getElementById(s);
    if (obj == null) break;
    else obj.className = "infotxt" + sClass;
  }
  for (i = 1; i < 1000; i++) {
    if (i < 10) s = "pt0" + i; else s = "pt" + i;
    obj = d.getElementById(s);
    if (obj == null) break;
    else obj.className = "plaintxt" + sClass;
  }
  setCookie("fontsz", fs, 356);
  window.status = '';
}

function setEntryScroll() {
  if (entryTimer > 0) clearTimeout(entryTimer);
  var srcboxscroll = d.getElementById("srcboxscroll");
  var hdrart = d.getElementById("hdrart");
  if (!isCool) return;
  if (entryPos != 0 && srcboxscroll != null) {
    entryPos = entryPos - 10;
    if (entryPos <= 0) entryPos = 0;
    srcboxscroll.style.left = entryPos + "px"
  }
  if (entryPos > 0) entryTimer = setTimeout("setEntryScroll()", 10);
  else {
    var srcbox = d.srcform.qs;
    if (srcbox != null && trim(srcbox.value) == "") {
      srcbox.value = "Cauta...";
      srcbox.style.color = "#686868";
    }
  }
}

function initPage(sitePath) {
  preloadImages(sitePath);
  setFontSize(0);
}

// Search box functions

var fadeTimer = 0;
var fadeLevel = 0;
var fadeDelta = 20;
var serchtipVisible = false;

function fadeInToolTip() {
  if (fade_timerid1 > 0) clearTimeout(fadeTimer);
  var searchtip = d.getElementById("searchtip");
  if (searchtip == null) return;
  fadeLevel = parseInt(fadeLevel) + 10;
  if (fadeLevel >= 100) {
    if (!isIE5up) fadeLevel = 99;
    else fadeLevel = 100;
  }
  if (isIE5up) searchtip.filters.alpha['opacity'] = parseInt(fadeLevel);
  else searchtip.style.MozOpacity = parseInt(fadeLevel)/100;
  if (fadeLevel < 99) fadeTimer = setTimeout("fadeInToolTip()", fadeDelta);
}

function fadeOutToolTip() {
  if (fadeTimer > 0) clearTimeout(fadeTimer);
  var searchtip = d.getElementById("searchtip");
  if (searchtip == null) return;
  fadeLevel = parseInt(fadeLevel) - 20;
  if (isIE5up) searchtip.filters.alpha['opacity'] = parseInt(fadeLevel);
  else searchtip.style.MozOpacity = parseInt(fadeLevel)/100;
  if (fadeLevel > 10) fadeTimer = setTimeout("fadeOutToolTip()", fadeDelta);
  else {
    searchtip.style.visibility = "hidden";
    serchtipVisible = false;
  }
}

function hideSearchTip() {
  if (!serchtipVisible) return;
  if (isIE5up || isMoz) {
    serchtipVisible = false;
    fadeOutToolTip();
    return;
  }
  var searchtip = d.getElementById("searchtip");
  if (searchtip == null) return;
  searchtip.style.visibility = "hidden";
  serchtipVisible = false;
  d.srcform.qs.focus();
}

function searchExit() {
  var srcbox = d.srcform.qs;
  if (srcbox == null) return;
  if (trim(srcbox.value) == "") {
    srcbox.value = "Site search...";
    srcbox.style.color = "#656565";
  }
}

function searchEnter() {
  var srcbox = d.srcform.qs;
  if (srcbox == null) return;
  if (isIE5up) var isEmpty = (srcbox.style.color == "#686868");
  else var isEmpty = (srcbox.value == "Site search...");
  if (isEmpty) {
    srcbox.value = "";
    srcbox.style.color = "#101010";
  }
}

function checkSearch() {
  var srcbox = d.srcform.qs;
  if (srcbox == null) return false;
  srcbox.value = trim(srcbox.value);
  if (isIE5up) var isEmpty = (srcbox.style.color == "#656565");
  else var isEmpty = (srcbox.value == "Site search...");
  if (isEmpty || srcbox.value == "") return false;
  else return true;
}

// Newsletter functions

function doSubscribe() {
  window.status = '';
  d.nlform.eml.value = trim(d.nlform.eml.value);
  if (d.nlform.eml.value == "") {
    alert('Please enter a valid email address.  ');
    d.nlform.eml.focus();
    return;
  }
  if (!checkEmail(d.nlform.eml.value)) {
    alert('Newsletter Subscribe Error - Invalid email address.  ');
    d.nlform.eml.focus();
    return;
  }
  d.nlform.submit();
}

function doUnsubscribe() {
  window.status = '';
  d.nlform.eml.value = trim(d.nlform.eml.value);
  if (d.nlform.eml.value == "") {
    alert('Please enter a valid email address.  ');
    d.nlform.eml.focus();
    return;
  }
  if (!checkEmail(d.nlform.eml.value)) {
    alert('Newsletter Unsubscribe Error - Invalid email address.  ');
    d.nlform.eml.focus();
    return;
  }
  d.location.href='/unsubscribe.php?eml=' + escape(d.nlform.eml.value);
}

function checkNewsletter() {
  d.nlform.eml.value = trim(d.nlform.eml.value);
  if (d.nlform.eml.value == "") {
    alert('Please enter a valid email address.  ');
    d.nlform.eml.focus();
    return false;
  }
  if (!checkEmail(d.nlform.eml.value)) {
    alert('Newsletter Unsubscribe Error - Invalid email address.  ');
    d.nlform.eml.focus();
    return false;
  }
  return true;
}