function Activate(field) {
	field.className = 'input';
}

function Disactivate(field) {
	field.className = 'inputEmpty';
}

function dgbi (id) {
	return document.getElementById(id);
}


function __ (text, params) {
	if (phrases[text])
		phrase = phrases[text];
	else
		phrase = '*' + text + '*';
			
	if (typeof(phrase) == "object" || typeof(phrase) == "array") {
		var param;
		for (key in params) {
			param = params[key];
			break;
		}
		
		phrase = phrase[plural(param)];
	}
			
	for (key in params)
		phrase = phrase.replace('%{' + key + '}', params[key]);
	
	return phrase;
}


function Request(module, method, params, callback) {

	params.ctok = ctok;
	params.ukey = ukey;
	
	new Ajax.Request('/!/'+module+'/'+method, {
		method:'post',
		postBody:'json='+encodeURIComponent(Object.toJSON(params)),
		onSuccess: function(transport) {

			try {
				var json = transport.responseText.evalJSON();
			}
			catch (e) {
				if ((i = transport.responseText.indexOf("ctok = '")) >= 0) {
					alert(transport.responseText);
					eval(transport.responseText.substr(i, 17));
					return Request(module, method, params, callback);
				}
				if (transport.responseText && transport.responseText.length)
					return alert(__("Sorry, there was an error while connecting to server.")+"\n"/*+transport.responseText*/);
			}
			
			json.json = transport.responseText;
			
			if (json.alert)
				alert(json.alert);
				
			if (json.error)
				alert(json.error);
			else
				callback(json);
				
		}
	});

}

function RequestLong(module, method, params, callback) {

	params.ctok = ctok;
	params.ukey = ukey;
	
	new Ajax.Request('/!/'+module+'/'+method, {
		method:'post',
		postBody:'json='+encodeURIComponent(Object.toJSON(params)),
		onSuccess: function(transport) {

			var re = new RegExp("{.*}", "");
			transport.responseText = re.exec(transport.responseText).toString();
			try {
				var json = transport.responseText.evalJSON();
			}
			catch (e) {
				if ((i = transport.responseText.indexOf("ctok = '")) >= 0) {
					alert(transport.responseText);
					eval(transport.responseText.substr(i, 17));
					return Request(module, method, params, callback);
				}
				if (transport.responseText && transport.responseText.length)
					alert(e);
					return alert(__("Sorry, there was an error while connecting to server.")+"\n"/*+transport.responseText*/);
			}
			
			json.json = transport.responseText;
			
			if (json.alert)
				alert(json.alert);
				
			if (json.error)
				alert(json.error);
			else
				callback(json);
				
		}
	});

}

function LoaderPosition(event) {
	return;
	if (li = $('loading')) {
		li.style.left = (event.clientX - 27) + 'px';
		li.style.top = (document.documentElement.scrollTop + event.clientY - 27) + 'px';
		
	}
	
}

function Language(lang) {
	var ed = new Date();
	ed.setDate(ed.getDate() + 365);
	document.cookie = 'lang='+lang+'; expires='+ed.toGMTString()+'; path=/';
	document.location.reload();
	return false;
}

function GetRealX(el) {
	c = 0;
	while (el.offsetParent && (el != document.body) && (el != document.documentElement)) {
		c += el.offsetLeft - el.offsetParent.scrollLeft;
		el = el.offsetParent;
	}
	return c;
}

function GetRealY(el) {
	c = 0;
	while (el.offsetParent && (el != document.body) && (el != document.documentElement)) {
		c += el.offsetTop - el.offsetParent.scrollTop;
		el = el.offsetParent;
	}
	return c;
}

function ShowText(el, name) {
	Request('Page', 'ShowText/'+name, { }, function(result) {
		pu = new Popup(result.text);
		pu.attach(el);
	});
}

function CheckAll(name, checked) {
	els = document.getElementsByTagName('input');
	for (i = 0, l = els.length; i < l; i++)
		if (((el = els[i]).type == 'checkbox') && (el.name.indexOf(name) == 0))
			el.checked = checked;
}

function HideLabel(id) {
	if ($('l'+id).style.display != 'none') {
		$('l'+id).style.display = 'none';
		$(id).focus();
	}
}

function PagePopup(page) {
	window.open('/PagePopup/'+page, 'info', 'toolbar=0,status=0,location=0,menubar=0,scrollbars=1,width=400,height=500');
}

function FAQPopup(page) {
	window.open('/FAQ/'+page+'/Popup', 'info', 'toolbar=0,status=0,location=0,menubar=0,scrollbars=1,width=400,height=500');
}

function HSC(str) {
	return str.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;');
}

function ShowQuoted(id) {
	if ($('qtxt'+id).style.display != 'block') {
		$('qtxt'+id).style.display = 'block';
		$('qtgl'+id).innerHTML = 'Скрыть цитируемый текст';
	}
	else {
		$('qtxt'+id).style.display = 'none';
		$('qtgl'+id).innerHTML = 'Показать цитируемый текст';
	}
}

function CursorToBeginning(id) {
	var input = $(id);
	if (input.createTextRange) {
		var range = input.createTextRange();
		range.collapse(true);
		range.moveEnd('character', 0);
		range.moveStart('character', 0);
		range.select();
	}
	else if (input.setSelectionRange) {
		input.focus();
		input.setSelectionRange(0, 0);
	}
}


function MenuOver (img, menu) {
	var open = $('submenu' + menu).style.display == '';
	img.src = '/files/img/left/nav_' + (open ? 'open' : 'closed') + '_hover.png';
}

function MenuOut (img, menu) {
	var open = $('submenu' + menu).style.display == '';
	img.src = '/files/img/left/nav_' + (open ? 'open' : 'closed') + '.png';
}

function MenuClick (img, menu) {
	var open = $('submenu' + menu).style.display == '';
	img.src = '/files/img/left/nav_' + (open ? 'closed' : 'open') + '_hover.png';
	$('submenu' + menu).style.display = open ? 'none' : '';

	document.cookie = "menuopen_" + menu + "=" + (open ? 0 : 1) + ";expires=" + new Date(new Date().getTime() + 365000 * 86400).toGMTString() +";path=/";

}


function ImportFaqHide () {
	$('import_faq').style.display = 'none';
	Request('Home', 'ImportFaqHide', {});
	
}
