//--------------------------------------------------------------------------------------------------
// Site JavaScript Utils [for Ka & Te Associates website]
//--------------------------------------------------------------------------------------------------
// Version: 2.35 [2006-05-18]
// 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();
}

// Footer position function

var inScroll = false;
var timeScroll = null;

function setLayout() {
  var pf = d.getElementById('pfooter');
  var wh = 0, stop = 0, t = 0;
  if (pf != null) {
    if (window.innerHeight && typeof(window.innerHeight) == 'number') wh = window.innerHeight;
    else if (d.documentElement && d.documentElement.clientHeight) wh = d.documentElement.clientHeight;
    else if (d.body && d.body.clientHeight) wh = d.body.clientHeight;
    if (typeof(window.pageYOffset) == 'number') stop = window.pageYOffset;
    else if (d.body && d.body.scrollTop) stop = d.body.scrollTop;
    else if (d.documentElement && d.documentElement.scrollTop) stop = d.documentElement.scrollTop;
    if (wh > 0) {
      if (isCool) t = stop + (wh - 24); else t = stop + (wh - 22);
      pf.style.top = t + 'px';
      pf.style.visibility = 'visible';
    }
  }
}

function flyOnTime() {
  if (!inScroll) {
    if (timeScroll) clearTimeout(timeScroll);
    timeScroll = null;
    alert('aici');
    return;
  }
  var pf = d.getElementById('pfooter');
  var pt = '', spt = '';
  var wh = 0, stop = 0, t = 0, tdelta = 0;
  if (pf != null) {    
    if (window.innerHeight && typeof(window.innerHeight) == 'number') wh = window.innerHeight;
    else if (d.documentElement && d.documentElement.clientHeight) wh = d.documentElement.clientHeight;
    else if (d.body && d.body.clientHeight) wh = d.body.clientHeight;
    if (typeof(window.pageYOffset) == 'number') stop = window.pageYOffset;
    else if (d.body && d.body.scrollTop) stop = d.body.scrollTop;
    else if (d.documentElement && d.documentElement.scrollTop) stop = d.documentElement.scrollTop;
    if (wh > 0) {
      spt = pf.style.top.toLowerCase();
      for (var i = 0; i < spt.length; i++) if (spt.charAt(i) != 'p' && spt.charAt(i) != 'x') pt = pt + spt.charAt(i);
      pt = eval(pt) + 1 - 1;
      if (isCool) tdelta = 24; else tdelta = 24;
      t = stop + (wh - tdelta); 
      if (pt < t) {
        pt = pt + 8;
        if (pt > t) { pt = t; inScroll = false; }
        pf.style.top = pt + 'px';
      } else if (pt > t) {
        if (pt > t + tdelta + 8) pt = t + tdelta + 8;
        pt = pt - 8;
        if (pt < t) { pt = t; inScroll = false; }
        pf.style.top = pt + 'px';        
      } else inScroll = false;
      if (inScroll) setTimeout("flyOnTime()", 10);
    }
  }
}

function flyBottomBar(e) {
  if (!e) e = window.event;
  if (e.type == 'scroll' && !inScroll) {
    inScroll = true;
    timeScroll = setTimeout("flyOnTime()", 10);
  }
}

// Ka-Te page form actions
//Popup Window Script
function openpopup(popurl, title){
var popurl;
var title;
winpops=window.open(popurl,'title',"toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0,scrollbars=0,titlebar=1,width=330,height=450,left=600,top=200,screenX=150,screenY=150,");
winpops.document.close();
}

// Ka-Te page form actions
//On mouse over Window Script
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}



// Ka-Te page form actions

function doSearch() {
  var theform = d.theform;
  if (theform == null) return;
  var qs = theform.qs;
  var lang = theform.lang;
  if (qs == null || lang == null) return;
  var qstr = trim(qs.value);
  var lng = lang.value;
  if (qstr != "") window.location.href = 'search.php?qs=' + escape(qstr) + '&lang=' + lng;
  else qs.focus();
}

function doSubUnsub(mode,smsg1,smsg2) {
  var theform = d.theform;
  if (theform == null) return;
  var eml = theform.nleml;
  var lang = theform.lang;
  if (eml == null || lang == null) return;
  var emlstr = trim(eml.value);
  var lng = lang.value;
  if (emlstr == "") {
    if (smsg1 != "") alert(smsg1);
    eml.focus();
    return;
  } else if (!checkEmail(emlstr)) {
    if (smsg2 != "") alert(smsg2);
    eml.focus();
    return;
  }
  var surl = 'subscribe.php';
  if (mode == 2) surl = 'un' + surl;
  window.location.href = surl + '?seml=' + escape(eml.value) + '&lang=' + lng;
}

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