var change_msg=false;	//Автосохранение
var xmlhttp=false;
var color_timer=false;
var color_mousein=false;

try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
	try {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
		xmlhttp = false;
	}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}

function fnShowProps(obj, objName){
    var result = "";
	document.all.debug.innerText="";
    for (var i in obj) // обращение к свойствам объекта по индексу
	{
/*		if(obj[i]=='[object]')
		{
			for (var j in obj[i])
				result += objName+"."+obj[i] + "." + j + " = " + obj[i][j] + "\n";
		}else{
*/			result += objName + "." + i + " = " + obj[i] + "\n";
//		}
	}
    document.all.debug.innerText=result;
}

function AddLink()
{//Identify selected text
	var sText = document.selection.createRange();
	if (!sText==""&&sText.text!="")
	{
		//Create link
		document.execCommand("CreateLink");
		//Replace text with URL
		var txt=sText.text;
		if(txt=="")txt=sText.parentElement().href;
		if (sText.parentElement().tagName == "A")
		{
			sText.parentElement().innerText=txt;
			sText.parentElement().title=sText.parentElement().href;
			document.execCommand("ForeColor","false","#2b8ed3");
		}    
	}else{
		alert("Необходимо выделить текст, чтобы создать ссылку!");
	}   
}

function mcollapse()
{
	var el=document.getElementById("tab_ed");
	var sText = document.selection.createRange();
	if(sText)
	{
		sText.collapse(true);
	}
}

function send_msg()
{
	var el=document.getElementById("tab_ed");
	var tags=el.getElementsByTagName("IMG");
	if(tags.lenght>0)alert(tags[0].src);

	if(!xmlhttp)return;
	xmlhttp.open("GET", "http://www.kirishi.ru/get_data.php",true);
	xmlhttp.onreadystatechange=function() {
	if (xmlhttp.readyState==4) {
		alert(xmlhttp.responseText)
		}
	}
	xmlhttp.send(null)
}

