//*********************************************************************************
// CMS Symp 3.0
// JavaScript класс проверки орфографии
//*********************************************************************************
function spellForm_symp () {
	this.form_tag = "";
	this.error_tag = "";
	this.field = new Array();
	this.xml_spell_words = "";
	this.link_orfo = "link_orfo";
	this.ajax_spell = function() {
		var sr = new sendForm_symp;
		sr.sever_file_name = "/ajax_spell.php";
		sr.form_tag = this.form_tag;
		sr.error_tag = this.error_tag;
		sr.type_res = "obj";
		sr.obj_spell = this;
		//Переопределим стадартную функцию
		sr.add_accept_function_obj = function(xml) {
			this.obj_spell.xml_spell_words = xml;
			this.obj_spell.show_spell_window();
			if ($("spell_words", xml).attr("cnt") > 0) {
				$("#frame_spell_close").css("display", "none");
				$("#frame_spell").css("display", "block");
				this.obj_spell.sel_item_spell_word(0);
			} else {
				$("#frame_spell_close").css("display", "block");
				$("#frame_spell").css("display", "none");
			}
			$("#"+this.error_tag).html("");
		}
		sr.send();
	}


	this.show_spell_window = function() {
		var coord = absPosition(document.getElementById(this.link_orfo));
		$("#spell_window").css("left", coord.x-50);
		//$("#spell_window").css("top", window.scrollY + window.innerHeight/2 - 130);
		y = (window.scrollY) ? window.scrollY : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
		height = window.innerHeight ? window.innerHeight : document.body.clientHeight;
		$("#spell_window").css("top", parseInt(y + height/2 - 130));

		//$("#spell_window").draggable();
		$("#spell_window").css("visibility", "visible");
	}

	this.hide_spell_window = function() {
		$("#spell_window").css("visibility", "hidden");
		$("#"+this.error_tag).html("");
	}

	this.sel_item_spell_word = function(num) {
		if ((num+1) <= $("spell_words", this.xml_spell_words).attr("cnt")) {
			$("element", this.xml_spell_words).each(
				function(i) {
					if (i == num) {
						$("#orign_word").val($("orign_word", this).text());
						$("#variant_word").empty();
						$("variant_word", this).each(
							function() {
								$("#variant_word").append('<option value="'+$(this).text()+'">'+$(this).text()+'</option>');
							}
						)
					}
				}
			)
			$("#next_spell").attr("href", "javascript:spell.sel_item_spell_word("+(num+1)+");");
			$("#replace_spell").attr("href", "javascript:spell.replace_spell_word("+(num+1)+");");
			$("#my_word").val("");
		} else {
			$("#frame_spell_close").css("display", "block");
			$("#frame_spell").css("display", "none");
		}
	}

	this.replace_spell_word = function(num) {
		var my_word = $("#my_word").val();
		if (my_word.length > 0) {
			var vw = my_word;
		} else {
			var vw = $("#variant_word").val();
		}
		var tmp_field = new String();
		var re1 = new RegExp("([\\s.?!,:'\"();]+)"+$("#orign_word").val()+"([\\s.?!,:'\"();]+)","g");
		var re2 = new RegExp("([\\s.?!,:'\"();]+)"+$("#orign_word").val()+"$","g");
		var re3 = new RegExp("^"+$("#orign_word").val()+"([\\s.?!,:'\"();]+)","g");
		var re4 = new RegExp("^"+$("#orign_word").val()+"$","g");
		for (var i = 0; i < this.field.length; i++) {
			var tmp_field = new String($("#"+this.field[i]).val());
			tmp_field = tmp_field.replace(re1, "$1"+vw+"$2").replace(re2, "$1"+vw).replace(re3, vw+"$1").replace(re4, vw);
			$("#"+this.field[i]).val(tmp_field);
		}
		this.sel_item_spell_word(num);
	}

}