<!--

/* addEvent: simplified event attachment */
function addEvent( obj, type, fn ) {
  if (obj.addEventListener) {
    obj.addEventListener( type, fn, false );
    EventCache.add(obj, type, fn);
  } else if (obj.attachEvent) {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
    obj.attachEvent( "on"+type, obj[type+fn] );
    EventCache.add(obj, type, fn);
  } else {
    obj["on"+type] = obj["e"+type+fn];
  }
}
  
var EventCache = function(){
  var listEvents = [];
  return {
    listEvents : listEvents,
    add : function(node, sEventName, fHandler){
      listEvents.push(arguments);
    },
    flush : function(){
      var i, item;
      for(i = listEvents.length - 1; i >= 0; i = i - 1){
        item = listEvents[i];
        if(item[0].removeEventListener){
          item[0].removeEventListener(item[1], item[2], item[3]);
        };
        if(item[1].substring(0, 2) != "on"){
          item[1] = "on" + item[1];
        };
        if(item[0].detachEvent){
          item[0].detachEvent(item[1], item[2]);
        };
        item[0][item[1]] = null;
      };
    }
  };
}();
addEvent(window, 'unload', EventCache.flush);

/* window 'load' attachment */
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  }
  else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

/* grab Elements from the DOM by className */
function getElementsByClass(searchClass,node,tag) {
  var classElements = new Array();
  if (node == null) node = document;
  if (tag == null) tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className)) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}

/* toggle an element's display */
function toggle(obj) {
  var el = document.getElementById(obj);
  if (el.style.display != 'none') {
    el.style.display = 'none';
  } else {
    el.style.display = '';
  }
}

/* insert an element after a particular node */
function insertAfter(parent, node, referenceNode) {
  parent.insertBefore(node, referenceNode.nextSibling);
}

/* Array prototype, matches value in array: returns bool */
Array.prototype.inArray = function (value) {
  var i;
  for (i=0; i < this.length; i++) {
    if (this[i] === value) {
      return true;
    }
  }
  return false;
};

