﻿var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var IE = navigator.appName.indexOf("Microsoft") != -1;
var nIE = (IE && parseFloat(navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE ") + 5))>=6);
var r = document.referrer;
if (r != '' && r.substr(0, 17) != 'http://sky2fly.ru') setCookie("s2fr", r, "Fri, 25 Dec 2020 23:59:59 GMT", "/");

function ins(ch) {
    var bbopen = "[" + ch + "]";
    var bbclose = "[/" + ch + "]";
    var bbl = bbopen.length + bbclose.length;
    var txtarea = document.adds.text;

    txtarea.focus();
    if (txtarea.caretPos) {//ie
        var p = txtarea.caretPos;
        p.text = bbopen + p.text + bbclose;
        txtarea.caretPos = p = document.selection.createRange();
        p.select();
    } else if (txtarea.caretPoss) {
        p = txtarea.caretPoss;
        var v = txtarea.value;
        var sel = v.substring(p.start, p.end);
        txtarea.value = v.substring(0, p.start) + bbopen + sel + bbclose + v.substr(p.end);
        txtarea.setSelectionRange(p.start, p.end + bbl);
        storeCaret(txtarea);
    } else {
        txtarea.value += bbopen + bbclose;
    }
}

function sml(text) {
	sl('','', " :"+text+":");
}

function sl(login, id, add) {
	var o = document.adds;
	if (!o) return;
	ops2f();
	if (!add && id) {
		if (document.selection) {
			var str = document.selection.createRange();
			if (str.text != "") add='\n[QUOTE]'+str.text+'[/QUOTE]\n';
		} else if (window.getSelection) {
            str = window.getSelection();
            if (str != "") add='\n[QUOTE]'+str+'[/QUOTE]\n';
        }
		if (!add) {
			add='\n[QUOTE][B]'+login+'[/B] пишет:\n'+innerText(byId(id))+'[/QUOTE]\n';
		}
	}
	var txtarea = document.adds.text;
	txtarea.focus();
	if (txtarea.createTextRange && txtarea.caretPos) {
		txtarea.caretPos.text += add;
	} else if (txtarea.caretPoss) {
        var cp = txtarea.caretPoss;
        var v = txtarea.value;
        txtarea.value = v.substring(0, cp.end) + add + v.substr(cp.end);
        var al = cp.end + add.length;
        txtarea.setSelectionRange(al,al);
        storeCaret(txtarea);
    } else {
		txtarea.value += add;
	}
}

function innerText(node) {
	var ret = "";
	for(var i=0; i<node.childNodes.length; i++) {
		switch(node.childNodes[i].nodeType) {
			case 1: ret+=innerText(node.childNodes[i]); break; //если элемент
			case 3: ret+=node.childNodes[i].nodeValue+"\n"; //если текстовая нода
		}
	}
	return ret;
}
function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
	else if (textEl.selectionStart != undefined) {
        textEl.caretPoss = {start: textEl.selectionStart, end: textEl.selectionEnd};
    }
}
function ops2f() {
	var o = document.adds;
	if (o) {
		o.style.display='block';
		o = document.adds.ps;
		if (o) o.value = '';
		o = document.adds.head;
		if (o) o.focus();
	}
}

var map_en = new Array('j/o','j/e','sx','Sx','SX','sX','shh','Shh','w','W',"jo","Jo",'JO','zh','Zh','ZH','ch','Ch','CH','sh','Sh','SH','je','Je','JE','ju','Ju','JU','ja','Ja','JA','a','A','b','B','v','V','g','G','d','D','e','E','z','Z','i','I','j','J','k','K','l','L','m','M','n','N','o','O','p','P','r','R','s','S','t','T','u','U','f','F','h','H','x','X','c','C','##','#','y','Y',"''","'");
var map_ru = new Array('йо','йе','сх','Сх','СХ','сХ','щ','Щ','щ','Щ','ё','Ё','Ё','ж','Ж','Ж','ч','Ч','Ч','ш','Ш','Ш','э','Э','Э','ю','Ю','Ю','я','Я','Я','а','А','б','Б','в','В','г','Г','д','Д','е','Е','з','З','и','И','й','Й','к','К','л','Л','м','М','н','Н','о','О','п','П','р','Р','с','С','т','Т','у','У','ф','Ф','х','Х','х','Х','ц','Ц','Ъ','ъ','ы','Ы','Ь','ь');

function convert(st) {
	for(var i=0;i<map_en.length;++i) while(st.indexOf(map_en[i])>=0) st = st.replace(map_en[i],map_ru[i]);
	return st;
}

var tags=new Array(2);
tags[0]=new Array( 'USER]', 'QUOTE]', 'URL]','IMG]',  'SMILE]',  'B]', 'I]' ,'U]' ,'S]');
tags[1]=new Array('/USER]', '/QUOTE]','/URL]','/IMG]','/SMILE]','/B]','/I]','/U]','/S]');

var addressRE=new RegExp("http://\\S+","g");
var addressBackRE=new RegExp("\\[HTTP\\](http://\\S+)\\[/HTTP\\]","g");
var smileRE=new RegExp(" :\\w+:","g");
var smileBackRE=new RegExp("\\[SMILE\\]( :\\w+:)\\[/SMILE\\]","g");

function translate(st) {
	st=st.replace(addressRE,"[HTTP]$&[/HTTP]");
	st=st.replace(smileRE,"[SMILE]$&[/SMILE]");
	var s=new Array();
	s=st.split('[');

	var noNeedTrans=new Array(0,0,0,0,0);
	for(var i=0;i<s.length;i++) {
		var tagFound=0;
		for(var j=0;j<2;j++)
			for(var k=0;k<tags[j].length;k++)
				if(s[i].substr(0,tags[j][k].length)==tags[j][k]) {
					tagFound=1;
					if(k<noNeedTrans.length) {
						if(j==0) noNeedTrans[k]+=1;
						else if(noNeedTrans[k]>0) noNeedTrans[k]-=1;
					}
				}
		var needTrans=1;
		for(k=0;k<noNeedTrans.length;k++)
			if(noNeedTrans[k]>0) needTrans=0;
		if(needTrans) {
			if(tagFound) {
				var index=s[i].indexOf("]");
				s[i]=s[i].substr(0,index)+convert(s[i].substr(index));
			} else
				s[i]=convert(s[i]);
		}
	}
	st=s.join('[');
	st=st.replace(smileBackRE,"$1");
	st=st.replace(addressBackRE,"$1");
	return st;
}
function trnsl() {
	document.adds.text.value=translate(document.adds.text.value);
	if (document.adds.head) document.adds.head.value=translate(document.adds.head.value);
}

var infoDiv;
function Inf(login, e){
	if (!login.length) { doClose(); return; }
	if (infoDiv) {
		//infoDiv.style.visibility = "visible";
		var flash = byId('finfo2');
		if (!flash) { flash = byId('finfo'); }
		if (flash) {
			infoDiv.style.width = 388;
			infoDiv.style.height = 374;
			flash.setLogin(login);
		}
	} else {
		infoDiv = document.createElement("DIV");
		document.body.appendChild(infoDiv);
		infoDiv.className = 'shadow';
		infoDiv.style.position = 'absolute';
		infoDiv.style.overflow = 'hidden';
		infoDiv.innerHTML = 
			'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="388" height="374" id="finfo">'+
			'<param name="movie" value="/info.swf?login='+login+'" /><param name="AllowScriptAccess" value="always"><param name="bgcolor" value="#96876f" />'+
			'<embed src="/info.swf?login='+login+'" id="finfo2" bgcolor="#96876f" width="388" height="374" bgcolor="#96876f" AllowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'+
			'</object>';
	}
	infoDiv.style.left = document.body.scrollLeft + (e.clientX+400 > document.body.clientWidth ? document.body.clientWidth - 400 : e.clientX - 50);
	infoDiv.style.top = document.body.scrollTop + (e.clientY+375 > document.body.clientHeight ? document.body.clientHeight-375 : e.clientY + 5);
}
function doClose(){ // флешка закрывается
	if (infoDiv) {
		//infoDiv.style.visibility = "hidden";
		infoDiv.style.width = 0;
		infoDiv.style.height = 0;
	}
}

// Разрешенные смайлики
var sm = new Array(
    new Array('laugh',20,20, 'ponder',21,15, 'hehe',15,15, 'wow',24,20, 'nerv',15,16, 'cry',16,16, 'conf',15,22, 'frown',
            15,15, 'crazy',17,24, 'wall',25,20, 'str',35,25, 'jaw',27,20, 'idea',26,27, 'red',15,15, 'spot',22,15,
            'joy',31,36, 'shuffle',24,24, 'celebrity',57,38, 'die',31,41, 'help',27,28, 'smoke', 20,20, 'mad',29,18,
            'umn',40,40, 'old',32,28, 'late',32,27, 'sad',23,23,'smut',20,20, 'acid',40,24),
    new Array('wink',15,15, 'metal',26,28, 'yes',15,15, 'king',21,22, 'bulldog',26,23, 'tongue2',30,24, 'tongue',15,15,
            'lick',15,15, 'jeer',26,16, 'digger',33,33, 'dont',22,18, 'agree',50,20, 'imhere',23,34, 'ban',41,38,
            'chupa',27,22, 'congr',47,43, 'mol',30,24, 'rupor',38,18, 'popcorn',35,35, 'soska',51,20, 'no',15,15,
            'gent',15,21, 'priva',56,24, 'privet',27,29, 'hello',25,27, 'hi',31,28, 'stupid',20,15),
    new Array('lady',15,19, 'rev',40,25, 'rose',15,15, 'flowers',28,29, 'hug',48,20, 'boogi',100,20, 'greedy',61,20,
            'poshl',43,22, 'pester',54,24, 'nail',32,26, 'angel',15,23, 'wedding',60,25, 'mar',43,21, 'love',40,21,
            'kiss3',60,30, 'divin',38,33, 'flashka',20,19, 'obm',37,22, 'farewell',40,36),
    new Array('beer',15,15, 'horse',60,40, 'friday',57,28, 'grenade',52,34, 'nunu',26,22, 'rocket',100,33, 'budo',54,37,
            'susel',70,29, 'sdaus',35,36, 'kruger',34,27, 'monstr',35,30, 'maniac',70,25, 'hul',63,24, 'gun',45,30,
            'broken',80,20, 'boks',62,28, 'nun',40,28, 'cowb',44,29, 'kult',31,16)
);

function byId(id){
    return document.getElementById(id);
}

var smilesPane = null;

function smiles(n){
    if (smilesPane != null) {
        if (n == undefined) {
            smilesPane.style.display = smilesPane.style.display == "" ? "none" : "";
        } else {
            for (var i = 0; i < sm.length; i++) {
                byId("smtab" + i).style.display = "none";
                byId("smtablbl" + i).className = "ptab";
            }
            byId("smtab" + n).style.display = "";
            byId("smtablbl" + n).className = "atab";
        }
    } else {
        var s1 = '<table border="0" cellspacing="0" cellpadding="0" class="smilestab"><tr align="center">';
        for (i = 0; i < sm.length; i++) {
            s1 += '<td onclick="smiles(' + i + ');" id="smtablbl' + i + '" class="ptab">' + (i + 1) + '</td>';
        }
        s1 += '</tr>';
        for (var j = 0; j < sm.length; j++) {
            s1 += '<tr id="smtab' + j + '" style="display:none;"><td align="center" colspan="' + sm.length + '" style="padding:3px">';
            var smj = sm[j];
            for (i = 0; i < smj.length; i+=3) {
                s1 += '<img src="/i/smile/' + smj[i] + '.gif" width="' + smj[i+1] + '" height="' + smj[i+2] + '" border="0" alt="' + smj[i] + '" onclick="sml(\'' + smj[i] + '\');" onMouseOver="this.style.backgroundColor=\'white\';" onMouseOut="this.style.backgroundColor=\'\';"> ';
            }
            s1 += '</td></tr>';
        }
        s1 += '</table>';
        var tabl = document.adds.text.parentNode;
        var tn = tabl.tagName.toLowerCase();
        while(tn != "tbody" && tn != "table"){
            tabl = tabl.parentNode;
            tn = tabl.tagName.toLowerCase();
        }
        var row = document.createElement("tr");
        row.setAttribute("id",  "smilestab");
        row.appendChild(document.createElement("td"));
        var cell = document.createElement("td");
        row.appendChild(cell);
        tabl.appendChild(row);

        smilesPane = byId("smilestab");
        cell.innerHTML = s1;
        smiles(0);
    }
}

function setCookie(name, value, expires, path, domain) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "");
}
function getCookie( name ) {
	var start = document.cookie.indexOf( name + '=' );
	if (start<0) return '';
	var len = start + name.length + 1;
	if ( !start && name != document.cookie.substring(0, name.length) )  return '';
	var end = document.cookie.indexOf(';', len);
	if (end == -1) end = document.cookie.length;
	return decodeURIComponent(document.cookie.substring(len, end));
}
function deleteCookie(name) {     
	document.cookie = name+"=; expires=Fri, 31 Dec 1999 23:59:59 GMT; path=/";
}
function login() {
	return getCookie('s2fl');
}
function logined() {
	return getCookie('s2fl').length>0 && getCookie('s2fo').length>0;
}
function showps( two ) { // logout
	var obj = byId("psline"+(two ? '2' : ''));
	if (obj) obj.style.display="";
	var form = (two ? document.lgin : document.adds);
	if (!form) return;
	obj = form.lgout;
	if (obj) obj.style.display='none';
	if (two) {
		obj = form.b2;
		if (obj) obj.style.display="";
	}
	obj = form.ps;
	if (obj) obj.value='??????';
	obj = form.lg;
	if (obj) {
		obj.disabled = false;
		obj.value='';
		obj.focus();
	}
	deleteCookie('s2fl');
	deleteCookie('s2fs');
	deleteCookie('s2fo');
}

function delTopick(a, id, i, b){
	var s=prompt("Причина удаления?","");
	if (s!=null){
		location.href="forum.fpl?a="+a+"&del="+id+"&i="+i+"&b="+b+"&text="+s;
	}
}
function closeTopick(a, id){
	var s=prompt("Причина закрытия топика?","");
	if (s!=null){
		location.href="forum.fpl?a="+a+"&closed="+id+"&text="+s;
	}
}
function mute(a, login) {
	var days=prompt("Молчанка на сколько дней? (0-снять)","");
	if (days!=null){
		var s=prompt("Причина (записывается в личное дело)","");
		if (s!=null){
			location.href="forum.fpl?a="+a+"&mute="+login+"&days="+days+"&text="+s;
		}
	}
}

function CheckLgn(form) {
	var ps = form.ps.value;
	if (ps) {
		var ses = getCookie('s2fs');
		form.ps.value = '';
		form.p2.value = SHA1(ses + SHA1(ps));
	}
	return true;
}

