function is_IE() {
  return navigator.appName == "Microsoft Internet Explorer";
}

function reset_input(input) {
  if (!input.default_reset) {
    input.value = '';
    input.default_reset = true;
  }
}

function resetPasswordField(text, password) {
   if (text && password) {
     text.style.display='none';
     password.style.display='';
     text.style.visibility='hidden';
     password.style.visibility='visible';
    password.focus();
   }
}

function isDST(gmt) {
	var lsm = new Date(gmt);
	var lso = new Date(gmt);
	lsm.setMonth(2); // March
	lsm.setDate(31);
	var day = lsm.getDay();// day of week of 31st
	lsm.setDate(31-day); // last Sunday
	lso.setMonth(9); // October
	lso.setDate(31);
	day = lso.getDay();
	lso.setDate(31-day);
	if (gmt < lsm || gmt >= lso) return 0;
	else return 1;
}

function isDST_US(gmt) {
	// Second Sunday of March till first Sunday of November
	var lsm = new Date(gmt);
	var lso = new Date(gmt);
	lsm.setMonth(2); // March
	lsm.setDate(1);
	var day = lsm.getDay();// day of week of 1st
	lsm.setDate(day==0?8:15-day); // second Sunday
	lso.setMonth(10); // November
	lso.setDate(1);
	day = lso.getDay();
	lso.setDate(day==0?1:8-day); // first Sunday
	if (gmt < lsm || gmt >= lso) return 0;
	else return 1;	
}

function _GetTime(offset, hasDST, cur, dstFunc) {
	if (cur == null) cur = new Date();
	var DayLight = 0;
	if (hasDST) {
		if (dstFunc == null) dstFunc = isDST;
		DayLight = dstFunc(cur);
	}

	var TimezoneOffset = offset // adjust for time zone
	ms = cur.getTime() + (cur.getTimezoneOffset() * 60000) + TimezoneOffset * 3600000 + (DayLight * 60 * 60 * 1000),
	time = new Date(ms);
	return time;
}

var tzmap = {
		'America/New York': function(cur) { return _GetTime(-5, true, cur, isDST_US)},
		'Europe/London': function(cur) {return _GetTime(0, true, cur)},
		'Europe/Brussels' : function(cur) {return _GetTime(1, true, cur)},
		'Europe/Moscow': function(cur) {return _GetTime(4, false, cur)},
		'Asia/Astana': function(cur) {return _GetTime(6, false, cur)},
		'Asia/Vladivostok': function(cur) {return _GetTime(11, false, cur)}
}

function GetLocalTime(tz, cur) {
	f = tzmap[tz];
	return f?f(cur):_GetTime(0, false, cur);
}

function GetCurTime(tz) {
	time = GetLocalTime(tz, null);
	curHour = time.getHours(),
	curMin = time.getMinutes(),
	curTime = [GetDay(time.getDay()), ((curHour < 10) ? "0" : ""), curHour, ":", ((curMin < 10) ? "0" : ""), curMin];
	return curTime.join("");
}

function GetDay(intDay){
	var DayArray = [gettext("Sun"), gettext("Mon"), gettext("Tue"), gettext("Wed"), gettext("Thu"), gettext("Fri"), gettext('Sat')];
	return DayArray[intDay] + '&nbsp;'
}



function run_clocks() {
	document.getElementById('TimeNY').innerHTML = GetCurTime('America/New York');
	document.getElementById('TimeLON').innerHTML = GetCurTime('Europe/London');
	if(document.getElementById('TimeCET')) {
		document.getElementById('TimeCET').innerHTML = GetCurTime('Europe/Brussels');
	}
	document.getElementById('TimeMOS').innerHTML = GetCurTime('Europe/Moscow');
	var astana = document.getElementById('TimeAST'), vladivostock = document.getElementById('TimeVLD');
	if (astana) astana.innerHTML = GetCurTime('Asia/Astana');
	if (vladivostock) vladivostock.innerHTML = GetCurTime('Asia/Vladivostok');

	setTimeout("run_clocks()",5000);
}

var tld_ = new Array()
tld_[0] = "com";
tld_[1] = "org";
tld_[2] = "net";
tld_[3] = "ws";
tld_[4] = "info";
tld_[10] = "co.uk";
tld_[11] = "org.uk";
tld_[12] = "gov.uk";
tld_[13] = "ac.uk";
tld_[14] = "ru";
var topDom_ = 13;
var m_ = "mailto:";
var a_ = "@";
var d_ = ".";

function mail(name, dom, tl, params)
{
        var s = e(name,dom,tl);
        document.write('<a href="'+m_+s+params+'">'+s+'</a>');
}
function mail2(name, dom, tl, params, display)
{
        document.write('<a href="'+m_+e(name,dom,tl)+params+'">'+display+'</a>')
;
}
function mail_a_start(name, dom, tl, params) 
{
        var s = e(name,dom,tl);
        document.write('<a href="'+m_+s+params+'">');
}
function mail_a_end() 
{
  document.write('</a>');
}
function e(name, dom, tl)
{
        var s = name+a_;
        if (tl!=-2)
        {
                s+= dom;
                if (tl>=0)
                        s+= d_+tld_[tl];
        }
        else
                s+= swapper(dom);
        return s;
}
function swapper(d)
{
        var s = "";
        for (var i=0; i<d.length; i+=2)
                if (i+1==d.length)
                        s+= d.charAt(i)
                else
                        s+= d.charAt(i+1)+d.charAt(i);
        return s.replace(/\?/g,'.');
}

function two_state_cb_ch(cb_node, hidden_id, callback) {
  if (callback && !callback(cb_node)) {
    cb_node.checked = !cb_node.checked;
    return false; 
  }
  var hidden_node = document.getElementById(hidden_id)
  if (cb_node.checked) {
    hidden_node.value = '1';
  } else {
    hidden_node.value = '';
  }
  return true;
}

function flash_object(uri, width, height, params, alt_image) {
  if (is_IE()) {
    document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '+
      'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" '+
        'width="'+width+'" height="'+height+'">'+
          '<param name="movie" value="'+uri+'">');
  } else {
    document.write('<object type="application/x-shockwave-flash"'+
      'data="'+uri+'" width="'+width+'" height="'+height+'">');
  }
  for (param in params) {
    document.write('<param name="'+param+'" value="'+params[param]+'">');
  }
  if (alt_image) {
    document.write('<img width="'+width+'" height="'+height+'" src="'+alt_image+'" alt="">');
  }
  document.write('</object>');
}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };

