var MCPD=25;
var interval=3;
var emails=[];
var ME=10;
var wrong_emails=null;





function _recv(data){
try{
	if(data){
		if(data=='!'){
			updateC(emails);
			box_recommend.sent({ status: 0 });
		}else{
			var _m =data.substr(1);
			showMsg(data[0],_m);
		}
	}else showMsg(102,'Bląd sieciowy - spróbuj za chwilę.');
}catch(e){ }
}




function sendFrm(){
try{
	if (validateForm()){
	var f = document.getElementById('i_brc_from') ? 
		document.getElementById('i_brc_from').value : document.getElementById('i_brc_value').innerHTML;
        var b = document.getElementById('i_brc_content').value;
	var l = document.getElementById('i_brc_lnk').value;
	if (l){
		l = replaceAll(l,"&amp;","&");
		l=(l[0]=='h'||l[0]=='H')?l:'http://forum.gazeta.pl'+l;
	}
	AjaxForum.sendRecommendUrlToFrends(f,emails.toString(),b,l,_recv);
	}
}catch(e){
	showMsg(e.message,wrong_emails);
}
return false;
}
function isNotMax(o){return o.value.length != o.getAttribute("maxlength");}
function isContains(t,e) {for (var i = 0; i < t.length; i++) if (t[i] == e) return true; return false;}
function replaceAll(l, f, t){return l.replace(new RegExp(f,"g"),t);}
function rawEmails() {return document.getElementById('i_brc_to').value;}
function incCookie(i) {createCookie('_recCMsg', rCookieAsInt('_recCMsg') + i, 1, 0, 0, 0, null);}
function rCookieAsInt(name) {var l = parseInt(readCookie(name));return isNaN(l) ? 0 : l}
function size() {return emails ?emails.length : 0;}


function createCookie(name, value, days, hours, min, sec, domain) {
	var date = new Date();
	date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)
			+ (hours * 60 * 60 * 1000) + (min * 60 * 1000) + (sec * 1000));
	var expires = "; expires=" + date.toGMTString();
	document.cookie = name + "=" + value + expires + "; path=/"
			+ ((domain) ? ';domain=' + domain : '');
}


function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.toString().split(';');
	for (i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ')
			c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length, c.length);
	}
	return null;
}



function tokenizer() {
		tab = rawEmails()
		emails=[];
		tab = tab.replace(/\s|\;/g, "\,").split(",");
		for (i = 0; i < tab.length; i++) {
				if ((tab[i] != '') && (!isContains(emails,tab[i])))
				emails.push(tab[i]);
		}
}

function validMail(email) {
	var reMail = /^[a-z0-9_][a-z0-9_\.-]*@[a-z0-9\.-]+\.[a-z]{2,4}$/i;
	return reMail.test(email);
}
function checkC() {
	if (rCookieAsInt('_recCMsg') >= MCPD)
		throw Error('0',0);
	var t = readCookie('_recWait');
	if (t)throw Error('1',1);
}
function validateEmails() {
	tokenizer();
	if ((size()>ME))
		throw Error('2',2);
	if ((size()<1))
		throw Error('3',3);
	wrong_emails= '';
	for (i = 0; i < emails.length; i++) {
		if (!validMail(emails[i])) {
			wrong_emails += '\n' + emails[i];
		}
	}
	if (wrong_emails != '')
		throw Error('4',4);
}
function checkSended() {
	var ts = emails, tc = readCookie('_recMails'),ele=null,e=null,l=-1,h=-1;
	wrong_emails = '', ntab = [], t = new Date().getHours();
	if ((ts == null) || (ts.length < 1))
		return ;
	if (tc) {
		tc = tc.split(',');
		for (i = 0; i < ts.length; i++) {
			ele = ts[i];
			for (k = 0; k < tc.length; k++) {
				e = tc[k].split('$');
				l = parseInt(e[1]);
				h = parseInt(e[2]);
				e = e[0];
				if ((ele == e) && (l >= 4) && (t - h < 6))
					wrong_emails += e + ', ';
			}
		}
	}
	if (wrong_emails != '')
		throw Error('5',5);
}
function showMsg(c,val){
_msg=null;
	switch(c){
	case 0:case '0':_msg ="Wysłaleś wiadomość do zbyt wielu osób.Spróbuj ponownie jutro.";  blockC(val); break;
	case 1:case '1':_msg ="Poczekaj chwilę zanim wyślesz wiadomość kolejnej osobie";break;
	case 2:case '2':_msg ="Podałeś zbyt dużo adresatów (maks. 10)";break;
	case 3:case '3':_msg ="Podaj adres/y odbiorców";break;
	case 4:case '4':_msg ="Podane adresy email odbiorców są niepoprawne:\n"+val;break;
	case 5:case '5':_msg ="Zbyt dużo wysłanych wiadomości na adres:\n"+val;break;
	case 6:case '6':_msg ="Wpisz poprawny adres nadawcy";break;
	default:        _msg = val;
	}
	if (_msg) box_recommend.sent({ status: 1, msg: _msg }); 
	else
	box_recommend.sent({ status: 0 }); 
}
function validateForm() {
	checkC();
	validateEmails();
	checkSended();
	var eF = document.getElementById('i_brc_from') ? 
		document.getElementById('i_brc_from').value : document.getElementById('i_brc_value').innerHTML;
	if ((!eF)||(eF == '')||(!validMail(eF))) throw Error('6',6);
	var body = document.getElementById('i_brc_content');
	body.value = body ? (body.value.length > 700 ? body.value.substr(0, 700) : body.value) : '';

	createCookie('_recWait',1,0,0,0,10,null);
	return true;
}