var tab=
{
	color_table_txt: "",
	colors_visible: false,
	tcolors: "",
	sel_color: "",
	sel_color_obj: null,
	sel_image: null,
	textarea: null,
	img_props: null,
	doc_selection: '',
	spell_text: '',
	ed_obj: null,
	
	make_ctable: function()
	{
		this.tcolors='<span id="color_table_event1">&nbsp;</span><span id="color_table_event2" onmouseover="tab.fcolor_vis(false);">&nbsp;</span><br><span id="color_table_body" onmouseover="color_mousein=true;">';
		var colors=new Array(
			"000000","000080","800000","008000","ff6600","800080",
			"808080","3366ff","993300","00ff00","ff9900","ff00ff",
			"c0c0c0","00ccff","ff0000","ccffcc","ffcc00","ff99cc"
			);
		var colors_path="images/forum/pictos/colors/";
		var m=0;
		for(n=0;n<colors.length;n++)
		{
			if(m>=6){this.tcolors+="<br>";m=0;}m++;
			this.tcolors+='<img src="'+colors_path+colors[n]+'.gif" name="'+colors[n]+'" onmouseover="tab.fcolor_sel(this,1)" onmouseout="tab.fcolor_sel(this,0)" onmousedown="tab.fcolor_click(this);" onmouseup="this.className=\'\';">';
		}
		this.tcolors+='</span>';
	},
	
	make: function()
	{
		var tab=new Array(
			"b.gif|b|Полужирный","i.gif|i|Курсив","u.gif|u|Подчёркнутый","strikethrough.gif|sth|Зачёркнутый","|",
			//"copy.gif","cut.gif","paste.gif","|",
			"fore_color.gif|fontcolor|Цвет шрифта|fcolor","|",
			"center.gif|center|По центру","justify.gif|justify|По ширине","|",
			"ol.gif|ol|Нумерованный список","ul.gif|ul|Маркированный список","indent_left.gif|indent-|Уменьшить отступ в списке","indent_right.gif|indent+|Увеличить отступ в списке","|",
			"img.gif|img|Добавить иллюстрацию","img_left.gif|img_left|Обтекание текста справа","img_base.gif|img_base|По-умолчанию","img_right.gif|img_right|Обтекание текста слева","|",
			"link.gif|href|Создать гиперссылку","spell.gif|spell|Проверить на ошибки","|",
			//"bukvitsa.gif|bukv|Буквица",
			"quote.gif|quote|Цитата",
			"|","smiles.gif|smiles|Смайлы"
			);
		var ppath="images/forum/pictos/";
		document.writeln('<div id="color_table" onmouseout="color_mousein=false;"></div>');
//		document.writeln('<div id="smiles_table" style="position: absolute; width: 200px; height: 100px; margin-top: 22px; border: 1px solid #666666; background: #f9f8f7;">11<div align="center" style="font-size: xx-small;">дополнительные смайлы</div></div>');
		for(n=0;n<tab.length;n++)
		{
			res=tab[n].split("|");
			var tag=(res[1]==null)?"":"'"+res[1]+"'";
			var title=(res[2]==null)?"":' title="'+res[2]+'"';
			var onover=(res[3]==null)?' onmouseover="tab.sel(this,1)"':' onmouseover="tab.'+res[3]+'(this);"';
			if(tab[n]=="|")
			{
				document.write('<img src="'+ppath+"razd.gif"+'">');
			}else{
				document.write('<img src="'+ppath+res[0]+'"'+title+onover+' onmouseout="tab.sel(this,0)" onmousedown="tab.mousedown()" onclick="tab.mclick('+tag+')">');
			}
		}
	},
	
	sel: function(obj,mode)
	{
		if(!obj)return;
		mode=(mode==1)?"sel":"";
		obj.style.cursor="pointer";
		obj.className=mode;
	},
	
	smiles: function(obj)
	{
		hg=346;wd=500;
		var top=(screen.height-hg)/2;
		var left=(screen.width-wd)/2;
		var win=window.open("smile/iface","smiles","height="+hg+",width="+wd+",toolbar=no,status=no,scrollbars=no,resize=no,top="+top+",left="+left);
		return win;
	},
	
	set_smile: function(smile)
	{
		obj=document.getElementById("tab_ed");
		if(!obj)return;
		obj.focus();
		var range=document.selection.createRange();
		range.pasteHTML('&nbsp;<img src="smile/'+smile[1]+'" onresizestart="return false;">');
	},
	
	fcolor: function(obj)
	{
		var ct=document.getElementById("color_table");
		if(!ct)return;
		if(this.tcolors=="")
		{
			this.make_ctable();
			ct.innerHTML=this.tcolors;
			ct.style.marginLeft=obj.offsetLeft-8;
		}
		this.fcolor_vis(true);
		color_mousein=false;
		color_timer=setTimeout('tab.fcolor_vis(false)',2000);
	},
	
	fcolor_vis: function(mode)
	{
		if(color_mousein&&color_timer)
		{
			color_timer=setTimeout('tab.fcolor_vis(false)',2000);
			return;
		}
		var ct=document.getElementById("color_table");
		if(!ct)return;
		this.colors_visible=mode;
		mode=(mode==true)?"visible":"hidden";
		ct.style.visibility=mode;
		if(!mode)clearTimeout(color_timer);
	},
	
	fcolor_sel: function(obj,mode)
	{
		if(!obj)return;
		mode=(mode==0)?"":"csel";
		obj.style.cursor="pointer";
		obj.className=mode;
		this.sel_color_obj=obj;
	},
	
	fcolor_click: function(obj)
	{
		if(!obj)return;
		this.sel_color=obj.name;
		this.mclick('fontcolor');
	},
	
	colors_hide: function()
	{
		if(this.colors_visible)this.fcolor_vis(false);
	},
	
	ed_focus: function(el)
	{
		var ed=document.getElementById("tab_ed");
		this.textarea=ed;
		if(el=="p")
		{
			ed.focus();
			r=document.selection.createRange();
			r.move("character",0);
			r.select();
		}else{
			if(ed)ed.focus();
		}
	},
	
	mclick: function(tag)
	{
		var obj=document.getElementById("tab_ed");
		if(obj)obj.focus();
		var range=document.selection.createRange();
//		fnShowProps(range,"rng");
		var orange=null;
		var stag=false;
		var stagname="";
		if(range.length==1)
		{
			orange=range(0);
		}else{
			if(range.parentElement())
				stag=range.parentElement().tagName;
				stagname=range.parentElement().id;
		}
		if(orange)
		{
			stag=orange.tagName;
		}
		if(!stag)return;
//		window.status=stag;
		if((stag=="DIV"&&stagname!="tab_ed")||stag=="H1")return;
		switch(tag)
		{
			case 'href':
				AddLink();
				break;
			case 'b':
				document.execCommand("Bold");
				break;
			case 'i':
				document.execCommand("Italic");
				break;
			case 'u':
				document.execCommand("Underline");
				break;
			case 'sth':
				document.execCommand("Strikethrough");
				break;
			case 'center':
				document.execCommand("JustifyCenter");
				break;
			case 'justify':
				document.execCommand("JustifyFull");
				break;
			case 'ol':
				document.execCommand("InsertOrderedList");
				break;
			case 'ul':
				document.execCommand("InsertUnorderedList");
				break;
			case 'indent+':
				if(!this.isParent(range.parentElement(),"LI"))
					{alert('Данный элемент доступен только в списках!');return;}
				document.execCommand("Indent");
				break;
			case 'indent-':
				if(!this.isParent(range.parentElement(),"LI"))
					{alert('Данный элемент доступен только в списках!');return;}
				document.execCommand("Outdent");
				break;
			case 'fontcolor':
				if(this.sel_color!="")
				{
					if(this.textarea)this.textarea.focus();
					document.execCommand("ForeColor","","#"+this.sel_color);
					this.sel_color="";
					color_mousein=false;
				}
				break;
			case 'img':
//				if(this.is_image(range))fnShowProps(range(0),"img");
				this.picwin();
				break;
			case 'img_base':
				if(this.is_image(range))
				{
					range(0).align='baseline';
					range(0).className='bimg';
				}else{alert('Данный элемент применяется только к картинкам!');}
				break;
			case 'img_left':
				if(this.is_image(range))
				{
					range(0).align='left';
					range(0).className='limg';
				}else{alert('Данный элемент применяется только к картинкам!');}
				break;
			case 'img_right':
				if(this.is_image(range))
				{
					range(0).align='right';
					range(0).className='rimg';
				}else{alert('Данный элемент применяется только к картинкам!');}
				break;
			case 'quote':
				this.quote(range);
				return;
				break;
			case 'spell':
				this.spellcheck();
				break;
			case 'smiles':
				var swin=this.smiles();
				if(swin)swin.focus();
				break;
		}
		msg.change=true;
		this.fcolor_vis(false);
		if(tag!="att"&&tag!="img"&&tag!="spell"&&tag!="smiles")
			if(obj)obj.focus();	//this.ed_focus();
	},
	
	isParent: function(obj,tag)
	{
		if(!obj)return false;
		fend=false;
		count=0;
		while(count<10)
		{
			if(typeof obj.tagName=="undefined")break;
			if(obj.tagName!=tag)
				obj=obj.parentNode;
			else
			{
				fend=true;
				break;
			}
			count++;
		}
		return fend;
	},
	
	spellcheck: function()
	{
		obj=document.getElementById('tab_ed');
		if(!obj)return;
		this.ed_obj=obj;
		var txt=obj.innerHTML;
		var re=new RegExp(["<[^>]+>"]);
		while(txt.match(re))
			txt=txt.replace(re,"");
		re=new RegExp(["&nbsp;"]);
		while(txt.match(re))
			txt=txt.replace(re,"");
		re=/[a-zа-я.,!?:;=\/]{2,}/i;
		if(txt.match(re)==null){alert('Нет данных для проверки орфографии!');return;}
		this.spell_text=txt;
		
		hg=226;wd=400;
		var top=(screen.height-hg)/2;
		var left=(screen.width-wd)/2;
		var win=window.open("spell.php","spellcheck","height="+hg+",width="+wd+",toolbar=no,status=no,scrollbars=no,top="+top+",left="+left);
	},
	
	chk_key: function()
	{
		range=document.selection.createRange();
		tag=range.parentElement().tagName;
		//if(tag=="DIV")return false;
		return true;
	},
	
	mousedown: function()
	{
		this.doc_selection=document.selection.createRange().text;
	},
	
	quote: function(range,auth)
	{
		auth=(auth==undefined)?'кто-то писал:':'Цитата: '+auth;
		txt=this.doc_selection; if(txt=="")txt="text";
		range.pasteHTML('<div id="quote" style="width: 99%;"><h1>'+auth+'</h1><p>'+txt+'</p></div>');
		return;
	},
	
	is_image: function(range)
	{
		if(range.length==1&&(range(0).tagName=='IMG'||range(0).tagName=='img'))
			return true;
		return false;
	},
	
	picwin: function()
	{
		hg=346;wd=500;
		var top=(screen.height-hg)/2;
		var left=(screen.width-wd)/2;
		var win=window.open("http://www.kirishi.ru/myforum/pic_add.php","forum_pic","height="+hg+",width="+wd+",toolbar=no,status=no,scrollbars=no,top="+top+",left="+left);
	},
	
	picadd: function(pic_path,width,palign)
	{
		if(pic_path=="")return;
		if(this.textarea)this.textarea.focus();
		document.execCommand("InsertImage",false,pic_path);
		var image=document.selection.createRange();
		if(!this.is_image(image))return;
		image=image(0);
		if(typeof width!="undefined")image.style.width=width;
		image.align=palign;
		switch(palign)
		{
			case 'left':pclass='limg';break;
			case 'baseline':pclass='bimg';break;
			case 'right':pclass='rimg';break;
		}
		image.className=pclass;
		this.imgaddevents(image);
	},
	
	imgaddevents: function(image)
	{
		image.attachEvent('onresizeend',tab.imgresize);
		image.attachEvent('onload',tab.imgloading);
		image.attachEvent('onerror',tab.imgerror);
	},
	
	imgresize: function()
	{
		if(!event.srcElement)return;
		var image=event.srcElement;
		if(image.width>image.width1||image.height>image.height1)
		{
			image.style.height=image.height1;
			image.style.width=image.width1;
		}else{
			image.style.height=Math.ceil(image.height1*(image.width/image.width1));
		}
		image.title="Размер картинки: "+image.width+"x"+image.height;
		return false;
	},

	imgloading: function()
	{
		if(!event.srcElement)return;
		image=event.srcElement;
		if(image.width>430)image.width=430;
		image.width1=image.width;
		image.height1=image.height;
		image.onresizeend='tab.imgresize();';
	},
	
	imgerror: function()
	{
		alert('Ошибка! Картинка не загружена!');
		if(!event.srcElement)return;
		image=event.srcElement;
		image.parentElement.removeChild(image);
	},
	
	imgedit: function()
	{
		obj=document.getElementById('tab_ed');
		if(!obj)return;
		obj=obj.getElementsByTagName('IMG');
		for(n=0;n<obj.length;n++)
			if(obj[n].name!="out")
			{
				obj[n].attachEvent('onresizeend',tab.imgresize);
				obj[n].attachEvent('onload',tab.imgloading);
				obj[n].onresizeend='tab.imgresize()';
			}
	},
	
	includes:
	{
		sel: function()
		{
			if(!event.srcElement)return;
			obj=event.srcElement;
			if(obj.tagName!="SPAN")obj=obj.parentElement;
			obj.className=(obj.className=='inc_sel')?'':'inc_sel';
		},
		
		key: function()
		{
			key=event.keyCode;
			if(!event.srcElement)return;
			obj=event.srcElement;
			if(obj.tagName!="SPAN")obj=obj.parentElement;
			if(key==46)obj.parentElement.removeChild(obj);
			return false;
		},
		
		del: function(obj)
		{
			if(!obj)return;
			divs=obj.getElementsByTagName("SPAN");
			if(divs.length<1)return;
			for(n=divs.length-1;n>=0;n--)
			{
				if(divs(n).className=="inc_sel")
					divs(n).parentElement.removeChild(divs(n));
			}
		},
		
		add_file: function(plink,text,type,fname,realname)
		{
			tobj=(type=="pic")?"inc_pics":"inc_files";
			obj=document.getElementById(tobj);
			if(!obj)return;
			ospan=document.createElement("SPAN");
			ospan.attachEvent('onclick',tab.includes.sel);
			ospan.attachEvent('onkeyup',tab.includes.key);
			ospan=obj.appendChild(ospan);
			if(type=="pic")
			{
				ospan.innerHTML='<img src="'+plink+'" id="pic" ondragstart="return false;" onselectstart="return false;" name="'+fname+'" realname="'+realname+'">'+text;
				ospan.id="pic";
			}else{
				ospan.innerHTML='<img src="'+plink+'" align="left" ondragstart="return false;" onselectstart="return false;" name="'+fname+'" realname="'+realname+'">'+text;
				ospan.id="file";
			}
		},
		
		file_win: function()
		{
			hg=114;wd=500;
			var top=(screen.height-hg)/2;
			var left=(screen.width-wd)/2;
			var win=window.open("http://www.kirishi.ru/myforum/file_add.php","forum_file","height="+hg+",width="+wd+",toolbar=no,status=no,scrollbars=no,top="+top+",left="+left);
		}
	}
}

