var User = Class.create({
	initialize: function() {
		this.auth();
	},

	auth: function() {
		var cookie = Cookie.get('user');

		if (cookie) {
			var cookie_arr = cookie.split(':');

			if (cookie_arr[0])
				this.login = this.base64_decode(cookie_arr[0]);

			if (cookie_arr[2])
				this.openId = cookie_arr[2] == '1' ? true : false;
		}
	},

	authFront: function() {
		if (this.login) {
			$('login_id').innerHTML = '<a href="profile/">' + (this.openId ? this.login : this.login+'@pravda.ru') + '</a>';
			$('login_registration_id').innerHTML = '<a href="logout/">выход</a>';
		}
	},

	base64_decode: function(data) {
    	var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    	var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';

	    do {
	        h1 = b64.indexOf(data.charAt(i++));
	        h2 = b64.indexOf(data.charAt(i++));
	        h3 = b64.indexOf(data.charAt(i++));
	        h4 = b64.indexOf(data.charAt(i++));

	        bits = h1<<18 | h2<<12 | h3<<6 | h4;

	        o1 = bits>>16 & 0xff;
	        o2 = bits>>8 & 0xff;
	        o3 = bits & 0xff;

	        if (h3 == 64)      enc += String.fromCharCode(o1);
	        else if (h4 == 64) enc += String.fromCharCode(o1, o2);
	        else               enc += String.fromCharCode(o1, o2, o3);
	    } while (i < data.length);

	    return enc;
	}

});

function changeFontSize(id, action)
{
	var fontSize = parseInt($(id).getStyle('fontSize'));

	if (action == 'up' && fontSize < 28)
		fontSize = fontSize+2;
	else (fontSize > 4)
		fontSize = fontSize-2;
	alert(fontSize);

	$('article').setStyle({fontSize:(fontSize+'px')});
	return false;
}


function showhide(a, b)
{
	var obj = document.getElementById(b);
	if (obj.style.display == 'none') {obj.style.display = 'block'; a.className = 'active';}
	else {obj.style.display = 'none'; a.className = '';}
}

String.prototype.replaceAll = function(search, replace){
		return this.split(search).join(replace);
};

function setBan(user_id, ip, subjectField, subjectId)
{
	var url = _php_url;

	var pars = null;

	if ($('form') != null) {
		var pars = Form.serialize($('form'));
	}

	if (user_id) {
		url += '&type=user&user='+user_id;
		//var className = _php_user_ban_label + user_id;
	} else if (ip) {
		url += '&type=ip&ip='+ip;
		//var className = _php_ip_ban_label + ip.replaceAll('.', '');
	}

	if (subjectField && subjectId) {
		url += '&'+subjectField+'='+subjectId;
		url += '&action=unban';
	}

	setBanRequest(url, pars);
}

function setBanRequest(url, pars)
{
	var firstLetter = url.substr(url.indexOf('area=')+5, 1);
	url = url.replace('area='+firstLetter, 'area=popup'+firstLetter.toUpperCase());

	new Ajax.Updater('facebox_content', url, {
	  method: 'get',
	  parameters: pars
	});

	var posUser = url.indexOf('user='),
		posIp = url.indexOf('ip='),
		isUser = false;

	if (posUser > -1) {
		var className = _php_user_ban_label + url.substr(posUser+5);
		isUser = true;
	} else if (posIp > -1) {
		var className = _php_ip_ban_label + url.substr(posIp+3).replaceAll('.', '');;
	}
	className = className.replace(/&.*/,"");

	if (url.indexOf('action=') > -1) {
		url = url.replace(/action=[a-z]+/,"action=json");
	} else {
		if (url.indexOf('?') > -1) {
			url += '&';
		} else {
			url += '?';
		}
		url += 'action=json';
	}


	new Ajax.Request(url, {
		method: 'get',
	  	onSuccess: function(response) {
	  		if (response.responseText.isJSON()) {
	  			var data = response.responseText.evalJSON();
	  		}

	  		if (typeof data != 'undefined' && typeof data.label_id != 'undefined') {
				$$('a.' + className).each(function(dom){
					dom.innerHTML = '<font style="color:#c31f1b">забанен'+(isUser ? '' : ' IP')+(typeof data.from_date != 'undefined' ? ' c '+data.from_date : '')+'</font>';
				});
			} else {
				$$('a.' + className).each(function(dom){
					dom.innerHTML = 'забанить'+(isUser ? '' : ' IP');
				});
			}
	  	}
	});
}


function sendToFriend(url)
{
	url += '&action=json';

	var regExp = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;

	var captcha_val = ($('captcha_val') === null)?'null':($('captcha_val').value);
	var default_email = 'user@mail.ru';
	var email = ($('email').value == default_email)?'':$('email').value;

	if (regExp.match(email)) {
		new Ajax.Request(url, {
			method: 'get',
			parameters: {email: email, captcha: captcha_val},
		  	onSuccess: function(response) {
		  		if (response.responseText.isJSON()) {
		  			var data = response.responseText.evalJSON();
			  		if (data.status == 'ok')
			  			$('sendMailPopunder').innerHTML = '<p style="font-family:Georgia;font-size:14px">Ссылка на материал была успешно отправлена на указанный email.</p>';
			  		else
			  			$('error').innerHTML = data.status_name;
		  		} else
		  			$('error').innerHTML = 'Ошибка';
		  	}
		});
	} else {
		$('error').innerHTML = '<span style="color:red;">Введите правильный E-mail</span>';
	}
}