function updateC(w) {
	var e = new String(w);
	var ele='',n=true;
	var ts = e.split(','), tc = readCookie('_recMails');
	if ((ts == null) || (ts.length < 1))
		return;

	var ntab = [], t = new Date().getHours();
	if (tc) {
		tc = tc.split(',')
		for (i = 0; i < ts.length; i++) {
			ele = ts[i];
			n = true
			for (k = 0; k < tc.length; k++) {
				e = tc[k].split('$');
				l = parseInt(e[1]);
				h = parseInt(e[2]);
				e = e[0];
				if (ele == e) {
					n = false
					if ((t - h < 6) && (l < 4)) {
						tc[k] = e + '$' + (l + 1) + '$' + h;
						break;
					}else {
						tc[k] = e + '$1$' + t;
					}
				}
			}
			if (n) {
				ntab.push(ele + '$1$' + t);
			}
		}
		if (ntab.length > 0)
			tc.splice(0, 0, ntab);
	} else {
		tc = [];
		for (i = 0; i < ts.length; i++) {
			tc.push(ts[i] + '$1$' + t);
		}
	}
	createCookie('_recMails',tc,1,0,0,0,null);
	return
}

function blockC(w) {
	incCookie(25);
	var e = new String(w);
	var ele='',n=true;
	var ts = e.split(','), tc = readCookie('_recMails');
	if ((ts == null) || (ts.length < 1))
		return;

	var ntab = [], t = new Date().getHours();
	if (tc) {
		tc = tc.split(',');
		for (i = 0; i < ts.length; i++) {
			ele = ts[i];
			n = true;
			for (k = 0; k < tc.length; k++) {
				e = tc[k].split('$');
				l = parseInt(e[1]);
				h = parseInt(e[2]);
				e = e[0];
				if (ele == e) {
					n = false
					tc[k] = e + '$4$' + t;
					break;
				}
			}
			if (n) {
				ntab.push(ele + '$4$' + t);
			}
		}
		if (ntab.length > 0)
			tc.splice(0, 0, ntab)
	} else {
		tc = [];
		for (i = 0; i < ts.length; i++) {
			tc.push(ts[i] + '$4$' + t);
		}
	}
	createCookie('_recMails',tc,1,0,0,0,null);
	return
}
function swap(){
	var dmail = document.getElementById('di_brc_from');
	var v = dmail.firstChild.nodeValue;
	if (dmail.tagName == "DIV"){
		dmail.onclick=function(){}
		document.getElementById('di_brc_from').innerHTML=
			'<input type="text" name="i_brc_from" id="i_brc_from" value="'+v+'" />';
	}
	return false;
}
