//  Открыть URL в новом окне указанной ширины и высоты.
//  Окно позиционируется по центру экрана.
var opened_window = null;
function open_in_window( url, width, height )
{
  try
  {
    if( opened_window != null )
    {
      opened_window.close()
    }
  }
  catch(e) {}
  
  var left = parseInt( ( screen.availWidth - width ) / 2 );
  var top = parseInt( ( screen.availHeight - height ) / 2 );
  
  // Добавим к URL строку с текущим временем чтобы отключить кеширование
  var now = new Date();
  url += ( url.indexOf( '?' ) == -1 ? '?' : '&' ) + now.getTime();

  opened_window = window.open(url, 'utilsWindow', 'width='+width+', height='+height+', left='+left+', top='+top+', status=1, scrollbars=1, resizable=1');
}

function get_topic_pager( pcnt, p, topic_id )
{
    if( pcnt == 1 ) { return '' }
    
    p = parseInt( p );

    // Максимальное количество выводимых ссылок на страницы, четное значение
    var p_max = 10; 

    // Сделаем общий массив объектов-страниц
    var pages = new Array();
    
    for( var i=1; i<=pcnt; i++)
    {
        pages[ pages.length ] = { title:i, url:( 'topic-'+topic_id + ( i > 1 ? '-'+i : '') + '.html' ) }; 
    }

    // Если страниц больше, чем требуется - вырежем куски, чтобы вставить красивые три точечки :)
    if( pages.length > p_max )
    {
        var b1, b2, m1, m2, e1, e2;  // Границы срезов - начало, середина, конец
        
        // Срезы массива страниц
        var p1 = new Array;
        var p2 = new Array;
        var p3 = new Array;
                         
        var use_el1, use_el2, use_m; // Включение '...' слева, '...' справа и середины
        
        use_m = 1;
        
        b1 = 0;
        b2 = p_max/2 - 1 < pages.length-1 ? p_max/2 - 1 : pages.length-1;
        m1 = p - Math.ceil( p_max/4 );
        m2 = p + Math.ceil( p_max/4 - 2 );
        e1 = pages.length-1 - p_max / 2 + 1 < 0 ? 0 : pages.length-1 - p_max / 2 + 1;
        e2 = pages.length-1;
        
        
        if ( m1 > e1 - 1 ) { use_m = 0  }
        else if( m1 < b2 + 1 ) { m1 = b2 + 1 }
        if   ( m2 < b2 + 1 ) { use_m = 0  }
        else if( m2 > e1 - 1 ) { m2 = e1 - 1 }
    
        if( m1>b2+1 ) { use_el1 = 1 }
        if( m2<e1-1 ) { use_el2 = 1 }
        
        p1 = pages.slice( b1, b2+1 );
        if( use_m ) { p2 = pages.slice( m1, m2+1 ) };
        p3 = pages.slice( e1, e2+1 );
        
        if( use_el1 ) { p1[ p1.length ] = {title:'...', elipsis:1} };
        if( use_el2 ) { p3.splice(0, 0, {title:'...', elipsis:1}) };

        pages = p1.concat( p2, p3 );
    }
    
    for( var i=0; i<pages.length; i++ )
    {
        if( pages[i].elipsis )
        {
            pages[i] = '<td>' + pages[i].title + '</td>';
        }
        else if ( pages[i].title == p )
        {
            pages[i] = '<th>' + pages[i].title + '</th>';
        }
        else
        {
            pages[i] = '<td><a href="' + pages[i].url + '">' + pages[i].title + '</a></td>';
        }
    }

    if( p > 1 )
    {
        pages.splice( 0, 0, '<td><a href="topic-' + topic_id +( p-1>1?'-'+(p-1):'')+'.html">&larr;предыдущая</a></td>'); 
        $('html').bind( jQuery.browser.msie ? 'keydown' : 'keypress',
        function(event)
        {
            if( event.ctrlKey && event.keyCode == 37 && String(event.target.tagName ).toLowerCase() != 'textarea' ) { location.href='topic-' + topic_id + ( p-1>1?'-'+(p-1):'') + '.html'; return false; }
            return true;
        } );

    }

    if( p < pcnt )
    {
        pages[ pages.length ] = '<td><a href="topic-' + topic_id + '-' + ( p+1 ) + '.html">следующая&rarr;</a></td>'; 
        $('html').bind( jQuery.browser.msie ? 'keydown' : 'keypress',
        function(event)
        {
            if( event.ctrlKey && event.keyCode == 39 && String(event.target.tagName ).toLowerCase() != 'textarea' ) { location.href='topic-' + topic_id + '-' + ( p+1 ) + '.html'; return false; }
            return true;
        } );
    }

    return '<table class="pager"><tr>' + pages.join( ' ' ) + '</tr></table>';
}

//TODO: Исправить весь этот ужас, который здесь находится. 

