window.onresize = setSearchPanelPosition;

function trOver(obj){
	if(obj.style.backgroundColor != "#0099ff")obj.style.backgroundColor = "#f7f7f7";
}

function trOut(obj){
	if(obj.style.backgroundColor != "#0099ff")obj.style.backgroundColor = "";
}

function trClick(obj){
	if(obj.style.backgroundColor == "#0099ff") obj.style.backgroundColor = "#efefef";
		 else obj.style.backgroundColor = "#0099ff";
}


function trigger_search(obj){
	
	if(_o('search_panel').style.display == "none"){
		setSearchPanelPosition();
		_o('search_panel').style.display = "block";
		obj.style.backgroundColor = "#C1D9F0";
		obj.style.border = "1px solid #17365D";
	}else{
		_o('search_panel').style.display = "none";
		obj.style.backgroundColor = "";
		obj.style.border = "1px solid #efefef";
	}
	
}

function setSearchPanelPosition(){
	_o('search_panel').style.left = document.documentElement.clientWidth-650+"px";
}

function a_links(){
	var a;
	var anchors;
}

function editA(name, what){
    name.body.focus();
    var obj = searchTag("A",name);
    var links = new a_links();
    if(obj){
    	links.a = obj;
    	links.anchors = name.anchors;
    	if(!obj.name)modalWin("/admin/editor/a_props_editor.html", links, 360, 180);
    }
    	else {
    		var obj = searchTag("IMG",name);
    		if(obj){
    			links.a = obj.outerHTML;
    			links.anchors = name.anchors;
    			w = modalWin("/admin/editor/a_insert_editor.html", links, 360, 180);
    			if(w)obj.outerHTML = w;
    		}else{
	    		name.body.focus();
				var range = name.selection.createRange();
				links.a = range.text;
    			links.anchors = name.anchors;
	    		w = modalWin("/admin/editor/a_insert_editor.html", links, 360, 180);
	    		if(w)range.pasteHTML(w);
    		}
    	}
    name.body.focus();
    getTagsPath(name);
}

function editAnchor(name, what){
    name.body.focus();
    var obj = searchTag("A",name);
    if(obj){
    	if(obj.name)modalWin("/admin/editor/anchor_props_editor.html", obj, 360, 180);
    }
    	else {
    			name.body.focus();
				var range = name.selection.createRange();
				if(range.text == ""){
		    		w = modalWin("/admin/editor/anchor_props_editor.html", range.text, 360, 180);
		    		if(w)range.pasteHTML(w);
				}
    	}
    showAnchors(name.anchors);
    name.body.focus();
    getTagsPath(name);
}

function editBgColor(name){
	var w = modalWin("/admin/editor/colorpicker.htm", "", 400, 180);
	if(w){
		name.body.focus();
		doFormat("BackColor", w, name);
	}
}

function editFgColor(name){
	var w = modalWin("/admin/editor/colorpicker.htm", "", 400, 180);
	if(w){
		name.body.focus();
		doFormat("ForeColor", w, name);
	}
}

function insert_symbol(name){
	var w = modalWin("/admin/editor/insert_symbol.html", "", 250, 197);
	if(w){
		name.body.focus();
		var range = name.selection.createRange();
		range.pasteHTML(w);
	}
}

function editTpl(tpl){
	var w = modalWin("/admin/editor/tpl_editor.html", tpl, 550, 450);
	
}


function flash_insert(url, name){
	var obj = searchTag("OBJECT",name);
	var w = modalWin("/admin/editor/flash_upload.html", obj, 750, 350);
	if(w){name.body.focus();insertElement(w,name);}
}

function img_insert(url, name){
	var obj = searchTag("IMG",name);
	var w = modalWin("/admin/editor/img_upload.html", obj, 750, 400);
	if(w){name.body.focus();insertElement(w,name);}
}

function file_insert(url, name){
	var obj = searchTag("A", name);
	var w = modalWin("/admin/editor/file_upload.html", obj, 750, 350);
	if(w){
		w = w.split(",");
		name.body.focus();
		InsertFileLink(w[0], w[1], w[2], w[3], w[4], name);
	}
}

function InsertFileLink(path, name, title, type, size, obj){
	if(obj.selection.type == 'Text' || obj.selection.type == 'None'){
		var r = obj.selection.createRange();
		target = '';
		if(type == 'blank')target=' target="_blank"';
		if(title != '')title=' title="'+title+'"';
		if(r.text == ""){
			str = '<a href="'+path+'"'+target+title+'>'+name+' ('+size+')</a>';
			insertElement(str, obj);
		}else
			r.pasteHTML('<a href="'+path+'"'+target+'>'+r.text+'</a>');
	}else alert('Немогу заменить объект');	
}

function _o(obj){
	return document.getElementById(obj);
}

function classTableProps(){
	var rows = 0;
	var cols = 0;
	var cellSpacing = 0;
	var cellPadding = 0;
	var width = "";
	var height = "";
	var align = "";
	var bgColor = "";
	var border = 0;
	var className = "";
}

function _o(obj){
	return document.getElementById(obj);
}

var layers = new Array();

function getTagsPathClick(){
	getTagsPath(this.parentWindow.document)
}