function trimString (str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
String.prototype.trim = trimString;

/* get, set, and delete cookies */
function getCookie(name) {
  var start = document.cookie.indexOf(name + "=");
  var len = start + name.length + 1;
  if ((!start) && (name != document.cookie.substring(0, name.length))) {
    return null;
  }
  if (start == -1) return null;
  var end = document.cookie.indexOf(";", len);
  if (end == -1) end = document.cookie.length;
  return unescape( document.cookie.substring(len, end));
}
  
function setCookie(name, value, expires, path, domain, secure) {
  var today = new Date();
  today.setTime(today.getTime());
  if (expires) {
    expires = expires * 1000 * 60 * 60 * 24;
  }
  var expires_date = new Date(today.getTime() + (expires));
  document.cookie = name + "=" + escape(value) +
    ((expires) ? ";expires=" + expires_date.toGMTString() : "") + //expires.toGMTString()
    ((path) ? ";path=" + path : "") +
    ((domain) ? ";domain=" + domain : "") +
    ((secure) ? ";secure" : "");
}

function deleteCookie(name, path, domain) {
  if (getCookie(name)) document.cookie = name + "=" +
      ((path) ? ";path=" + path : "") +
      ((domain) ? ";domain=" + domain : "" ) +
      ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

/* quick getElement reference */
function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = getObj(element);
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return elements;
}

/* DHTML micro API by PPK (edited by Spyros) */
function getObj(name) {
  if (document.getElementById) {
    this.obj = document.getElementById(name);
    this.style = document.getElementById(name).style;
  } else if (document.all) {
    this.obj = document.all[name];
    this.style = document.all[name].style;
  } else if (document.layers) {
    this.obj = getObjNN4(document, name);
    this.style = this.obj;
  }
  return this.obj
}

function getObjNN4(obj, name) {
  var x = obj.layers;
  var foundLayer;
  for (var i = 0; i < x.length; i++) {
    if (x[i].id == name) foundLayer = x[i];
    else if (x[i].layers.length) var tmp = getObjNN4(x[i], name);
    if (tmp) foundLayer = tmp;
  }
  return foundLayer;
}

/* is (not) functions */
function isAlien     (a) { return isObject(a) && typeof a.constructor != "function"; }
function isArray     (a) { return isObject(a) && a.constructor == Array; }
function isBoolean   (a) { return typeof a == "boolean"; }
function isEmpty     (o) {
  var i, v;
  if (isObject(o))  {
    for (i in o) {
      v = o[i];
      if(isUndefined(v) && isfunction(v)) return false;
    }
  }
  return true;
}
function isFunction  (a) { return typeof a == "function"; }
function isNull      (a) { return typeof a == "object" && !a; }
function isNumber    (a) { return typeof a == "number" && isFinite(a); }
function isObject    (a) { return (typeof a == "object" && a) || isFunction(a); }
function isString    (a) { return typeof a == "string"; }
function isUndefined (a) { return typeof a == "undefined"; }
function isDefined   (a) { return !isUndefined(a); }
function isNumeric   (a) { if (a.match(/^\d+$/ )) return true; }

if (parent.frames[0]) {
  parent.location.href = self.location.href;
}

if (document.getElementById && !document.all) { ns6 = 1; } else { ns6 = 0; }

var agtbrw = navigator.userAgent.toLowerCase();
var operaaa = (agtbrw.indexOf('opera') != -1);
var millisOfDay = (24 * 60 * 60 * 1000);
var todayed = new Date();
var today = new Date(todayed.getFullYear(), todayed.getMonth(), todayed.getDate());
var ieMac = (navigator.userAgent.indexOf('MSIE 5') != -1 && navigator.userAgent.indexOf('Mac') != -1);
var security_enabled = false;

/*SOC*/
/*function callAjax (method, url, parameters, callback, responsetype, GETBuster, objectcallback) {
  if (!method || !url || (!isFunction(callback) && !isObject(objectcallback))) return;
  this._method = method;
  this._url = url;
  this._parameters = (isString(parameters) ? parameters : "");
  this._callback = callback;
  this._responsetype = ((typeof responsetype == "undefined") ? "txt" : responsetype);
  this._GETBuster = GETBuster;
  this._objectcallback = objectcallback;
  this.init();
  return true;
}

callAjax.MSHttpRequest = new Array('Msxml2.XMLHTTP.5.0',
                                   'Msxml2.XMLHTTP.4.0',
                                   'Msxml2.XMLHTTP.3.0',
                                   'Msxml2.XMLHTTP',
                                   'Microsoft.XMLHTTP');

callAjax.prototype = {
  _HttpRequest : false,
  AjaxObject : function () {
	  alert(this._objectcallback)
	  return;
    this._HttpRequest = false;
    if (window.XMLHttpRequest) { // if Mozilla, Safari etc
      this._HttpRequest = new XMLHttpRequest();
      if (this._HttpRequest.overrideMimeType) this._HttpRequest.overrideMimeType('text/xml');
    } else if (window.ActiveXObject) { // if IE

      for (var i in callAjax.MSHttpRequest) {
        try {
          this._HttpRequest = new ActiveXObject(callAjax.MSHttpRequest[i]);
        } catch (e) {}
      }
    }
    if (!this._HttpRequest) return;
  },
  init : function () {
    this.AjaxObject();

    var TheAjaxObject = this._HttpRequest;
    TheAjaxObject.onreadystatechange = function() {
      if (TheAjaxObject.readyState == 4) { //if request of file completed
        if (TheAjaxObject.status == 200 || window.location.href.indexOf("http") == -1) { //if request was successful or running script locally
          if (this._responsetype == "xml") re = TheAjaxObject.responseXML;
          else re = TheAjaxObject.responseText;
          if (isObject(this._objectcallback)) this._objectcallback.process(re);
          else this._callback(re);
        }
      }
    }

    if (this._method == "post") {
      TheAjaxObject.open('POST', this._url, true);
      TheAjaxObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      TheAjaxObject.setRequestHeader("Content-length", this._parameters.length);
      TheAjaxObject.setRequestHeader("Connection", "close");
      TheAjaxObject.send(parameters);
    } else {
      var bust = "ajaxcachebust=" + new Date().getTime();

      if (this._parameters.length == 0) {
        if (this._GETBuster) this._parameters = bust;
        else this._parameters = bust;
      } else {
        if (this._GETBuster) this._parameters = this._parameters + "&" + bust;
      }

      TheAjaxObject.open('get', this._url + "?" + this._parameters, true);
      TheAjaxObject.send(null);
    }
    //alert(TheAjaxObject);
    return TheAjaxObject;
  }
}*/

function AjaxObject(){
  var HttpRequest = false;
  if (window.XMLHttpRequest) { // if Mozilla, Safari etc
    HttpRequest = new XMLHttpRequest();
    if (HttpRequest.overrideMimeType) HttpRequest.overrideMimeType('text/xml');
  } else if (window.ActiveXObject) { // if IE
    var MSHttpRequest = new Array(
      'Msxml2.XMLHTTP.5.0',
      'Msxml2.XMLHTTP.4.0',
      'Msxml2.XMLHTTP.3.0',
      'Msxml2.XMLHTTP',
      'Microsoft.XMLHTTP');

    for (var i in MSHttpRequest) {
      try {
        HttpRequest = new ActiveXObject(MSHttpRequest[i]);
      } catch (e) {}
    }
  }
  return HttpRequest;
}

function callAjax(method, url, parameters, callback, responsetype, GETBuster, objectcallback){
  if (!method || !url || (!isFunction(callback) && !isObject(objectcallback))) return;

  var TheAjaxObject = new AjaxObject;
  if (!TheAjaxObject) return;

  if (typeof responsetype == "undefined") responsetype = "txt";

  TheAjaxObject.onreadystatechange = function() {
    if (TheAjaxObject.readyState == 4) { //if request of file completed
      if (TheAjaxObject.status == 200 || window.location.href.indexOf("http") == -1) { //if request was successful or running script locally
        if (responsetype == "xml") re = TheAjaxObject.responseXML;
        else re = TheAjaxObject.responseText;
        if (isObject(objectcallback)) objectcallback.process(re);
        else callback(re);
      }
    }
  }

  if (method == "post") {
    TheAjaxObject.open('POST', url, true);
    TheAjaxObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    TheAjaxObject.setRequestHeader("Content-length", parameters.length);
    TheAjaxObject.setRequestHeader("Connection", "close");
    TheAjaxObject.send(parameters);
  } else {
    var bust = "ajaxcachebust=" + new Date().getTime();

    if (parameters.length == 0) {
      if (GETBuster) parameters = bust;
      else parameters = bust;
    } else {
      if (GETBuster) parameters = parameters + "&" + bust;
    }

    TheAjaxObject.open('get', url + "?" + parameters, true);
    TheAjaxObject.send(null);
  }
  
  return TheAjaxObject;
}
/*EOC*/

addEvent(window, 'load', function(){
  $('defaultMenuImage').alt = "";
  
  var t = document.title;
  t = t.substr(20);
  t = t.substr(0, t.length-50);
  document.title = t;
});

//Various functions

function preloadImage(pic) {
  myimage = new Image();
  myimage.src=pic;
}

function triggerOther() {
  if ($('country').value == "other") {
    $('other_country').style.display = "block";
    $('other_country_field').value = "";
  } else {
    $('other_country').style.display = "none";
    $('other_country_field').value = "";
  }
}

var validationProccess;
function stopValidation (uniqueid, formid) {
  if (validationProccess){
    clearTimeout(validationProccess);
    $('errors').style.display = "none";
    enableSubmits(formid);
  }
}

function doValidation (uniqueid, formid) {
  validationProccess = window.setTimeout("doValidation('" + uniqueid + "', '" + formid + "')", 500)
  if (doFormValidation(uniqueid, formid)) {
    enableSubmits(formid);
    return true;
  } else {
    disableSubmits(formid);
    return false;
  }
}

function disableSubmits (formid) {
  var inputs = $(formid).getElementsByTagName("input"); 
  for (var i = 0; i < inputs.length; i++) { 
    input = inputs[i]; 
    if (input.type == "submit") {input.disabled = true;}
  }
}

function enableSubmits (formid) {
  var inputs = $(formid).getElementsByTagName("input"); 
  for (var i = 0; i < inputs.length; i++) { 
    input = inputs[i]; 
    if (input.type == "submit") {input.disabled = false;}
  }
}

function showErrorBlock () {
  $('errors').style.display = "block";
}

function hideErrorBlock () {
  $('errors').style.display = "none";
}

function showError (obj) {
  showErrorBlock();
  $(obj).style.display = "block";
}

function hideError (obj) {
  $(obj).style.display = "none";
}


function getMonthFromText (m) {
  var mm;
  //alert(m)
  switch(m) {
    case 'January': mm = 1; break;  
    case 'February': mm = 2; break;
    case 'March': mm = 3; break;
    case 'April': mm = 4; break;
    case 'May': mm = 5; break;
    case 'June': mm = 6; break;
    case 'July': mm = 7; break;
    case 'August': mm = 8; break;
    case 'September': mm = 9; break;
    case 'October': mm = 10; break;
    case 'November': mm = 11; break;
    case 'December': mm = 12; break;
    default: mm = false;
  }
  return mm;
}

function getMonthFromNumber (n) {
  var nn
  //alert(n)
  switch(n) {
    case 1: nn = 'January'; break;  
    case 2: nn = 'February'; break;
    case 3: nn = 'March'; break;
    case 4: nn = 'April'; break;
    case 5: nn = 'May'; break;
    case 6: nn = 'June'; break;
    case 7: nn = 'July'; break;
    case 8: nn = 'August'; break;
    case 9: nn = 'September'; break;
    case 10: nn = 'October'; break;
    case 11: nn = 'November'; break;
    case 12: nn = 'December'; break;
    default: nn = false;
  }
  return nn;
}

function ScrollTo (id, offset, istrue) {
  if (id == null) return;
  if (offset == null) offset = 0;
  new Effect.ScrollTo(id,{offset:offset});
  if (istrue != null) return true;
  else return false;
}

function checkmail(e){
  var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
  var returnval = emailfilter.test(e)
  if (returnval) return true;
  else return false;
}

function removeSpaces(a) { return a.replace(/ /g,''); }

function nt (n) {
  switch (n) {
    case 1:
    case '1':
      return 'one';
      break;
    case 2:
    case '2':
      return 'two';
      break;
    case 3:
    case '3':
      return 'three';
      break;
    case 4:
    case '4':
      return 'four';
      break;
    case 5:
    case '5':
      return 'five';
      break;
    case 6:
    case '6':
      return 'six';
      break;
    default:
      return 'NaN';
  }
}

function tn (t) {
  switch (t) {
    case 'one':
      return 1;
      break;
    case 'two':
      return 2;
      break;
    case 'three':
      return 3;
      break;
    case 'four':4
      return ;
      break;
    case 'five':
      return 5;
      break;
    case 'six':
      return 6;
      break;
    default:
      return -1;
  }
}

//Various other functions

/*loaded(timer.lab,start);

var pageLoaded = 0;
addEvent(window, 'load', function() {pageLoaded = 1;})
function loaded(i,f) {
  if (document.getElementById && document.getElementById(i) != null) f();
  else if (!pageLoaded) setTimeout(eval('loaded(\''+i+'\','+f+')'),100);
  f();
}*/

//addEvent(window, 'load', start)

/*var timer = {}
timer.month = '0'; 
timer.day = '0';   
timer.dow = 0;     
timer.hour = 0.1;
timer.tz = 0;  
timer.lab = function (timer) {
  alert(timer)
};

function start() {
  displayCountdown(setCountdown(timer.month,timer.day,timer.hour,timer.tz),timer.lab);
}

function setCountdown(month,day,hour,tz) {
  var m = month;
  if (month == '*') m = 0;
  var c = setC(m,day,hour,tz);
  if (month == '*' && c < 0) c = setC('*',day,hour,tz);
  return c;
}

function setC(month,day,hour,tz) {
  var toDate = new Date();
  if (day.substr(0,1) == '+') {
    var day1 = parseInt(day.substr(1));
    toDate.setDate(toDate.getDate() + day1);
  } else {
    toDate.setDate(day);
  }
  if (month == '*') toDate.setMonth(toDate.getMonth() + 1);
  else if (month > 0) {
    if (month <= toDate.getMonth()) toDate.setYear(toDate.getYear() + 1);
    toDate.setMonth(month - 1);
  }
  if (timer.dow > 0) toDate.setDate(toDate.getDate() + (timer.dow - 1 - toDate.getDay()) % 7);
  toDate.setHours(hour);
  toDate.setMinutes(0 - (tz * 60));
  toDate.setSeconds(0);
  var fromDate = new Date();
  fromDate.setMinutes(fromDate.getMinutes() + fromDate.getTimezoneOffset());
  var diffDate = new Date(0);
  diffDate.setMilliseconds(toDate - fromDate);
  return Math.floor(diffDate.valueOf() / 1000);
}

function displayCountdown(countdn,cd) {
  if (countdn < 0) {
    cd({days: days, hours: hours, mins: mins, secs: secs});
  } else {
    var secs = countdn % 60; 
    if (secs < 10) secs = '0'+secs;
    var countdn1 = (countdn - secs) / 60;
    var mins = countdn1 % 60; 
    if (mins < 10) mins = '0'+mins;
    countdn1 = (countdn1 - mins) / 60;
    var hours = countdn1 % 24;
    var days = (countdn1 - hours) / 24;
    alert(days+' days + '+hours+' : '+mins+' : '+secs);
    setTimeout('displayCountdown('+(countdn-1)+',\''+cd+'\');',999);
  }
}

*/

//-->
