var lang_not_contentEditable = 'К сожалению, ваш браузер не поддерживает визуальное редактирование. Рекомендуем использовать Internet Explorer 5.5+';
var lang_func_error = 'Функция не может быть выполнена: ';
var lang_link_copy = 'Постоянная ссылка скопирована в буфер обмена. Используйте Ctrl+V, чтобы вставить ее';

function wysiwyg_ini_div(div_name) {

	var curr = document.getElementById(div_name + '_div');
	if (curr.contentEditable) {
		curr.contentEditable = true;
		curr.focus();
		return true;
	} else {
		alert(lang_not_contentEditable);
		return false;
	}

}

function wysiwyg_ini_html(div_name) {
	var curr_html = document.getElementById(div_name);
	curr_html.focus();
}

function wysiwyg_is_html (div_name) {

	var curr_f = document.getElementById(div_name + '_f2');
	if (curr_f.className == 'bookmark_on') {
		return true;
	}
	return false;

}

function wysiwyg_2html (div_name) {

	var f1 = document.getElementById(div_name + '_f1');
	var f2 = document.getElementById(div_name + '_f2');
	var f3 = document.getElementById(div_name + '_f3');

	if (f2.className == 'bookmark_on') {
		return; // html2html
	} else if (f1.className == 'bookmark_on') {
		wysiwyg_div2html (div_name); // div2html
	} else {
		wysiwyg_div2html (div_name); // view2html
	}

	f1.className = 'bookmark_off';
	f2.className = 'bookmark_on';
	f3.className = 'bookmark_off';
	document.getElementById(div_name + '_f0').style.visibility = 'hidden';

}

function wysiwyg_2div (div_name) {

	var f1 = document.getElementById(div_name + '_f1');
	var f2 = document.getElementById(div_name + '_f2');
	var f3 = document.getElementById(div_name + '_f3');

	if (f1.className == 'bookmark_on') {
		return; // div2div
	} else if (f2.className == 'bookmark_on') {
		if (!wysiwyg_html2div (div_name, true))  return; // html2div
	} else {
		if (!wysiwyg_ini_div (div_name))  return; // view2div
	}

	f1.className = 'bookmark_on';
	f2.className = 'bookmark_off';
	f3.className = 'bookmark_off';
	document.getElementById(div_name + '_f0').style.visibility = 'visible';

}

function wysiwyg_2view (div_name) {

	var f1 = document.getElementById(div_name + '_f1');
	var f2 = document.getElementById(div_name + '_f2');
	var f3 = document.getElementById(div_name + '_f3');

	if (f3.className == 'bookmark_on') {
		return; // view2view
	} else if (f1.className == 'bookmark_on') {
		// div2view
	} else {
		if (!wysiwyg_html2div (div_name, false))  return; // html2view
	}

	var curr_div = document.getElementById(div_name + '_div');
	curr_div.contentEditable = false;

	f1.className = 'bookmark_off';
	f2.className = 'bookmark_off';
	f3.className = 'bookmark_on';
	document.getElementById(div_name + '_f0').style.visibility = 'hidden';

}

function wysiwyg_div2html (div_name) {

	var curr_html = document.getElementById(div_name);
	var curr_div = document.getElementById(div_name + '_div');

	curr_html.value = curr_div.innerHTML;

	curr_html.style.visibility = 'visible';

	curr_div.contentEditable = false;
	curr_div.style.visibility = 'hidden';
	curr_div.style.left = -10000;

	wysiwyg_ini_html (div_name);
}

function wysiwyg_html2div (div_name, is_ini) {

	var curr_html = document.getElementById(div_name);
	var curr_div = document.getElementById(div_name + '_div');

	curr_div.innerHTML = curr_html.value;

	//curr_div.contentEditable = true;
	curr_div.style.left = 0;
	curr_div.style.visibility = 'visible';
	curr_html.style.visibility = 'hidden';


	if (!is_ini || wysiwyg_ini_div (div_name)) {
		return true;
	} else {
		curr_html.style.visibility = 'visible';
		curr_div.style.visibility = 'hidden';
		curr_div.style.left = -10000;
		wysiwyg_ini_html (div_name);
		return false;
	}

}


function wysiwyg_exec(el, div_name, func_name, func_param, is_validate_func, is_showmodal) {
	wysiwyg_ini_div(div_name);
	if (el.className == 'disabled') {
		return;
	}

	var curr=document;//.getElementById(div_name);

	if (is_showmodal) {
		func_param = showModalDialog('./?modal=' + is_showmodal, 0, 'resizable: yes; help: no; status: no; scroll: no;');
		if (func_param != null) {
			curr.execCommand(func_name, false, func_param);
		}
		return;
	}

	if (func_name) {
		if (is_validate_func==0 || curr.queryCommandEnabled(func_name)) {
			if (func_param) {
				curr.execCommand(func_name, true, func_param);
			} else {
				curr.execCommand(func_name, true);
			}
		} else {
			alert(lang_func_error + func_name);
		}
	}

	wysiwyg_ini_div  (div_name);
}

function Copy2Buffer(str) {

	var cur = document.getElementById('buffer_copy');
	if (!cur) {
		return true;
	}
	cur.value = str;

	if (!cur.createTextRange) {
		return true;
	}

	try {
		var cur2 = cur.createTextRange();
		if (!cur2 || !cur2.queryCommandEnabled || !cur2.queryCommandEnabled('Copy')) {
			return true;
		}
		cur2.execCommand('Copy');
		alert(lang_link_copy);
		return false;
	} catch (err) {
		//alert(err);
		return true;
	}


}