function getTagsPath(obj){
	var s = "";
    if(obj.selection.type == "Control")var obj2 = obj.selection.createRange().item(0);
		else var obj2 = obj.selection.createRange().parentElement();
    while(obj2){
		s = "&lt;"+obj2.nodeName+"&gt;" + s;
		if(obj2.nodeName == "HTML")break;
		var obj2 = obj2.parentNode;
    }
    _o(obj.parentWindow.name + "_htmlpath").innerHTML = s;
    enableButtons(obj);
}


function searchTag(tag, obj){
	var s = "";
	if(obj.selection.type == "Control")	var obj = obj.selection.createRange().item(0);
		else var obj = obj.selection.createRange().parentElement();
    while(obj){
		if(obj.nodeName == tag) return obj;
		var obj = obj.parentNode;
    }
    return null;
}

function enableButtons(obj){
//	searchTag("H1",obj)
	obj_name = obj.parentWindow.name;
	if(searchTag("H1",obj)||searchTag("H2",obj)||searchTag("H3",obj)||searchTag("H4",obj)||searchTag("H5",obj)||searchTag("H6",obj)){
	
		if(searchTag("H1",obj))	_o(obj_name+"setHeading").selectedIndex = 1;
		if(searchTag("H2",obj))	_o(obj_name+"setHeading").selectedIndex = 2;
		if(searchTag("H3",obj))	_o(obj_name+"setHeading").selectedIndex = 3;
		if(searchTag("H4",obj))	_o(obj_name+"setHeading").selectedIndex = 4;
		if(searchTag("H5",obj))	_o(obj_name+"setHeading").selectedIndex = 5;
		if(searchTag("H6",obj))	_o(obj_name+"setHeading").selectedIndex = 6;
	
	}else _o(obj_name+"setHeading").selectedIndex = 0;
	
}



function editTable(name, what){
    name.body.focus();
    var obj = searchTag("TABLE",name);
    if(obj)modalWin("/admin/editor/table_props_editor.html", obj, 500, 300);
    else{
    	var w = modalWin("/admin/editor/table_props_editor.html", "", 500, 300);
    	if(w){name.body.focus();insertElement(w,name);}
    }
    
    getTagsPath(name);
}

function editCell(name, what){
    name.body.focus();
    var obj = searchTag("TD",name);
    if(obj)	modalWin("/admin/editor/td_props_editor.html", obj, 280, 320);
    name.body.focus();
    getTagsPath(name);
}

function editRow(name, what){
    name.body.focus();
    var obj = searchTag("TR",name);
    if(obj) modalWin("/admin/editor/tr_props_editor.html", obj, 280, 300);
    name.body.focus();
    getTagsPath(name);
}

function modalWin(url, name, width, height) {
	if (window.showModalDialog){
		return showModalDialog(url,name,"dialogWidth:"+width+"px;dialogHeight:"+height+"px");
	}else{
		return window.open(url,name,'height='+height+',width='+width+',toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,modal=yes');
	}
}

function getRowCells(td){
	var grid = getTableGrid(td.parentNode.parentNode);
	var current_cell = getCellPos(grid,td);
	if(current_cell.rowindex+td.rowSpan >= td.parentNode.parentNode.rows.length) return false;
	var temp_td = getCell(grid, current_cell.rowindex+td.rowSpan, current_cell.cellindex);
	if(temp_td.colSpan==td.colSpan) return temp_td;
		else return false;
}

function getColCells(td){
	var grid = getTableGrid(td.parentNode.parentNode);
	var current_cell = getCellPos(grid,td);
	if(td.cellIndex >= td.parentNode.cells.length-1) return false;
	var temp_td = getCell(grid, current_cell.rowindex, current_cell.cellindex+td.colSpan);
	if(temp_td.rowSpan==td.rowSpan) return temp_td;
		else return false;
}

function getColRowSpan(td){
	var colspan=td.colSpan;
	var rowspan=td.rowSpan;
	colspan=colspan==""?1:parseInt(colspan);
	rowspan=rowspan==""?1:parseInt(rowspan);
	return{colspan:colspan,rowspan:rowspan};
}

function getCellPos(grid,td){
	var x,y;
	for(y=0;y<grid.length;y++){
		for(x=0;x<grid[y].length;x++){
			if(grid[y][x]==td)return{cellindex:x,rowindex:y};
		}
	}return null;
}

function getCell(grid,row,col){
	if(grid[row]&&grid[row][col])return grid[row][col];
	return null;
}

function getTableGrid(table){
	var grid=new Array(),rows=table.rows,x,y,td,sd,xstart,x2,y2;
	for(y=0;y<rows.length;y++){
		for(x=0;x<rows[y].cells.length;x++){
			td=rows[y].cells[x];
			sd=getColRowSpan(td);
			for(xstart=x;grid[y]&&grid[y][xstart];xstart++);
			for(y2=y;y2<y+sd['rowspan'];y2++){
				if(!grid[y2])grid[y2]=new Array();
				for(x2=xstart;x2<xstart+sd['colspan'];
				x2++)grid[y2][x2]=td;
			}
		}
	}
	return grid;
}

function mergeCellRight(name, what){
    name.body.focus();
    var td = searchTag("TD",name);
    if(td){
    	var tr = td.parentNode;
    	if(td2 = getColCells(td)){
    		td.colSpan = td.colSpan+td2.colSpan;
    		td.innerHTML = td.innerHTML + ' ' + td2.innerHTML;
    		tr.deleteCell(td2.cellIndex)
    	}else alert('Невозможно объединить ячейки');
    }
    name.body.focus();
    getTagsPath(name);
}