var files=
{
	upload: function()
	{
		//var ifrForm=top.upl.document.upl;
		var el=document.getElementById("tab_ed");
		var tags=el.getElementsByTagName("IMG");
		if(tags.length>0)
		{
			alert(ifrForm.uplfile.value);
			ifrForm.uplfile.value=tags[0].src
		}
	}
}

var msg=
{
	timeobj: null,
	change: false,
	
	autosave: function()
	{
		obj=document.getElementById("tab_ed");
		if(this.change&&obj&&obj.innerText!="")
		{
			window.status="Сохраняем документ...";
			this.change=false;
		}
		this.timeobj=setTimeout("msg.autosave()",120000);
	}
}





var work_rows_count=3;

function add_variant(bobj)
{
	obj=document.getElementById("tvote");
	if(!obj)return;
	if((obj.rows.length-work_rows_count)>11){alert("Вы добавили максимально возможное количество вариантов!");return;}
	var oRow=obj.insertRow(obj.rows.length-2);
	var aRows=obj.rows;
	var aCells=oRow.cells;
	var oCell=aRows[oRow.rowIndex].insertCell(aCells.length);
	oCell.className="vtxt";
	oCell.noWrap=true;
	oCell.innerHTML="<b>Вариант ответа:</b>";
	var oCell=aRows[oRow.rowIndex].insertCell(aCells.length);
	oCell.innerHTML='<input name="vote_variant[]" id="inp" type="text" maxlength="255">';
	var oCell=aRows[oRow.rowIndex].insertCell(aCells.length);
	oCell.className="vbut";
	oCell.noWrap=true;
	oCell.innerHTML='<input type="button" id="gbtn" value="Удалить" onclick="del_variant(this)" title="Удалить этот вариант">';
}