var global_textzone = null; // Глобальная ссылка на textarea, с которой работаем в текущий момент. 


function insertv(f,v) { document.getElementById(f).value=v;}
function inputUP(form){
if(form.username.value=='логин' || form.username.value=='пароль'){form.username.value='';form.password.value='';
form.username.style.color='#333333';form.password.style.color='#333333';}
}

var agt = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla')!=-1)  && (agt.indexOf('spoofer')==-1)
        && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
        && (agt.indexOf('webtv')==-1)        && (agt.indexOf('hotjava')==-1));
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_opera = (agt.indexOf("opera") != -1);
var is_win = ((agt.indexOf("win")!=-1) || (agt.indexOf("16bit") != -1));
var is_mac = (agt.indexOf("mac")!=-1);
mdcode = new Array();
mdtags = new Array('b','i','u','big','small','q','sub','sup','off');
mdurl = new Array('url','email','img');
b_tag=false;
i_tag=false;
u_tag=false;
q_tag=false;
big_tag=false;
small_tag=false;
sub_tag=false;
sup_tag=false;
off_tag=false;
url_b="[url=";  url_m="]";  url_e="[/url]";
url_pfx=new Array ("http://","http://","");
email_b="[email=";  email_m="]";    email_e="[/email]";
email_pfx=new Array ("","","");
img_b="[img=";  img_m="]";  img_e="";
img_pfx=new Array ("http://","http://","");
url_po = "Введите ссылку";
url_pt = "Введите название";
email_po = "Введите адрес";
email_pt = "Введите адресата";
img_po = "Введите ссылку изображения";
img_pt = "";
function quote(){
if (document.selection.createRange().text.length)
simpleInsert ('[q]' + document.selection.createRange().text + '[/q] ')
return false;
}

function emoticon(textarea, emo) {
global_textzone = textarea;
simpleInsert (' ' + emo + ' ');
return false;
}

function nick(textarea, name) {
global_textzone = textarea;
simpleInsert ('[b]' + name + '[/b], ');
return false;
}

function tag(textarea, code) {
global_textzone = textarea;
tagInsert ('['+mdtags[code]+']','[/'+mdtags[code]+']',mdtags[code],false);
return false;
}

function texttag (textarea,code) {
global_textzone = textarea;
texttagInsert (mdurl[code])
return false;
}

function closeall (textarea) {
//var textzone=document.textform.text;
var textzone=textarea;
if (b_tag) { textzone.value += '[/b>'; b_tag = false}
if (i_tag) { textzone.value += '[/i]'; i_tag = false}
if (u_tag) { textzone.value += '[/u]'; u_tag = false}
if (q_tag) { textzone.value += '[/q]'; q_tag = false}
if (big_tag) { textzone.value += '[/big]'; big_tag = false}
if (small_tag) { textzone.value += '[/small]'; small_tag = false}
if (sup_tag) { textzone.value += '[/sup]'; sup_tag = false}
if (sub_tag) { textzone.value += '[/sub]'; sub_tag = false}
if (off_tag) { textzone.value += '[/off]'; off_tag = false}
}