function mergeCellDown(name, what){
    name.body.focus();
    var td = searchTag("TD",name);
    if(td){
    	var tr = td.parentNode;
    	var t = tr.parentNode;
    	if(td2 = getRowCells(td)){
    		var t_row = td.rowSpan;
    		td.rowSpan = td.rowSpan+td2.rowSpan;
    		td.innerHTML = td.innerHTML + ' ' + td2.innerHTML;
    		t.rows[tr.rowIndex+t_row].deleteCell(td2.cellIndex)
    	}else alert('Невозможно объединить ячейки');
    }
    name.body.focus();
    getTagsPath(name);
}

function splitCellDown(name, what){
    name.body.focus();
    var td = searchTag("TD",name);
    if(td)
    if(td.rowSpan > 1){
    	var tr = td.parentNode;
    	var t = tr.parentNode;
    	var grid = getTableGrid(t);
		var current_cell = getCellPos(grid,td);
		if(current_cell.cellindex == 0) ci = getCell(grid,tr.rowIndex+td.rowSpan-1,current_cell.cellindex).cellIndex;
			else ci = getCell(grid,tr.rowIndex+td.rowSpan-1,current_cell.cellindex-1).cellIndex+1;
    	new_cell = t.rows[tr.rowIndex+td.rowSpan-1].insertCell(ci);
    	new_cell.colSpan = td.colSpan;
    	td.rowSpan = td.rowSpan - 1;
    }else alert('Невозможно разъединить ячейку');
    name.body.focus();
    getTagsPath(name);
}

function splitCellRight(name, what){
    name.body.focus();
    var td = searchTag("TD",name);
    if(td)
    if(td.colSpan > 1){
    	var tr = td.parentNode;
    	var t = tr.parentNode;
    	var grid = getTableGrid(t);
		var current_cell = getCellPos(grid,td);
    	new_cell = tr.insertCell(td.cellIndex+1);
    	new_cell.rowSpan = td.rowSpan;
    	td.colSpan = td.colSpan - 1;
    }else alert('Невозможно разъединить ячейку');
    name.body.focus();
    getTagsPath(name);
}

function insRow(name, what){
    name.body.focus();
    var obj = searchTag("TD",name);
    if(searchTag("TD",name)){
    	var t = searchTag("TD",name).parentNode.parentNode;
    	var tr = obj.parentNode;
    	var newRow = t.insertRow(tr.rowIndex+1);
    	for(var i = 0; i < tr.cells.length;i++){
    		newRow.insertCell(i);
    	}
    }
    name.body.focus();
    getTagsPath(name);
}

function insCol(name, what){
    name.body.focus();
    var obj = searchTag("TD",name);
    if(searchTag("TD",name)){
    	var t = obj.parentNode.parentNode;
    	var td = obj;
    	for(var i = 0; i < t.rows.length;i++){
    		var newCell = t.rows[i].insertCell(td.cellIndex+1);
    	}
    }
    name.body.focus();
    getTagsPath(name);
}

function delCol(name, what){
    name.body.focus();
    if(td = searchTag("TD",name)){
    	var tr = td.parentNode;
    	var t = tr.parentNode;
    	var grid = getTableGrid(t);
		var current_cell = getCellPos(grid,td);
    	for(var i = 0; i < t.rows.length;i++){
    		var cell = getCell(grid,i,current_cell.cellindex);
    		t.rows[i].deleteCell(cell.cellIndex);
    	}
    }
    name.body.focus();
    getTagsPath(name);
}

function delRow(name, what){
    name.body.focus();
    var obj = searchTag("TD",name);
    if(searchTag("TD",name)){
    	var t = obj.parentNode.parentNode;
    	var tr = obj;
    	t.deleteRow(tr.rowIndex)
    }
    name.body.focus();
    getTagsPath(name);
}

function setHeading(name, fname) {
	
	name.body.focus();
	
	if(fname == 0){
		var open = "<p";
		var close = "</p"
	}else{
		var open = "<h"+fname;
		var close = "</h"+fname;
	}
	
    var txt = name.selection.createRange();
    var tag = txt.parentElement().tagName;
    if(tag == "P"||tag == "H1"||tag == "H2"||tag == "H3"||tag == "H4"||tag == "H5"||tag == "H6")str = txt.parentElement().outerHTML;
    	else str = txt.parentElement().innerHTML;
 	
    str = str.replace(/<P /ig, open+" ");
    str = str.replace(/<P>/ig, open+">");
    
    str = str.replace(/<\/P[^>]*>/ig, close+">");
    
    str = str.replace(/<H1 /ig, open+" ");
    str = str.replace(/<H2 /ig, open+" ");
    str = str.replace(/<H3 /ig, open+" ");
    str = str.replace(/<H4 /ig, open+" ");
    str = str.replace(/<H5 /ig, open+" ");
    str = str.replace(/<H6 /ig, open+" ");
    
    str = str.replace(/<H1>/ig, open+">");
    str = str.replace(/<H2>/ig, open+">");
    str = str.replace(/<H3>/ig, open+">");
    str = str.replace(/<H4>/ig, open+">");
    str = str.replace(/<H5>/ig, open+">");
    str = str.replace(/<H6>/ig, open+">");
    
    str = str.replace(/<\/H[^>]*>/ig, close+">");
    
    if(tag == "P"||tag == "H1"||tag == "H2"||tag == "H3"||tag == "H4"||tag == "H5"||tag == "H6")txt.parentElement().outerHTML = str;
    	else{
    	
    		if(!(str.substring(0,2) == "<h"||str.substring(0,2) == "<H"||str.substring(0,2) == "<p"||str.substring(0,2) == "<P")){
    			str = "<h"+fname+">"+str+"</h"+fname+">";
    		}
    			
    		txt.parentElement().innerHTML = str;
    	}
    	
    txt.select();
	getTagsPath(name);
}

