//--------------------------------------------------------------------------------------------------
// Site JavaScript Utils
//--------------------------------------------------------------------------------------------------
// Version: 2.3 [2006-03-12]
// Author: Radu Buzea [www.hypnosis.ro]
// Copyright (C) 2005-2006, Radu Buzea - Distributed under the GNU Lesser General Public License
//--------------------------------------------------------------------------------------------------

// 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 isIE5up = (isIE5 || isIE6);
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;
}

// 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();
}

// Navigation function

function nav(page) { window.location.href = page; }

// Query strings handler functions

function QueryStr(key){
  var value = null;
  for (var i = 0; i < QueryStr.keys.length; i++) {
    if (QueryStr.keys[i] == key) { value = QueryStr.values[i]; break; }
  }
  return value;
}

QueryStr.keys = new Array();
QueryStr.values = new Array();

function ParseQueryStr(){ 
  var qs = window.location.search.substring(1);
  var ps = qs.split("&");
  for (var i = 0; i < ps.length; i++) {
    var p = ps[i].indexOf('=');
    if (p >= 0) { 
      var argname = ps[i].substring(0, p);
      var value = ps[i].substring(p + 1);
      QueryStr.keys[QueryStr.keys.length] = argname;
      QueryStr.values[QueryStr.values.length] = value;		
    }
  }
}

ParseQueryStr();
