// JavaScript Document
//реализация кнопок редактирования комментария
$(document).ready(function(){

	function insertTag(_obj_name, start, end){//_obj_name - имя textarea, _tag_start - что вставлять перед выделенным текстом,	 _tag_end - что вставлять после выделенного текста

		element = document.getElementById(_obj_name);
        var count = 0;

		if (document.selection) {
			element.focus();
			sel = document.selection.createRange();
            count = sel.text.length - 1;
			sel.text = start + sel.text + end;
		} else if (element.selectionStart || element.selectionStart == '0') {
			element.focus();
			var startPos = element.selectionStart;
			var endPos = element.selectionEnd;
			element.value = element.value.substring(0, startPos) + start + element.value.substring(startPos, endPos) + end + element.value.substring(endPos, element.value.length);
            count = endPos - startPos;
		} else {
			element.value += start + end;
		}
        return count;
	}// end function

	
	function insert_text_cursor(_obj_name, _text){//_obj_name - имя textarea, _text - текст, который требуется вставить в том место, где сейчас находится курсор
        var count = _text.length;
		var area=document.getElementsByName(_obj_name).item(0);
		
		if (document.all) {
			if (area.value.length == 0) area.value= _text+' '; else area.value = area.value+' '+ _text+' '; area.focus();
		} else if (area.selectionStart || area.selectionStart=='0'){ // определяем, где начало выделения, если оно существует
		
			var p_start = area.selectionStart;
			// определяем, где заканчивается выдедение, если оно существует
			var p_end=area.selectionEnd;
			// вставляем соответствующий текст в указанное место
			area.value = area.value.substring(0,p_start) + _text + area.value.substring(p_end,area.value.length);
		}/*if (document.selection) {// если объект может иметь выделения передаем фокус ввода на нужный нам объект

			area.focus();
			// узнаем выделение, если оно существует
			sel = document.selection.createRange();
			// вставляет текст в указанное место
			sel.text = _text;
		}*/
        return count;
		
	}// end function
	
	function cursor_position(_obj_name) {// возвращает позицию курсора (cursor) в textarea
				
		var area = document.getElementsByName(_obj_name).item(0);
		area.focus();

		// для всех нормальных браузеров
		if(area.selectionStart) { 
			return area.selectionStart;// возвращаем позицию курсора в texarea
		} else if (document.selection) {// для ИЕ
			// если честно нижний код даже комментировать не хочется, это такой гемор, что прям вообще
			var sel=document.selection.createRange();
			var clone=sel.duplicate();
			sel.collapse(true);
			clone.moveToElementText(area);
			clone.setEndPoint('EndToEnd',sel);
			return clone.text.length;// возвращаем, где стоит курсор
		}
		return 0;// по умолчанию курсор будет стоять в начале
	}// /function cursor_position
	
	function cursor_start(_obj_name) {// перемещение курсора (cursor) в начало texarea

		// Для всех Нормальных браузеров
		var area=document.getElementsByName(_obj_name).item(0);
		if (area.selectionStart) { 
			area.focus();
			area.setSelectionRange(0,0);
		} else if (area.createTextRange) { // для ИЕ
			var r=area.createTextRange();
		  	// Свойство collapsed вернет true, если граничные точки имеют
		  	// одинаковые контейнеры и смещение (false в противном случае)
			r.collapse(true);
			r.select();
		}
	}// /function cursor_start
	
	
	function cursor_end(_obj_name) {// Выполняет: перемещение курсора (cursor) textarea в конец

		var area=document.getElementsByName(_obj_name).item(0);

		// Для всех Нормальных браузеров
		if (area.selectionStart){ // узнаем длину содержимого textarea
			var len=area.value.length;

			area.focus();// aктивируем фокус ввода на объекте
			area.setSelectionRange(len,len);// перемещаемся в конец текста в объекте
			area.focus();// aктивируем фокус ввода на объекте
		} else if (area.createTextRange) {	// отдельная корявка под Internet Explorer
			var r=area.createTextRange();
			// Свойство collapsed вернет true, если граничные точки имеют
		  	// одинаковые контейнеры и смещение (false в противном случае)
		  	r.collapse(false);
		  	r.select();
		}
	}// /function cursor_end
	
	//перемещает курсор в заданную позицию
	function setSelectionRange(_obj_name, offset) {
		
		input = document.getElementById(_obj_name);
		selectionStart = offset;
		selectionEnd = offset;

		if (input.setSelectionRange) {
			input.focus();
			input.setSelectionRange(selectionStart, selectionEnd);
		}
		else if (input.createTextRange) {
			var range = input.createTextRange();
			range.collapse(true);
			range.moveEnd('character', selectionEnd);
			range.moveStart('character', selectionStart);
			range.select();
		} else {
            console.log('none');
        }

    }
	
	//удаление лишних пробелов
	function trim( str, charlist ) {
		charlist = !charlist ? ' \\s\xA0' : charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
		var re = new RegExp('^[' + charlist + ']+|[' + charlist + ']+$', 'g');
		return str.replace(re, '');
	}

	$("#new_but_h2").click(function(){
        var cursor = cursor_position("n_anonce");
		var simvols = insertTag("n_anonce", "[h2]", "[/h2]");
        var newPosition = cursor - 0 + 9 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_ul").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[ul]", "[/ul]");
        var newPosition = cursor - 0 + 9 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_li").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[li]", "[/li]");
        var newPosition = cursor - 0 + 9 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_br").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insert_text_cursor("n_anonce", "[br]");
        var newPosition = cursor - 0 + 4 + simvols;
        setSelectionRange("n_anonce", newPosition);
		return false;
	});
	
	$("#new_but_par").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[p]", "[/p]");
        var newPosition = cursor - 0 + 7 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});

	$("#new_but_b").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[b]", "[/b]");
        var newPosition = cursor - 0 + 7 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_i").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[i]", "[/i]");
        var newPosition = cursor - 0 + 7 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_u").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[u]", "[/u]");
        var newPosition = cursor - 0 + 7 + simvols;
        setSelectionRange("n_anonce", newPosition);
		cursor_end("n_anonce");
		return false;
	});
	$("#new_but_s").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[s]", "[/s]");
        var newPosition = cursor - 0 + 7 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_c").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[quote]", "[/quote]");
        var newPosition = cursor - 0 + 15 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		position = cursor_position("n_anonce");
		if(position == 0) offset = position+7;
		else offset = position-8;
		setSelectionRange("n_anonce", offset);
		return false;		
	});
	
	$("#new_but_l").click(function(){
        var cursor = cursor_position("n_anonce");
		addlink = prompt('Введите URL:',"http://");
		if(addlink != null && addlink != "" && addlink != "http://")

            var simvols = insertTag("n_anonce", "[URL="+addlink+"]", "[/URL]");
        var newPosition = cursor;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});	
	
	$("#new_but_jl").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[just=left]", "[/just]");
        var newPosition = cursor - 0 + 18 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_jc").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[just=center]", "[/just]");
        var newPosition = cursor - 0 + 20 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_jr").click(function(){
        var cursor = cursor_position("n_anonce");
        var simvols = insertTag("n_anonce", "[just=right]", "[/just]");
        var newPosition = cursor - 0 + 19 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_f").click(function(){
        var cursor = cursor_position("n_anonce");
		addframe = prompt('Введите URL:',"http://");
		re = /http[s]?:\/\/[^\"\']*/i
		var url = addframe.match(re)
		if(url != null && url != "" && url != "http://")
        var simvols = insert_text_cursor("n_anonce", "[FRAME="+url+"]");
        var newPosition = cursor - 0 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_p").click(function(){
        var cursor = cursor_position("n_anonce");
		addpic = prompt('Введите URL изображения:',"http://");
		if(addpic != null && addpic != "" && addpic != "http//:")
        var simvols = insert_text_cursor("n_anonce", "[IMG="+addpic+"]");
        var newPosition = cursor - 0 + 8 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});	
	
	$("#new_but_y").click(function(){
        var cursor = cursor_position("n_anonce");
		addlink = prompt("Укажите URL страницы с видеороликом: ", "http://")
		if(addlink != null && addlink != "" && addlink != "http://")
        var simvols = insert_text_cursor("n_anonce", "[YOUTUBE="+addlink+"]");
        var newPosition = cursor - 0 + 8 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});
	
	$("#new_but_r").click(function(){
        var cursor = cursor_position("n_anonce");
		addlink = prompt("Укажите URL страницы с видеороликом: ", "http://")
		if(addlink != null && addlink != "" && addlink != "http://")
        var simvols = insert_text_cursor("n_anonce", "[RUTUBE="+addlink+"]");
        var newPosition = cursor - 0 + 8 + simvols;
        setSelectionRange("n_anonce", newPosition);
		//cursor_end("n_anonce");
		return false;
	});

});