function m5_calendarGetTempDate(obj)
{
	el = window.document.getElementById(obj+'[temp]').value;
	d = new Date(el.substring(0,4),el.substring(5,7)-1,el.substring(8,10),el.substring(11,13),el.substring(14,16), el.substring(17,19));	
	return d.toString();	
}

function m5_calendarGetCurrentDate(obj)
{
	el = window.document.getElementById(obj).value;
	var d = new Date(el.substring(0,4),el.substring(5,7)-1,el.substring(8,10),el.substring(11,13),el.substring(14,16), el.substring(17,19));	
	return d.toString();		
}

function m5_calendarSetTempFullDate(date, obj)
{
	d = new Date(date);
	el = window.document.getElementById(obj+'[temp]').value = m5_calendarAddNul(d.getFullYear())+'-'+m5_calendarAddNul(d.getMonth()+1)+'-'+m5_calendarAddNul(d.getDate())+' '+m5_calendarAddNul(d.getHours())+':'+m5_calendarAddNul(d.getMinutes())+':'+m5_calendarAddNul(d.getSeconds());
}

function m5_calendarSetTempDate(year, month, day, obj)
{
	curr = window.document.getElementById(obj+'[temp]').value+'';
	el = window.document.getElementById(obj+'[temp]').value = m5_calendarAddNul(year)+'-'+m5_calendarAddNul(month)+'-'+m5_calendarAddNul(day)+' '+curr.substring(11,19);
	m5_calendarShow(obj);
	//m5_trigger(obj+'[calendar_table]');
}

function m5_calendarSetTempHours(hours, obj)
{
	curr = window.document.getElementById(obj+'[temp]').value+'';
	el = window.document.getElementById(obj+'[temp]').value = curr.substring(0,11)+m5_calendarAddNul(hours)+curr.substring(13,19);
	m5_calendarShow(obj);
}

function m5_calendarSetTempMinutes(minutes, obj)
{
	curr = window.document.getElementById(obj+'[temp]').value+'';
	el = window.document.getElementById(obj+'[temp]').value = curr.substring(0,14)+m5_calendarAddNul(minutes)+curr.substring(16,19);
	m5_calendarShow(obj);
}

function m5_calendarAddNul(str)
{
	if((""+str).length == 1)return "0"+str;
		else return str;	
}

