var imageTag = false;
var theSelection = false;
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;

var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

var bb_tags = {
    b: ['[b]', '[/b]'],
    i: ['[i]', '[/i]'],
    url: ['[url]', '[/url]']
}
var bb_opened = {};

// From http://www.massless.org/mozedit/
function mozWrap(txtarea, open, close)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd == 1 || selEnd == 2)
		selEnd = selLength;

	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd);
	var s3 = (txtarea.value).substring(selEnd, selLength);
	txtarea.value = s1 + open + s2 + close + s3;
	return;
}

//хз что делает эта функция )
function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

function show_all_smiles(obj) {
    var s = obj.parentNode.parentNode;
    
    if($(s).hasClassName('smiles_more_'))
    {   
        hide_all_smiles(s);
    }
    else
    {
        $(s).addClassName('smiles_more_');
    	$('smiles_arrow').innerHTML="x";
        $('smiles_arrow').title="Убрать";
    }

}

function hide_all_smiles() { 
    try {
        $$('.smiles_more_')[0].removeClassName('smiles_more_');
    }
    catch(e) {}
    $('smiles_arrow').innerHTML="&gt;&gt;";
	$('smiles_arrow').title="Больше смайликов";
} 

function emoticon(text, txtarea_id) {
	var txtarea = $(txtarea_id);
	hide_all_smiles();
	text = ' ' + text + ' ';
		if((!Prototype.Browser.IE || !Prototype.Browser.Opera) && (txtarea.selectionStart || txtarea.selectionStart == '0')){
			var caretPos = txtarea.selectionStart + text.length;
			var sel1 = txtarea.value.substr(0, txtarea.selectionStart);
			var sel2 = txtarea.value.substr(txtarea.selectionEnd, txtarea.value.length - txtarea.selectionEnd);
			txtarea.value = sel1+text+sel2;
			txtarea.selectionStart = txtarea.selectionEnd = caretPos;  
		}else
			txtarea.value  += text;	
	txtarea.focus();
}

function bbfontstyle(bbopen, bbclose, txtarea_id) {
	var txtarea = $(txtarea_id);
	if(!_bb_tag_selection(txtarea, bbopen, bbclose)) {
		txtarea.value += bbopen + bbclose;
		txtarea.focus();
	}
	storeCaret(txtarea);
}

function _bb_tag_selection(txtarea, start, end) {
    // if Говно
    if ((clientVer >= 4) && is_ie && is_win)
	{
		theSelection = document.selection.createRange().text;
		if (theSelection) {
			document.selection.createRange().text = start + theSelection + end;
			txtarea.focus();
			theSelection = '';
			return true;
		}
	}
	else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
	{
		mozWrap(txtarea, start, end);
		return true;
	}
	return false;
}

function _bb_insert_tag(name, txt_area, callback) {
    bb_txt_area = txt_area;
    var txtarea = $(bb_txt_area);
    if(!_bb_tag_selection(txtarea, bb_tags[name][0], bb_tags[name][1])) {
        if(callback != undefined) {
            callback();
        }
        else {
            if(bb_opened[name] == undefined || bb_opened[name] == false) {
                bb_opened[name] = true;
                txtarea.value += bb_tags[name][0];
            }
            else {
                bb_opened[name] = false;
                txtarea.value += bb_tags[name][1];
            }
        }
    }
    storeCaret(txtarea);
}

function bb_link(txtarea_id) {
    _bb_insert_tag('url', txtarea_id, window_link);
}

function bb_bold(txtarea_id) {
    _bb_insert_tag('b', txtarea_id);
}

function bb_italic(txtarea_id) {
    _bb_insert_tag('i', txtarea_id);
}



var img_id;
var add_img = '';
var edit_text;
Event.observe(window, 'load', function() { add_img = $('img_upload_').innerHTML; $('img_upload_').remove(); });

var set_img_id = function(id) { 
    img_id = id;
    $(edit_text).value += '[img]' + img_id + '[/img]';
    window_close();
}

var window_add_img_upload = function(obj) {
    var obj_p = $(obj).parentNode.parentNode.parentNode;
    $(obj_p).select('input#img_source')[0].value = 'upload';
    $(obj_p).select('div#file_by_upload')[0].show();
    $(obj_p).select('div#file_by_url')[0].hide();
    $(obj_p).select('.active')[0].removeClassName('active');
    $(obj_p).select('.upl')[0].addClassName('active');
}

var window_add_img_link = function(obj) {
    var obj_p = $(obj).parentNode.parentNode.parentNode;
    $(obj_p).select('input#img_source')[0].value = 'link';
    $(obj_p).select('div#file_by_upload')[0].hide();
    $(obj_p).select('div#file_by_url')[0].show();
    $(obj_p).select('.active')[0].removeClassName('active');
    $(obj_p).select('.url')[0].addClassName('active');
}