function texttagInsert(isCode)
{
eval("var isCode_b = " + isCode + "_b");
eval("var isCode_m = " + isCode + "_m");
eval("var isCode_e = " + isCode + "_e");
eval("var isCode_po = " + isCode + "_po");
eval("var isCode_pt = " + isCode + "_pt");
eval("var isCode_pfx = " + isCode + "_pfx")

//var textzone=document.textform.text;
var textzone=global_textzone;

if ( (is_major >= 4) && is_ie && is_win)
{
if(textzone.isTextEdit){                                                                
textzone.focus();
var sel = document.selection;
var rng = sel.createRange();
var isTag;
rng.colapse;
if((sel.type == "Text" || sel.type == "None") && rng != null){
    if(rng.text.length > 0) {
        var re = new RegExp("([^\\S]*)([^\\s+]+)(.*)","img");
        re.multiline=true;
        var arr = re.exec(rng.text);
        rngtext =  RegExp.$2;
        reg_bgn=RegExp.leftContext+RegExp.$1;
        reg_end=RegExp.$3+RegExp.rightContext;
        isCode_p_o  = isCode_p_o2  = rngtext;
        isCode_p_os = isCode_p_o2s = rngtext.toLowerCase();
        if (isCode_p_o && isCode_p_os.indexOf(isCode_pfx[1]) != 0) isCode_p_o=isCode_pfx[1]+isCode_p_o;
        if (isCode_p_o2 && isCode_p_o2s.indexOf(isCode_pfx[2]) != 0) isCode_p_o2=isCode_pfx[2]+isCode_p_o2;     
        isTag = isCode_b + isCode_p_o + isCode_m;
        if (isCode_e) isTag += isCode_p_o2 + isCode_e;
        isTag=reg_bgn + isTag + reg_end;
    } 
    if (isTag) {
        rng.text = isTag;
    } else {
        if (isCode_po) isCode_p_o = isCode_p_o2 = prompt (isCode_po, isCode_pfx[0]);
        if (isCode_p_o && isCode_p_o.indexOf(isCode_pfx[1]) != 0) isCode_p_o=isCode_pfx[1]+isCode_p_o;
        if (isCode_p_o2 && isCode_p_o2.indexOf(isCode_pfx[2]) != 0) isCode_p_o2=isCode_pfx[2]+isCode_p_o2;
        if (isCode_pt && isCode_p_o) isCode_p_t = prompt (isCode_pt, "");
        if (isCode_p_o) {
            rng.text = isCode_b + isCode_p_o + isCode_m;
            if (isCode_e && isCode_p_t) rng.text +=  isCode_p_t + isCode_e
            else if (isCode_e) rng.text +=  isCode_p_o2 + isCode_e;
        }
    }
    }
} else {
        if (isCode_po) isCode_p_o = isCode_p_o2 = prompt (isCode_po, isCode_pfx[0]);
        if (isCode_p_o && isCode_p_o.indexOf(isCode_pfx[1]) != 0) isCode_p_o=isCode_pfx[1]+isCode_p_o;
        if (isCode_p_o2 && isCode_p_o2.indexOf(isCode_pfx[2]) != 0) isCode_p_o2=isCode_pfx[2]+isCode_p_o2;
        if (isCode_pt && isCode_p_o) isCode_p_t = prompt (isCode_pt, "");
        if (isCode_p_o) {
            textzone.value += isCode_b + isCode_p_o + isCode_m;
            if (isCode_e && isCode_p_t) textzone.value +=  isCode_p_t + isCode_e
            else if (isCode_e) textzone.value +=  isCode_p_o2 + isCode_e;
        }
    }
} else {
        if (isCode_po) isCode_p_o = isCode_p_o2 = prompt (isCode_po, isCode_pfx[0]);
        if (isCode_p_o && isCode_p_o.indexOf(isCode_pfx[1]) != 0) isCode_p_o=isCode_pfx[1]+isCode_p_o;
        if (isCode_p_o2 && isCode_p_o2.indexOf(isCode_pfx[2]) != 0) isCode_p_o2=isCode_pfx[2]+isCode_p_o2;
        if (isCode_pt && isCode_p_o) isCode_p_t = prompt (isCode_pt, "");
        if (isCode_p_o) {
            textzone.value += isCode_b + isCode_p_o + isCode_m;
            if (isCode_e && isCode_p_t) textzone.value +=  isCode_p_t + isCode_e
            else if (isCode_e) textzone.value +=  isCode_p_o2 + isCode_e;
        }
}
textzone.focus();
}

function tagInsert(isOpTag, isClTag, isCode, isSingle)
{
var isClose = false;
//var textzone=document.textform.text;
var textzone=global_textzone;

if ( (is_major >= 4) && is_ie && is_win)
{
if(textzone.isTextEdit){                                                                
textzone.focus();
var sel = document.selection;
var rng = sel.createRange();
var isTag;
rng.colapse;
if((sel.type == "Text" || sel.type == "None") && rng != null){
    if(isClTag != "" && rng.text.length > 0)
    isTag = isOpTag + rng.text + isClTag; 
    else if(isSingle)
        isClose = true;
        if (isTag) {
            rng.text = isTag;
        } else if (eval(isCode + "_tag")) {
                rng.text = isClTag;
        eval(isCode + "_tag = false");
            } else {
                rng.text = isOpTag; 
                eval(isCode + "_tag  =  true");
            }
    }
} else {
    if(isSingle) isClose = true;
        if (eval(isCode + "_tag")) {
            textzone.value += isClTag;
            eval(isCode + "_tag = false");
        } else {
            textzone.value += isOpTag;
            eval(isCode + "_tag  =  true");
        }
    }
} else {
if(isSingle) isClose = true;
if (eval(isCode + "_tag")) {
    textzone.value += isClTag;
    eval(isCode + "_tag = false");
} else {
    textzone.value += isOpTag;
    eval(isCode + "_tag  =  true");
}
}
textzone.focus();
return isClose;
}

function simpleInsert(isCode)
{
//var textzone=document.textform.text;
var textzone=global_textzone;

if ( (is_major >= 4) && is_ie && is_win)
{
if(textzone.isTextEdit){                                                                
textzone.focus();
var sel = document.selection;
var rng = sel.createRange();
rng.colapse;
rng.text = rng.text + isCode;
} else {textzone.value += isCode;}
} else {textzone.value += isCode;}
textzone.focus();
}

function insertUserPass(){
var username=getCookie('username');
var password=getCookie('password');
if(username!=null&&password!=null&&document.forms['textform'])
{
    document.forms['textform'].username.value=username;
    document.forms['textform'].password.value=password;
}
}