function m5_calendarPreviousMonth(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	d.setMonth(d.getMonth()-1);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarPreviousYear(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	d.setFullYear(d.getFullYear()-1);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarNextYear(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	d.setFullYear(d.getFullYear()+1);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarChangeMonth(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	
	d.setMonth(window.document.getElementById(obj+'[sel_month]').selectedIndex);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarNextMonth(obj)
{
	d = new Date(m5_calendarGetTempDate(obj));
	d.setMonth(d.getMonth()+1);
	m5_calendarSetTempFullDate(d.toString(), obj);
	m5_calendarShow(obj);		
}

function m5_calendarClear(obj)
{
	var row = 1;
	for(j=1;j<7;j++)
	{
		for(i=0;i<7;i++)
		{
			el = window.document.getElementById(obj+'[cell]['+j+']['+i+']');
			el.innerHTML = '';
			el.style.backgroundColor = '#FFFFFF';
			el.style.fontWeight = 'normal';
		}	
	}
}

function m5_calendarShow(obj)
{
	row = 1;
	temp_date = new Date(m5_calendarGetTempDate(obj));
	cur_date = new Date(m5_calendarGetTempDate(obj));
	month = temp_date.getMonth();
	temp_date.setDate(1);
	m5_calendarClear(obj);
	
	sel_hours = window.document.getElementById(obj+'[hours]');
	if(sel_hours.length == 0)
	{
		for(i=0;i<24;i++)sel_hours.options[i] = new Option(m5_calendarAddNul(i),i);	
	}
	sel_hours.options[temp_date.getHours()].selected = true;
	sel_minutes = window.document.getElementById(obj+'[minutes]');
	if(sel_minutes.length == 0)
	{
		for(i=0;i<60;i++)sel_minutes.options[i] = new Option(m5_calendarAddNul(i),i);	
	}
	sel_minutes.options[temp_date.getMinutes()].selected = true;
	sel_month = window.document.getElementById(obj+'[sel_month]');
	sel_month.options[temp_date.getMonth()].selected = true;
	
	view_year = window.document.getElementById(obj+'[view_year]');
	view_year.innerHTML = temp_date.getFullYear();
	var d = temp_date.getDate();
	for(i=1;i<32;i++)
	{
		temp_date.setDate(i);
		style = "";
		el = window.document.getElementById(obj+'[cell]['+row+']['+temp_date.getDay()+']');
		if(m5_calendarCheckRestDay(temp_date.toString())) style = ' calendar_rest';
		if(cur_date.toDateString() == temp_date.toDateString())el.style.backgroundColor = '#ddd';
		if(temp_date.getMonth()==month) el.innerHTML = '<a class="calendar'+style+'" href="javascript: m5_calendarSetTempDate('+temp_date.getFullYear()+', '+(temp_date.getMonth()+1)+', '+temp_date.getDate()+', \''+obj+'\')">'+i+'</a>';
		if(temp_date.getDay() == 0)row++;
	}
	curr_date = new Date(m5_calendarGetCurrentDate(obj));
	window.document.getElementById(obj+'[current]').value = temp_date.getFullYear()+'.'+m5_calendarAddNul((cur_date.getMonth()+1))+'.'+m5_calendarAddNul(cur_date.getDate());
}

function m5_calendarCheckRestDay(date)
{
	temp_date = new Date(date);
	if((temp_date.getDay()==0) | (temp_date.getDay()==6))return true;
		else return false; 		
}

function m5_calendarSetCurrentDate(obj)
{
	window.document.getElementById(obj).value = window.document.getElementById(obj+'[temp]').value;
	curr_date = new Date(m5_calendarGetTempDate(obj));
	//window.document.getElementById(obj+'[current]').value = curr_date.toLocaleString();	
	m5_calendarShow(obj);
	m5_trigger(obj+'[calendar_table]');
}

function m5_calendarCancelTempDate(obj)
{
	window.document.getElementById(obj+'[temp]').value = window.document.getElementById(obj).value;
	curr_date = new Date(m5_calendarGetCurrentDate(obj));
	window.document.getElementById(obj+'[current]').value = curr_date.toLocaleString();	
	m5_calendarShow(obj);
	m5_trigger(obj+'[calendar_table]');
}

function m5_trigger(obj)
{
	div = window.document.getElementById(obj);
	if(div.style.display == 'none') div.style.display = 'block';
		else div.style.display = 'none';
}

function m5_printCalendarDT(obj, val, img_dir)
{
	str = '<div id="calendar">'+
	'<table cellpadding="0" cellspacing="0" width="1%">'+
	'<tr><td><a href="javascript: m5_trigger(\''+obj+'[calendar_table]\');"><img src="'+img_dir+'cal_icon.gif" align="absmiddle" border="0" alt="Показать календарь"></a></td><td nowrap><input type="text" id="'+obj+'[current]" value="'+val+'" disabled style="width: 70px;border:none;"></td>'+
	'</tr><tr>'+
	'<td></td>'+
	'<td>'+
	'<div id="'+obj+'[calendar_table]" style="display: none; position: absolute;filter: Shadow(Color=#CCCCCC,  Direction=90, Strength=4); width: 200px; height: 400px;">'+
	'<table width="120" bgcolor="#FFFFFF"  border="0" cellspacing="0" cellpadding="0" style="border: 1px solid #777777;">'+
	'<tr bgcolor="#777777"><td colspan="6" style="padding-left:5px;" height="30"><b style="color:#fff">Дата и время</b></td><td align="right" valign="top"><b><acronym title="Закрыть"><a href="javascript: m5_trigger(\''+obj+'[calendar_table]\');" style="color:#fff">X</a><acronym></b></td></tr>'+
	'<tr><td colspan="7" align="center" class="year">'+
	'<div style="text-align:center" class="year"><a href="javascript: m5_calendarPreviousYear(\''+obj+'\')">-</a>&nbsp;<span id="'+obj+'[view_year]"></span>&nbsp;<a href="javascript: m5_calendarNextYear(\''+obj+'\')">+</a></div>'+
	'</td></tr> '+
	'<tr><td colspan="7" align="center"  height="30">'+
	'<div style="text-align:center" class="year"><a href="javascript: m5_calendarPreviousMonth(\''+obj+'\')">-</a>'+
	'<select id="'+obj+'[sel_month]" style="width:100px" onchange="m5_calendarChangeMonth(\''+obj+'\')">'+
	'<option value="0">Январь</option>'+
	'<option value="1">Февраль</option>'+
	'<option value="2">Март</option>'+
	'<option value="3">Апрель</option>'+
	'<option value="4">Май</option>'+
	'<option value="5">Июнь</option>'+
	'<option value="6">Июль</option>'+
	'<option value="7">Август</option>'+
	'<option value="8">Сентябрь</option>'+
	'<option value="9">Октябрь</option>'+
	'<option value="10">Ноябрь</option>'+
	'<option value="11">Декабрь</option>'+
	'</select>'+
	'<a href="javascript: m5_calendarNextMonth(\''+obj+'\')">+</a></div>'+
	'</td></tr>  '+
	'<tr bgcolor="#CCCCCC" height="25" class="ctr">'+
	'    <td width="14%" align="center"><strong>П</strong></td>'+
	'    <td width="14%"><strong>В</strong></td>'+
	'    <td width="14%"><strong>С</strong></td>'+
	'    <td width="14%"><strong>Ч</strong></td>'+
	'    <td width="14%"><strong>П</strong></td>'+
	'    <td class="weekend" width="14%"><strong>С</strong></td>'+
	'    <td class="weekend" width="14%"><strong>В</strong></td>'+
	'  </tr>'+
	'  <tr class="bl">'+
	'    <td id="'+obj+'[cell][1][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][5]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][1][6]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][1][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr class="bl">'+
	'    <td id="'+obj+'[cell][2][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][5]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][2][6]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][2][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr class="bl">'+
	'    <td id="'+obj+'[cell][3][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][5]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][3][6]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][3][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr class="bl">'+
	'    <td id="'+obj+'[cell][4][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][5]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][4][6]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][4][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr class="bl">'+
	'    <td id="'+obj+'[cell][5][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][5]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][5][6]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][5][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr class="bl">'+
	'    <td id="'+obj+'[cell][6][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][5]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][6][6]">&nbsp;</td>'+
	'    <td class="weekend" id="'+obj+'[cell][6][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr><td height="1" colspan="7" style="border-top: 1px solid #ccc;"></td></tr>'+
	'  <tr id="time">'+
	'    <td colspan="7" nowrap valign="middle" class="time" height="30">Время: '+
	'    <select id="'+obj+'[hours]" onchange="m5_calendarSetTempHours(this.value, \''+obj+'\');">'+
	'    </select> : <select id="'+obj+'[minutes]" onchange="m5_calendarSetTempMinutes(this.value, \''+obj+'\');">'+
	'    </select>'+
	'    </td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td height="30" colspan="7" nowrap align="right" class="okbut" style="padding-right:20px;">'+
	'    <input type="button" value=" Ok " onclick="m5_calendarSetCurrentDate(\''+obj+'\')">&nbsp;&nbsp;<input type="button" value=" Отмена " onclick="m5_calendarCancelTempDate(\''+obj+'\')">'+
	'    </td>'+
	'  </tr>'+
	'</table>'+
	'</div>'+
	'</td></tr></table>'+
	'</div>'+
	'<input type="hidden" name="'+obj+'" id="'+obj+'" value="'+val+'">'+
	'<input type="hidden" id="'+obj+'[temp]" value="'+val+'">';
	document.getElementById('div_'+obj).innerHTML = str;
}

function m5_printCalendarD(obj, val, img_dir)
{
	str = '<div id="calendar">'+
	'<table cellpadding="0" cellspacing="0" width="1%">'+
	'<tr><td><input type="text" id="'+obj+'[current]" value="'+val+'" disabled style="width: 200px;"></td><td nowrap>&nbsp;<a href="javascript: m5_trigger(\''+obj+'[calendar_table]\');"><img src="'+img_dir+'table.gif" align="absmiddle" border="0" alt="Показать календарь"></a></td>'+
	'</tr><tr>'+
	'<td></td>'+
	'<td>'+
	'<div id="'+obj+'[calendar_table]" style="display: none; position: absolute;filter: Shadow(Color=#CCCCCC,  Direction=90, Strength=4); width: 250px; height: 400px;">'+
	'<table width="200" bgcolor="#FFFFFF"  border="" cellspacing="0" cellpadding="5" style="border: 1px solid #777777;">'+
	'<tr bgcolor="#777777"><td colspan="6"><b style="color:#fff">Дата и время</b></td><td align="right" valign="top"><b><acronym title="Закрыть"><a href="javascript: m5_trigger(\''+obj+'[calendar_table]\');" style="color:#fff">X</a><acronym></b></td></tr>'+
	'<tr><td colspan="7" align="center">'+
	'<a href="javascript: m5_calendarPreviousYear(\''+obj+'\')">-</a>&nbsp;<span id="'+obj+'[view_year]"></span>&nbsp;<a href="javascript: m5_calendarNextYear(\''+obj+'\')">+</a>'+
	'</td></tr> '+
	'<tr><td colspan="7" align="center">'+
	'<a href="javascript: m5_calendarPreviousMonth(\''+obj+'\')">-</a>'+
	'<select id="'+obj+'[sel_month]" onchange="m5_calendarChangeMonth(\''+obj+'\')">'+
	'<option value="0">Январь</option>'+
	'<option value="1">Февраль</option>'+
	'<option value="2">Март</option>'+
	'<option value="3">Апрель</option>'+
	'<option value="4">Май</option>'+
	'<option value="5">Июнь</option>'+
	'<option value="6">Июль</option>'+
	'<option value="7">Август</option>'+
	'<option value="8">Сентябрь</option>'+
	'<option value="9">Октябрь</option>'+
	'<option value="10">Ноябрь</option>'+
	'<option value="11">Декабрь</option>'+
	'</select>'+
	'<a href="javascript: m5_calendarNextMonth(\''+obj+'\')">+</a>'+
	'</td></tr>  '+
	'<tr bgcolor="#CCCCCC">'+
	'    <td width="14%"><strong>П</strong></td>'+
	'    <td width="14%"><strong>В</strong></td>'+
	'    <td width="14%"><strong>С</strong></td>'+
	'    <td width="14%"><strong>Ч</strong></td>'+
	'    <td width="14%"><strong>П</strong></td>'+
	'    <td width="14%"><strong>С</strong></td>'+
	'    <td width="14%"><strong>В</strong></td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][1][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][1][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][2][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][2][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][3][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][3][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][4][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][4][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][5][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][5][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td id="'+obj+'[cell][6][1]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][2]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][3]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][4]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][5]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][6]">&nbsp;</td>'+
	'    <td id="'+obj+'[cell][6][0]">&nbsp;</td>'+
	'  </tr>'+
	'  <tr><td height="1" colspan="7" style="border-top: 1px solid #ccc;"></td></tr>'+
	'  <tr>'+
	'    <td colspan="7" nowrap valign="middle"><div style="display: none; position: absolute;">Время: '+
	'    <select id="'+obj+'[hours]" onchange="m5_calendarSetTempHours(this.value, \''+obj+'\');">'+
	'    </select> : <select id="'+obj+'[minutes]" onchange="m5_calendarSetTempMinutes(this.value, \''+obj+'\');">'+
	'    </select></div>'+
	'    </td>'+
	'  </tr>'+
	'  <tr>'+
	'    <td height="25" colspan="7" nowrap align="center">'+
	'    <input type="button" value=" Ok " onclick="m5_calendarSetCurrentDate(\''+obj+'\')">&nbsp;&nbsp;<input type="button" value=" Отмена " onclick="m5_calendarCancelTempDate(\''+obj+'\')">'+
	'    </td>'+
	'  </tr>'+
	'</table>'+
	'</div>'+
	'</td></tr></table>'+
	'</div>'+
	'<input type="hidden" name="'+obj+'" id="'+obj+'" value="'+val+'">'+
	'<input type="hidden" id="'+obj+'[temp]" value="'+val+'">';
	document.getElementById('div_'+obj).innerHTML = str;
}
var Editors = new Array();
var Fields = new Array();

function SwitchToHTML(editor, obj)
{
	
	hideAnchors(obj.anchors)
	var ed = window.document.getElementById('editor_'+editor);
	var ht = window.document.getElementById('html_area_'+editor);
	ed.style.display = "none";
	ht.value = obj.body.innerHTML;
	var re = new RegExp("anch:///", "gi");
	ht.value = ht.value.replace(re, "");
	window.document.getElementById('html_'+editor).style.display = "block";
	window.document.getElementById('editor_btn_'+editor).disabled=false;
	window.document.getElementById('html_btn_'+editor).disabled=true;
}

function SwitchToEditor(editor, obj)
{
	ed = window.document.getElementById('editor_'+editor);
	ht = window.document.getElementById('html_area_'+editor);
	ed.style.display = "block";
	
	var re = new RegExp('href="#', "gi");
	var re2 = new RegExp('href=#', "gi");
	
	ht.value = ht.value.replace(re, 'href="anch:///#');
	ht.value = ht.value.replace(re2, 'href=anch:///#');

	obj.body.innerHTML = ht.value;
	
	showAnchors(obj.anchors)
	window.document.getElementById('html_'+editor).style.display = "none";
	window.document.getElementById('editor_btn_'+editor).disabled=true;
	window.document.getElementById('html_btn_'+editor).disabled=false;
	
}

function ChangeEditor(editor, obj)
{
	ht = window.document.getElementById('html_area_'+editor);
	obj.body.innerHTML = ht.value;
}

function Toggler(elm){
	elm.style.display = (elm.style.display == "block") ? "none" : "block";
}

function setWidth(to_obj, from_obj){
	to_obj.width = from_obj.offsetWidth;
}

function SaveRow(form)
{
    for(var i = 0; i < Editors.length; i++)
    {
         hideAnchors(eval("editor_"+Fields[i]+".anchors"));
         var s = eval("editor_"+Fields[i]+".body.innerHTML");
			var re = new RegExp("anch:///", "gi");
			s = s.replace(re, "");
         form.elements[Editors[i]].value = s;
    }
     return true;
}

function initEditor(name, f, text) {
  name = document.frames[f].document;
  
  name.designMode = "On";
  name.open();
  name.write(text);
  name.close();
  showAnchors(name.anchors);
//  alert(name.body.innerHTML)
  var re = new RegExp('href="#', "gi");
	var re2 = new RegExp('href=#', "gi");
	
	name.body.innerHTML = name.body.innerHTML.replace(re, 'href="anch:///#');
	name.body.innerHTML = name.body.innerHTML.replace(re2, 'href=anch:///#');
  
  name.onclick = getTagsPathClick;
  //name.onkeydown = getTagsPathClick;
  var newStyle = name.createStyleSheet("/admin/editor.css",0) 
  //name.styleSheets[0].addImport("url(/admin/editor.css)");
  return name;
}

function edChange(){
	alert(1)
}

function showAnchors(anchors){
	for(var i = 0; i < anchors.length; i++){
		anchors[i].unselectable = "on";
		anchors[i].style.width = "16px"
		anchors[i].style.height = "16px"
		anchors[i].style.background = "url(/admin/editor/i/anchor2.gif) no-repeat"
  }
}

function hideAnchors(anchors){
	for(var i = 0; i < anchors.length; i++)
		anchors[i].outerHTML = '<a name="'+anchors[i].name+'"></a>'
}


function setFontSize(name, fsize) {
  var range = name.selection.createRange();
  execIt(range,"FontSize",true,fsize);
  name.focus();
}

function ShowHTML(name)
{
  alert(name.body.innerHTML);
}

function setBold(name) {
  var range = name.selection.createRange();
  execIt(range, "Bold");
  name.focus();
}

function setItalic(name) {
  var range = name.selection.createRange();
  execIt(range, "Italic");
  name.focus();
}

function setUnderline(name) {
  var range = name.selection.createRange();
  execIt(range, "Underline");
  name.focus();
}

function setJustify(name) {
  var range = name.selection.createRange();
  execIt(range, "JustifyFull");
  name.focus();
}

function setCenter(name) {
  var range = name.selection.createRange();
  execIt(range, "JustifyCenter");
  name.focus();
}

function setLeft(name) {
  var range = name.selection.createRange();
  execIt(range, "JustifyLeft");
  name.focus();
}

function setRight(name) {
  var range = name.selection.createRange();
  execIt(range, "JustifyRight");
  name.focus();
}

function setOl(name) {
  var range = name.selection.createRange();
  execIt(range, "InsertOrderedList");
  name.focus();
}

function setIl(name) {
  var range = name.selection.createRange();
  execIt(range, "InsertUnorderedList");
  name.focus();
}

function execIt(range, command, interf, value) {
  if (range.text.length > 0) {
     r = range.execCommand(command,interf,value);
   range.select();
  } else {
   range.pasteHTML("&nbsp;");
     range.moveStart("character", -1)
   range.select();
     r = range.execCommand(command,interf,value);
   range.text = "";
  }
  return r;
}

function setFontName(name, fname) {
  var range = name.selection.createRange();
  execIt(range,"FontName",true,fname);
  name.focus();
}

function exec(name, what)
{
    name.body.focus();
    name.execCommand(what);
    name.body.focus();
}

function ClearTags(name) {
	text = name.body.innerHTML;
  	text = RemoveUselessTags(text);
  	name.body.innerHTML = text;
  	alert('Лишние тэги удалены');
	name.focus();
}

function doFormat(what, editorwin, name)
{
    name.body.focus();
    var txt = name.selection.createRange();
    if (arguments[1]) txt.execCommand(what, false, arguments[1]);
    else txt.execCommand(what);
}

function insertTbl(tmp)
{
    var a, b, str;
    
    var rows = 0;
	var cols = 0;
	var cs = '';
	var cp = '';
	var width = '';
	var height = '';
	var align = '';
	var color = '';
	var brd = '';
	var clas = '';
   
    if(tmp.rows != "")rows = tmp.rows/1;
	if(tmp.cols != "")cols = tmp.cols/1;
	if(tmp.cellSpacing/1 != "")cs = ' cellspacing='+tmp.cellSpacing/1;
	if(tmp.cellPadding != "")cp = ' cellpadding='+tmp.cellPadding/1;
	if(tmp.width != "")width = ' width='+tmp.width;
	if(tmp.height != "")height = ' height='+tmp.height;
	if(tmp.align != "")align = ' align="'+tmp.align+'"';
	if(tmp.bgColor != "")color = ' bgcolor="'+tmp.bgColor+'"';
	if(tmp.border != "")brd = ' border='+tmp.border/1;
	if(tmp.className != "")clas = ' class="'+tmp.className+'"';
    
    str = "<table "+width+height+align+cp+cs+brd+color+clas+">\n";
    for (a=0;a<rows;a++){
        str = str + "<tr>\n";
        for(b=0;b<cols;b++){
            str = str + "<td></td>\n";
        }
        str = str + "</tr>\n";
    }
    str = str + "</table>";
    
    return str;
}

function insertElement(elm, name)
{
    name.body.focus();
    if(name.selection.type != 'Control'){
	    var txt = name.selection.createRange();
	    txt.pasteHTML(elm);
    }else{
    	alert('Немогу заменить объект');
    }
}

function ButMouseMove(but)
{
    but.style.border = '#316AC5 solid 1px';
}

function ButMouseOut(but)
{
    but.style.border = '#ECE9D8 solid 1px';
}

function RemoveUselessTags (str)
{
 var repl_p1 = /<P [^>]*>/ig;
 var repl_p2 = '<P>';
 str = str.replace (repl_p1, repl_p2);

 str = str.replace (/'/g, "&#39;");
 str = str.replace (/"/g, "&quot;");


 var repl_h1 = /<H [^>]*>/ig;
 var repl_h2 = '<\/H>';
 str = str.replace (repl_h1, '');
 str = str.replace (repl_h2, '');

 var repl_z1 = /<B [^>]*>/ig;
 str = str.replace (repl_z1, '<B>');

 var repl_i1 = /<I [^>]*>/ig;
 str = str.replace (repl_i1, '<I>');

 var repl_d1 = /<DIV[^>]*>/ig;
 var repl_d2 = '<\/DIV>';
 str = str.replace (repl_d1, '');
 str = str.replace (repl_d2, '');

 var repl_s1a = /<SPAN[^>]*>/ig;
 var repl_s1b = /<SPAN>/ig;
 var repl_s1c = /<\/SPAN>/ig;
 str = str.replace (repl_s1a, '');
 str = str.replace (repl_s1b, '');
 str = str.replace (repl_s1c, '');

 var repl_xm = /<[\/\w?]+:[^>]*>/ig;
 str = str.replace (repl_xm, '');

 //var repl_em = /<P>[^\w]+<\/P>/ig;
 //str = str.replace (repl_em, '');

 //var repl_sp = /<P>&nbsp;<\/P>/ig;
 //str = str.replace (repl_sp, '');

 var repl_b1 = /<STRONG>/ig;
 var repl_b2 = '<B>';
 str = str.replace (repl_b1, repl_b2);

 var repl_b1 = /<\/STRONG>/ig;
 var repl_b2 = '</B>';
 str = str.replace (repl_b1, repl_b2);

 var repl_nb = /&nbsp;&nbsp;/ig;
 str = str.replace (repl_nb, '&nbsp;');

 var repl_sp = /<B><\/B>/ig;
 str = str.replace (repl_sp, '');
 var repl_sp = /<B><\/B>/ig;
 str = str.replace (repl_sp, '');

 return str;
}