var window_add_img = function(txt)
{
    edit_text = txt;
    try {
        if(is_vip != undefined && is_vip === false) {
            alert('Для того чтоб вставлять картинки в комментарии к фотографиям, необходимо стать VIP-пользователем.');
            return;
        }
    }
    catch(e) { }
	
	var n = ($(edit_text) && ($(edit_text).id.indexOf('comment') >= 0))? $(edit_text).value.replace(/\*/gm, '').replace(/\[img\][0-9]+\[\/img\]/gm, '*').replace(/[^\*]/gm, '').length : 0;
	if (n >= 10)
	{
		alert('Вы уже загрузили ' + n + ' изображений. В один комментария нельзя загружать более 10 изображений.');
		return;
	}
	
    
    var action = '/g/?action=g_img_add';
    try
	{
        if(is_comments != undefined) {
            action += '&comments=true';
        }
    }
    catch(e)
	{
		
	}
    var form = new Element('form', {'method': 'post', 'enctype': 'multipart/form-data', 'encoding': 'multipart/form-data', 'action': action, 'target': 'i_upload', 'id': 'form_img_add'});
	
    Event.observe(form, 'submit', function(e)
		{
	        $$('.win')[0].setStyle({height: $$('.win')[0].getHeight() + 'px'});
	        $(e.target).hide();
	        $$('.win')[0].addClassName('img_load_');
	    });
    form.innerHTML = add_img;
    window_('Загрузка изображения', form, 'img_upload');
}
var window_add_video = function(txt) {

    try {
        if(is_vip != undefined && is_vip === false) {
            alert('Для того чтоб вставлять видео в комментарии к фотографиям, необходимо стать VIP-пользователем.');
            return;
        }
    }
    catch(e) { }

    edit_text = txt;
    var d = new Element('div');
    d.innerHTML = '<div><p>Вставьте код видеоролика</p><textarea id="video_html"></textarea></div><input type="button" class="submit" value="Добавить видео" onclick="video_add(); return false;" />' + 
                  '<span>Мы поддерживаем видео от:<br /><b>youtube.com<br />rutube.ru</b></span>';
    window_('Добавление видео в запись', d, 'video_add');
}

var video_add = function() {
    new Ajax.Request('/g/?action=g_video_add', {
        parameters: { str: $F('video_html') },
        onComplete: function (t) {
            $(edit_text).value += t.responseText;
            window_close();
        }
    });
}

var window_link = function() {
    var d = new Element('div', {'class': 'add_link'});
    d.innerHTML = '<p>Ссылка</p><input type="text" id="add_link_url" value="http://" class="txt" />'+
                  '<p>Описание ссылки</p><input type="text" id="add_link_text" class="txt" />'+
                  '<input type="button" class="submit" value="Добавить ссылку" onclick="link_add();" />';
    
    window_('Вставка ссылки', d, 'add_link');
}

var link_add = function() { 
    if($F('add_link_text').strip() == '') {
        $(bb_txt_area).value += '[url]'+$F('add_link_url')+'[/url]';
    }
    else {
        $(bb_txt_area).value += '[url='+$F('add_link_url')+']'+$F('add_link_text')+'[/url]';
    }
    window_close();
}

var window_smile = function(t) {
    var d = new Element('div', {'class': 'window_smile'});
    for(var i = 0; i < smiles.length; i++) {
        d.innerHTML += '<b><img src="/images/smiles/animated/'+smiles[i][0]+'.gif" onclick="emoticon(\''+smiles[i][1]+'\', \''+t+'\'); window_close();" /></b>';
    }
    window_('Вставка смайлика', d, 'window_smile');
}

var smiles = [
    ['ab', ':)'],
    ['ad', ';)'],
    ['ac', ':-('],
    ['ae', ':-P'],
    ['af', '8-)'],
    ['ag', ':-D'],
    ['ah', ':-['],
    ['aa', 'O:-)'],
    ['ak', ':`('],
    ['ai', '=-O'],
    ['aj', ':-*'],
    ['al', ':-X'],
    ['am', '&gt;:o'],
    ['an', ':-|'],
    ['ao', ':-/'],
    ['ap', '*JOKINGLY*'],
    ['aq', ']:-&gt;'],
    ['ar', '[:-}'],
    ['as', '*KISSED*'],
    ['at', ':-!'],
    ['au', '*TIRED*'],
    ['av', '*STOP*'],
    ['aw', '*KISSING*'],
    ['ax', '@}-&gt;--'],
    ['ay', '*THUMBS UP*'],
    ['az', '*DRINK*'],
    ['ba', '*IN LOVE*'],
    ['bb', '@='],
    ['bc', '*HELP*'],
    ['bd', '*/m/*'],
    ['be', '%)'],
    ['bf', '*OK*'],
    ['bg', '*WASSUP*'],
    ['bh', '*SORRY*'],
    ['bi', '*BRAVO*'],
    ['bj', '*ROFL*'],
    ['bk', '*PARDON*'],
    ['bl', '*NO*'],
    ['bm', '*CRAZY*'],
    ['bn', '*DONT_KNOW*'],
    ['bo', '*DANCE*'],
    ['bp', '*YAHOO*'],
    ['bq', '*PREVED*'],
    ['br', '*BYE*'],
    ['bs', '*YES*'],
    ['bt', ';D'],
    ['bu', '*WALL*'],
    ['bv', '*WRITE*'],
    ['bw', '*SCRATCH*']
];