function explode( delimiter, string ) {				 
	var emptyArray = { 0: '' };
 
	if ( arguments.length != 2
		|| typeof arguments[0] == 'undefined'
		|| typeof arguments[1] == 'undefined' )
	{
		return null;
	}
 
	if ( delimiter === ''
		|| delimiter === false
		|| delimiter === null )
	{
		return false;
	}
 
	if ( typeof delimiter == 'function'
		|| typeof delimiter == 'object'
		|| typeof string == 'function'
		|| typeof string == 'object' )
	{
		return emptyArray;
	}
 
	if ( delimiter === true ) {
		delimiter = '1';
	}
 
	return string.toString().split ( delimiter.toString() );
}

function checkType(){
	var fileinput = document.getElementById("file_new");
	var tp = explode(".", fileinput.value);
	var type = tp[(tp.length-1)];
	var ltype = type.toLowerCase();
	if(ltype != "jpeg" && ltype != "jpg" && ltype != "png" && ltype != "gif"){
		var divinput = document.getElementById("divinput");					
		divinput.removeChild(fileinput);
		finput = document.createElement("input");
		finput.setAttribute("type", "file");
		finput.setAttribute("id", "file_new");
		finput.setAttribute("name", "file_new");
		divinput.appendChild(finput);
		alert("Можно загрузить только файлы форматов: png, jpg и gif.");
	}
}