

// Проверка на то, что юзер что-нибудь ввел в поле

var orig_imapuser_text = '';

function webmail_focus()
{
  if (orig_imapuser_text == '') orig_imapuser_text = $('imapuser').value;
  if ($('imapuser').value == orig_imapuser_text)
  {
   $('imapuser').value='';
  }
} 

function trackChange(obj, initial_state) {
	if (obj.value == initial_state) {
		obj.value = '';
	} 
	else
	if (obj.value == '') {
		obj.value = initial_state;
	}
}

function webmail_blur()
{
  if ($('imapuser').value.trim()=='') $('imapuser').value = orig_imapuser_text;  
}

function setLoginTo(n) {
	var zones = 2;
	for (x = 1; x <= zones; x++) {
		$('login_to_' + x).style.display = 'none';
		$('login_tab_' + x).className = '';
	}
	$('login_to_' + n).style.display = 'block';
	$('login_tab_' + n).className = 'Cur';
}


/*    всплывающие окошки с подсказками  */
var mouseX = 0;
var mouseY = 0;
var hint = null;
var msg = null;

function getXY(e)
{
	mouseX = (!document.all) ? e.pageX : event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
	mouseY = (!document.all) ? e.pageY : event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	
	try
	{
		hint.style.left = mouseX + 'px';
		hint.style.top = mouseY + 8 + 'px';
	}
	catch (err)
	{
		
	}
}
function showHint(txt)
{								
	hint.style.visibility = 'visible';
	hint.style.display = 'block';
	msg.innerHTML = txt;
	
}

function hideHint()
{
	hint.style.visibility = 'hidden';
	hint.style.display = 'none';		
}


function initHelpBaloon()
{
	hint = document.createElement('div');
	document.getElementById('pseudo_body').appendChild(hint);
	hint.className = 'HintContainer';

	hint.innerHTML = '<table cellspacing="0" cellpadding="0" class="Shadow"><tr><td class="UL"></td><td class="U"></td><td class="UR"></td></tr><tr><td class="L"></td><td class="Cntr"><div class="MsgArea" id="msg"></div></td><td class="R"></td></tr><tr><td class="BL"></td><td class="B"></td><td class="BR"></td></tr></table>';
	
	msg = document.getElementById('msg');
	
	document.onmousemove = getXY;
}

/*   ---------------------------------- */

function open_wind(link, w, h)
{
	var winl = (screen.width-w)/2;
	var wint = (screen.height-h)/2;
	window.open(link, 'Whois', 'top=' + wint + ',left=' + winl + 'height=' + h + ',width=' + w + ', targetfeatures=toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1 ');
}

function showFormHint(txt)
{ 
  alert(this);
	$('help_container').style.display = 'block';
	$('help_body').innerHTML = txt;
}
function hideFormHint()
{
	$('help_container').style.display = 'none';
}

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

String.prototype.trim = trimString;

function fieldEmpty(test_field)
{
	return ($(test_field).value.trim() == '');
}

//##########################################################################
// ================== Работа с регулярными выражениями ================== */