function del_variant(obj)
{
	if(!obj)return;
	if(!obj.parentNode.parentNode)return;
	var num=obj.parentNode.parentNode.rowIndex;
	tobj=document.getElementById("tvote");
	if(!tobj)return;
	if(tobj.rows.length>(work_rows_count+1))
	{
		tobj.deleteRow(num);
	}else{
		tobj.rows[num].cells[1].firstChild.value="";
	}
}

function chk_vote()
{
	var oform=document.forms.forum_msg;
	if(!oform.vote_question)return true;
	quest=oform.vote_question.value;
	if(quest=="")return true;
	obj=document.getElementById("tvote");
	if(!obj)return false;
	var_count=obj.rows.length-work_rows_count;
	if(var_count>=2)
	{
		var_txt=obj.rows[2].childNodes[1].firstChild.value;
		if(var_txt=="")
			{alert("Для добавления голосования Вам необходимо ввести второй вариант ответа");return false;}
		return true;
	}else if(var_count==1){
		var_txt=obj.rows[1].childNodes[1].firstChild.value;
		if(var_txt=="")
			{alert("Для добавления голосования Вам необходимо добавить варианты ответов.\nИначе оставьте поле с вопросом пустым!");return false;}
		alert("Необходимо написать второй варианта ответа!");
	}else{
		alert("Для добавления голосования Вам необходимо добавить варианты ответов.\nИначе оставьте поле с вопросом пустым!");
	}
	return false;
}

function checkvdays()
{
	var oform=document.forms.forum_msg;
	if(!oform.vdays)return false;
	val=parseInt(oform.vdays.value);
	if(isNaN(val)||val<1){alert("Для выбора этой опции необходимо указать\nсколько дней должен длиться опрос!");return false;}
	return true;
}

function checkvhide(obj)
{
	if(!obj)return;
	val=parseInt(obj.value);
	if(isNaN(val)||val<1)
	{
		var oform=document.forms.forum_msg;
		if(oform.vhide)oform.vhide.checked=false;
	}
}