// Всякие разные регулярные вырвжения
var	regexp_not_empty = /^(.)$/i;
var regexp_name = /^[а-яa-zžčņāšģķļērūī.,]+\s+[а-яa-z žčņāšģķļērūī.,]+$/i; // Имя, фамилия : буквы русского, английского и латышского алфавита, запятая, пробел, точка; как минимум 1 символ
var regexp_address = /^[а-яa-z žčņāšģķļērūī.,-1234567890]+$/i; // Адрес: буквы русского, английского и латышского алфавита, запятая, пробел, точка, тире, цифры; как минимум 1 символ
var regexp_postal_index = /^\d{4}$/i; // Почтовый индекс: 4 цифры
var regexp_pcode1 = /^(01|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)(01|02|03|04|05|06|07|08|08|09|10|11|12)\d{2}$/i; // Первая часть персонального кода
var regexp_pcode2 = /^\d{5}$/i; // Вторая часть персонального кода
var regexp_phone = /^[1234567890+ ,()]{7,}$/i; // Телефон
var regexp_email = /^[a-z0-9]([a-z0-9]|([\w\-]+[a-z0-9]))*(\.([a-z0-9]|[a-z0-9][\w\-]+[a-z0-9]))*@[a-z0-9][\w\-]*[a-z0-9]\.([a-z0-9][\w\-]*[a-z0-9]\.)*[a-z]{2,6}$/i; // e-mail
var regexp_company_name = /^[а-яa-z žčņāšģķļērūī.,"'`/\1234567890]+$/i; //Название компании: буквы русского, английского и латышского алфавита, запятая, пробел, точка, кавычки; как минимум 1 символ
var regexp_reg_n = /^\d{11}$/i; // Регистрационный номер компании: 11 цифр
var regexp_domain_3lvl = /^[a-z0-9][\w\-]*[a-z0-9]\.([a-z0-9][\w\-]*[a-z0-9]\.)*[a-z]{2,6}$/i; // домен
var regexp_domain_2lvl = /^[a-z0-9][-a-z0-9]*[a-z0-9]/i; // домен

var regexp_domain = /^[a-z0-9][-a-z0-9]*[a-z0-9]$/i; // домен
var regexp_domain_ex = /^([a-z0-9][-a-z0-9]*[a-z0-9]\.)*[a-z]{2,6}$/i; // домен

var regexp_bank = /^[a-z0-9\/\s]*$/i; // банк 1
var regexp_account = /^[A-Z0-9]*$/i; // банк 2
	
function regexpCheck(regexp, test_field)
{
	return regexp.test($(test_field).value.trim());
}
function regexpCheckValue(regexp, test_value)
{
	return regexp.test(test_value);
}
// ================== Работа с регулярными выражениями // ================ */
//##########################################################################
	
function agreeToLigums()
{
	$('ligums_agree_button').disabled = ($('ligums_agree_check').checked ? false : true);
}

//закладки
function showTab(n)
{
	for (x = 1; x <= tabs_total; x++) $('tab_' + x).className = '';
	$('tab_' + n).className = 'Cur';
	
	
	for (x = 1; x <= tabs_total; x++) $('tab_' + x + '_content').style.display = 'none';
	$('tab_' + n + '_content').style.display = '';
}

Element.extend({
  // find parent matching supplied tag and optional class
  findParent: function( parentTag , parentClass ) {
    startElem = this;
    
    if ( parentClass ) {
      while ( startElem.getTag() != 'html' && !(startElem.getTag() == parentTag && startElem.hasClass(parentClass)) ) {
        startElem = startElem.getParent();
      }
    }
    else {
      while ( startElem.getTag() != 'html' && startElem.getTag() != parentTag ) {
        startElem = startElem.getParent();
      }
    }
    
    return ( startElem.getTag() != 'html' ? startElem : null );
  },
	show: function() {
    this.setStyle('display','block');
    return this;
  },
  hide: function() {
    this.setStyle('display','none');
    return this;
  }
});

function sendPanelCheckRequest(strURL) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            alert(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(null);
}

function sendPOP3checkRequest(strURL) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('GET', strURL + '&seed=' + Math.random(), true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            validatePOP3response(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(null);
}

function pop3check(u, p, s) {
	//блокируем форму
	$('webmail_login_user').disabled = 'true';
	$('webmail_login_pass').disabled = 'true';
	$('webmail_server_id').disabled = 'true';
	$('webmail_submit_button').disabled = 'true';
	//меняем курсор на "пожалуйста подождите"
	$('docBody').style.cursor='wait';  
	q = '/checkmail.php?u=' + u + '&p=' + enBASE64(p) + '&s=' + s; //формируем запрос
	//alert(q);
	sendPOP3checkRequest(q); //отсылаем запрос
}

function validatePOP3response(code) {
	//разблокируем форму
	$('webmail_login_user').disabled = '';
	$('webmail_login_pass').disabled = '';
	$('webmail_server_id').disabled = '';
	$('webmail_submit_button').disabled = '';
	//возвращаем курсор на "нормальный"
	$('docBody').style.cursor='auto';
	if (code == 0) { //с данными всё впорядке
			$('webmail_login_form').submit(); //отсылаем форму
			//сбрасываем поля
			$('webmail_login_user').value = '';
			$('webmail_login_pass').value = '';
	} else {
		alert(webmail_login['errors'][code]); //ошибка
	}
}

function sendPanelcheckRequest(strURL) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('GET', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            validatePanelCheckResponse(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(null);
}

function validatePanelCheckResponse(code) {
	//разблокируем форму
	$('panel_submit_button').disabled = '';
	$('panel_login_user').disabled = ''; 
	$('panel_login_pass').disabled = ''; 
	$('panel_server_id').disabled = ''; 
	$('docBody').style.cursor='auto'; //возвращаем курсор на "нормальный"
	if (code == 0) { //с данными всё впорядке
			$('panel_login_form').submit(); //отсылаем форму
			//сбрасываем поля
			$('panel_login_user').value = '';
			$('panel_login_pass').value = '';
	} else {
		//alert(code);
		alert(panel_login['errors'][code]); //ошибка
	}
}

function panelcheck(panel_type, panel_host, panel_user, panel_pass) {
	//блокируем форму
	$('panel_submit_button').disabled = 'true';
	$('panel_login_user').disabled = 'true'; 
	$('panel_login_pass').disabled = 'true'; 
	$('panel_server_id').disabled = 'true'; 
	//меняем курсор на "пожалуйста подождите"
	$('docBody').style.cursor='wait'; 
	q = '/checkpaneluser.php?p_type=' + panel_type + '&p_host=' + panel_host + '&u=' + panel_user + '&p=' + enBASE64(panel_pass) + '&seed=' + Math.random(); //формируем запрос
	//q = (q);
	//alert(q);
	//alert(decodeURIComponent(q));
	sendPanelcheckRequest(q); //отсылаем запрос
}



function webmailLogin() {

	var servers = new Array();
	var login_forms = new Array();
	/*
		0 = horde
		1 = squirrel
		2 = cPanel webmail form
	*/
	// login forms for different webmails
	login_forms[0] = new Object; //horde
	login_forms[0].hiddens = '<input type="hidden" name="nano" value="" /><input type="hidden" name="actionID" value="" /><input type="hidden" name="url" value="" /><input type="hidden" name="mailbox" value="INBOX" /><input type="hidden" name="load_frameset" value="1" /><input type="hidden" name="autologin" value="0" /><input type="hidden" name="server_key" value="imap" />';
	login_forms[0].user = 'imapuser';
	login_forms[0].pass = 'pass';
		
	login_forms[1] = new Object; //squirrel
	login_forms[1].hiddens = '<input type="hidden" name="js_autodetect_results" value="1" /><input type="hidden" name="just_logged_in" value="1" />';
	login_forms[1].user = 'login_username';
	login_forms[1].pass = 'secretkey';
	
	login_forms[2] = new Object;  //cpanel
	login_forms[2].hiddens = '<input type="hidden" name="login_theme" value="cpanel">';
	login_forms[2].user = 'user';
	login_forms[2].pass = 'pass';
	
	//server params
	servers[0] = new Object;  //if21
	servers[0].loginHost = 'https://if21.nano.lv:2096/login/';
	servers[0].type = 2;
	servers[0].name = 'if21';
	
	servers[1] = new Object;  //if23
	servers[1].loginHost = 'http://webmail2.nano.lv/imp/redirect.php';
	servers[1].type = 0;
	servers[1].name = 'if23';
	
	servers[2] = new Object;  //if24
	servers[2].loginHost = 'https://if24.nano.lv:2096/login/';
	servers[2].type = 2;
	servers[2].name = 'if24';
	
	servers[3] = new Object;  //if25
	servers[3].loginHost = 'https://webmail5.nano.lv/src/redirect.php';
	servers[3].type = 1;
	servers[3].name = 'if25';

	servers[4] = new Object;  //if26
	servers[4].loginHost = 'https://if26.nano.lv:2096/login/';
	servers[4].type = 2;
	servers[4].name = 'if26';
	
	var serv_id = $('webmail_server_id').selectedIndex;
	
	var mail_login = $('webmail_login_user').value;
	var mail_pass = $('webmail_login_pass').value;
	var mail_server = servers[serv_id].name;
		
	$('hidden_webmail_login_inputs').innerHTML = login_forms[servers[serv_id].type].hiddens;
	$('webmail_login_form').action = servers[serv_id].loginHost;
	$('webmail_login_user').name = login_forms[servers[serv_id].type].user;
	$('webmail_login_pass').name = login_forms[servers[serv_id].type].pass;
	
	pop3check(mail_login, mail_pass, mail_server);
}


function panelLogin() {
	var servers = new Array();
	var login_forms = new Array();
	/*
		0 = ISP manager
		1 = cPanel 
		
	*/
	// login forms for different panels
	login_forms[0] = new Object;
	login_forms[0].hiddens = '<input type="hidden" name="theme" value="sirius" /><input type="hidden" name="lang" value="en" /><input type="hidden" name="func" value="auth" />';
	login_forms[0].user = 'username';
	login_forms[0].pass = 'password';
		
	login_forms[1] = new Object;
	login_forms[1].hiddens = '<input type="hidden" name="login_theme" value="cpanel">';
	login_forms[1].user = 'user';
	login_forms[1].pass = 'pass';
	
	//server params
	servers[0] = new Object;  //if21
	servers[0].loginHost = 'https://if21.nano.lv:2083/login/';
	servers[0].name = 'if21';
	servers[0].type = 1;
	
	servers[1] = new Object;  //if23
	servers[1].loginHost = 'https://if23.nano.lv/manager/ispmgr';
	servers[1].name = 'if23';
	servers[1].type = 0;
	
	servers[2] = new Object;  //if24
	servers[2].loginHost = 'https://if24.nano.lv:2083/login/';
	servers[2].name = 'if24';
	servers[2].type = 1;
	
	servers[3] = new Object;  //if25
	servers[3].loginHost = 'https://if25.nano.lv/ispmgr';
	servers[3].name = 'if25';
	servers[3].type = 0;
	
	servers[4] = new Object;  //if26
	servers[4].loginHost = 'https://if26.nano.lv:2083/login/';
	servers[4].name = 'if26';
	servers[4].type = 1;
	
	var serv_id = $('panel_server_id').selectedIndex;
	$('hidden_panel_login_inputs').innerHTML = login_forms[servers[serv_id].type].hiddens;
	$('panel_login_form').action = servers[serv_id].loginHost;
	$('panel_login_user').name = login_forms[servers[serv_id].type].user;
	$('panel_login_pass').name = login_forms[servers[serv_id].type].pass;
	
	var panel_type = servers[serv_id].type;
	var panel_host = servers[serv_id].name;
	var panel_login = $('panel_login_user').value;
	var panel_pass = $('panel_login_pass').value;
	
	panelcheck(panel_type, panel_host, panel_login, panel_pass);
}

function openURL(url) {
	window.location.href = url;
}

function cc_popup(url) {
	var name = 'cc_window';
	var windowWidth = 500;
	var windowHeight = 420;
	
	myleft=(screen.width)?(screen.width-windowWidth)/2:100;
	mytop=(screen.height)?(screen.height-windowHeight)/2:100;
	properties = "width="+windowWidth+",height="+windowHeight+",scrollbars=yes, top="+mytop+",left="+myleft+",resizable=no";
	window.open(url,name,properties);
  return false;
}

/* ---------------- BASE64 Encoding stuff ----- */

var azWin = '     Ё               ё       АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя'
var azKoi = 'ё                Ё           юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ'
var AZ=azWin
var azURL = '0123456789ABCDEF'
var b64s  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
var b64a  = b64s.split('')
function enBASE64(str) {
  var a=Array(), i
  for( i=0; i<str.length; i++ ){
    var cch=str.charCodeAt(i)
    if( cch>127 ){  cch=AZ.indexOf(str.charAt(i))+163; if(cch<163) continue; }
    a.push(cch)
  };
  var s=Array(), lPos = a.length - a.length % 3
  for(i=0;i<lPos;i+=3){
    var t=(a[i]<<16)+(a[i+1]<<8)+a[i+2]
    s.push( b64a[(t>>18)&0x3f]+b64a[(t>>12)&0x3f]+b64a[(t>>6)&0x3f]+b64a[t&0x3f] )
  }
  switch ( a.length-lPos ) {
    case 1 : var t=a[lPos]<<4; s.push(b64a[(t>>6)&0x3f]+b64a[t&0x3f]+'=='); break
    case 2 : var t=(a[lPos]<<10)+(a[lPos+1]<<2); s.push(b64a[(t>>12)&0x3f]+b64a[(t>>6)&0x3f]+b64a[t&0x3f]+'='); break
  }
  return s.join('')
}
function deBASE64(str) {
  while(str.substr(-1,1)=='=')str=str.substr(0,str.length-1);
  var b=str.split(''), i
  var s=Array(), t
  var lPos = b.length - b.length % 4
  for(i=0;i<lPos;i+=4){
    t=(b64s.indexOf(b[i])<<18)+(b64s.indexOf(b[i+1])<<12)+(b64s.indexOf(b[i+2])<<6)+b64s.indexOf(b[i+3])
    s.push( ((t>>16)&0xff), ((t>>8)&0xff), (t&0xff) )
  }
  if( (b.length-lPos) == 2 ){ t=(b64s.indexOf(b[lPos])<<18)+(b64s.indexOf(b[lPos+1])<<12); s.push( ((t>>16)&0xff)); }
  if( (b.length-lPos) == 3 ){ t=(b64s.indexOf(b[lPos])<<18)+(b64s.indexOf(b[lPos+1])<<12)+(b64s.indexOf(b[lPos+2])<<6); s.push( ((t>>16)&0xff), ((t>>8)&0xff) ); }
  for( i=s.length-1; i>=0; i-- ){
    if( s[i]>=168 ) s[i]=AZ.charAt(s[i]-163)
    else s[i]=String.fromCharCode(s[i])
  };
  return s.join('')
}

/* ---------------- BASE64 Encoding stuff ----- */
