function editA(name, what){
    name.body.focus();
    var obj = searchTag("A",name);
    if(obj)	modalWin("/admin/editor/a_props_editor.html", obj, 360, 180);
    	else {
    		name.body.focus();
			var range = name.selection.createRange();
			
    		w = modalWin("/admin/editor/a_insert_editor.html", range.text, 360, 180);
    		if(w)range.pasteHTML(w);
    	}
    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 img_insert(url, name){
	var w = modalWin("/admin/editor/img_upload.html", url, 750, 350);
	if(w){name.body.focus();insertElement(w,name);}
}

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

function InsertFileLink(path, name, size, type, obj){
	
	var r = obj.selection.createRange();
	target = '';
	if(type == 'blank')target=' target="_blank"';
	if(r.text == "")
	{
		str = '<a href="'+path+'"'+target+'>Ссылка на файл '+name+' (размер '+size+')</a>';
		insertElement(str, obj);
	}else
		r.pasteHTML('<a href="'+path+'"'+target+'>'+r.text+'</a>');	
}

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, 270, 265);
    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, 270, 265);
    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 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 mergeRow(name, what){
//	alert(1);
    name.body.focus();
    var obj = searchTag("TD",name);
    obj.rowSpan = obj.rowSpan+1;
    alert()
//    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();
    var obj = searchTag("TD",name);
    if(searchTag("TD",name)){
    	var t = obj.parentNode.parentNode;
    	var tdInd = obj.cellIndex;
    	for(var i = 0; i < t.rows.length;i++){
    		var newCell = t.rows[i].deleteCell(tdInd);
    	}
    }
    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)
	{
//		alert(sel_minutes.length);
		for(i=0;i<6;i++)sel_minutes.options[i] = new Option(m5_calendarAddNul(i*10),i*10);	
	}
	
	
//	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();
	
	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 = '<span class="calendar'+style+' href" onClick="m5_calendarSetTempDate('+temp_date.getFullYear()+', '+(temp_date.getMonth()+1)+', '+temp_date.getDate()+', \''+obj+'\')">'+i+'</span>';
		if(temp_date.getDay() == 0)row++;
	}
	curr_date = new Date(m5_calendarGetCurrentDate(obj));
	window.document.getElementById(obj+'[current]').value = curr_date.toLocaleString();	
}

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)
{
	str = window.document.getElementById(obj+'[temp]').value;

//	alert(str);
//	alert(str.substr(5,2));
	
//	if()
	window.document.getElementById(obj).value = window.document.getElementById(obj+'[temp]').value;
	curr_date = new Date(m5_calendarGetTempDate(obj));
	var stringInt="25";
//   alert( parseInt(stringInt) );
//	alert( parseInt(curr_date.getFullYear()) );
//	alert( parseInt(str.substr(0,4)) );
	
	if( parseInt(curr_date.getFullYear()) > parseInt(str.substr(0,4)) ){
		alert("Дата не может быть из прошедшего диапазона времени. Уточните Год.");
	}else if(curr_date.getMonth() > Number(str.substr(5,2)) ){
		alert("Дата не может быть из прошедшего диапазона времени. Уточните Месяц.");
	}else if(curr_date.getDate()>Number(str.substr(8,2))){
		alert("Дата не может быть из прошедшего диапазона времени. Уточните День.");
	}
	
	//alert(curr_date.getDate());
	
	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><input type="text" id="'+obj+'[current]" value="'+val+'" disabled style="width: 200px;"></td><td nowrap>&nbsp;<span class=href onClick="m5_trigger(\''+obj+'[calendar_table]\');"><img src="'+img_dir+'table2.gif" align="absmiddle" border="0" alt="Показать календарь"></span></td>'+
	'</tr><tr>'+
	'<td></td>'+
	'<td>'+
	'<div class="calendar" id="'+obj+'[calendar_table]" style="display: none; position: absolute;filter: Shadow(Color=#CCCCCC,  Direction=90, Strength=4);">'+
	'<table class=showBorder width="200" bgcolor="#FFFFFF"  border="0" cellspacing="0" cellpadding="5" >'+
	'<tr bgcolor="#777777"><th colspan="7"><span style="float:right;color:#fff" class=href onClick="m5_trigger(\''+obj+'[calendar_table]\');"><img src="/images/close.gif" alt="close" title="close" /></span><b>Date and time</b></th></tr>'+
	'<tr><td colspan="7" align="center">'+
	'<span class="pm href" onClick="m5_calendarPreviousYear(\''+obj+'\')" style="font-size:150%">-</span>&nbsp;<span id="'+obj+'[view_year]"></span>&nbsp;<span class="pm href" onClick="m5_calendarNextYear(\''+obj+'\')" style="font-size:150%">+</span>'+
	'</td></tr> '+
	'<tr><td colspan="7" align="center">'+
	'<span class="pm href" onClick="m5_calendarPreviousMonth(\''+obj+'\')" style="font-size:150%">-</span>'+
	'<select id="'+obj+'[sel_month]" onchange="m5_calendarChangeMonth(\''+obj+'\')">'+
	'<option value="0"> January</option> ' +
	 ' <option value="1"> February </option>' +
	 ' <option value="2"> March </option>' +
	 ' <option value="3"> April </option>' +
	 ' <option value="4"> May </option>' +
	 ' <option value="5"> June </option>' +
	 ' <option value="6"> July </option>' +
	 ' <option value="7"> August </option>' +
	 ' <option value="8"> September </option>' +
	 ' <option value="9"> October </option>' +
	 ' <option value="10"> November </option>' +
	 ' <option value="11"> December </option>' +
	'</select>'+
	'<span class="pm href" onClick="m5_calendarNextMonth(\''+obj+'\')" style="font-size:150%">+</span>'+
	'</td></tr>  '+
	'<tr bgcolor="#CCCCCC">'+
	'    <th width="14%"><strong>Mоn</strong></th>'+
	'    <th width="14%"><strong>Tue</strong></th>'+
	'    <th width="14%"><strong>Wed</strong></th>'+
	'    <th width="14%"><strong>Thu</strong></th>'+
	'    <th width="14%"><strong>Fri</strong></th>'+
	'    <th width="14%"><strong>Sat</strong></th>'+
	'    <th width="14%"><strong>Sun</strong></th>'+
	'  </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">Time: '+
	'    <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="25" colspan="7" nowrap align="center">'+
	'    <input type="button" value=" Ok " onclick="m5_calendarSetCurrentDate(\''+obj+'\')">&nbsp;&nbsp;<input type="button" value=" Cancel " 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;<span class=href onClick="m5_trigger(\''+obj+'[calendar_table]\');"><img src="'+img_dir+'table2.gif" align="absmiddle" border="0" alt="Показать календарь"></span></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: 200px;">'+
	'<table width="200" bgcolor="#FFFFFF"  border="0" cellspacing="0" cellpadding="5" style="border: 1px solid #777777;">'+
	'<tr bgcolor="#777777"><td colspan="6"><b style="color:#fff">Дата и Time</b></td><td align="right" valign="top"><b><acronym title="Закрыть"><span class=href onClick="m5_trigger(\''+obj+'[calendar_table]\');" style="color:#fff">X</span><acronym></b></td></tr>'+
	'<tr><td colspan="7" align="center">'+
	'<span class=href onClick="m5_calendarPreviousYear(\''+obj+'\')">-</span>&nbsp;<span id="'+obj+'[view_year]"></span>&nbsp;<span class=href onClick="m5_calendarNextYear(\''+obj+'\')">+</span>'+
	'</td></tr> '+
	'<tr><td colspan="7" align="center">'+
	'<span class=href onClick="m5_calendarPreviousMonth(\''+obj+'\')">-</span>'+
	'<select id="'+obj+'[sel_month]" onchange="m5_calendarChangeMonth(\''+obj+'\')">'+
	 ' <option value = "0"> January </option> ' +
	 ' <option value = "1"> February </option> ' +
	 ' <option value = "2"> March </option> ' +
	 ' <option value = "3"> April </option> ' +
	 ' <option value = "4"> May </option> ' +
	 ' <option value = "5"> June </option> ' +
	 ' <option value = "6"> July </option> ' +
	 ' <option value = "7"> August </option> ' +
	 ' <option value = "8"> September </option> ' +
	 ' <option value = "9"> October </option> ' +
	 ' <option value = "10"> November </option> ' +
	 ' <option value = "11"> December </option> ' +
	'</select>'+
	'<span class=href onClick="m5_calendarNextMonth(\''+obj+'\')">+</span>'+
	'</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;">Time: '+
	'    <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=" Cancel " 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)
{
	ed = window.document.getElementById('editor_'+editor);
	ht = window.document.getElementById('html_area_'+editor);
	ed.style.display = "none";
	ht.value = obj.body.innerHTML;
	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";
	obj.body.innerHTML = ht.value;
	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++)
    {
         
         var s = eval("editor_"+Fields[i]+".body.innerHTML");
         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();
  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 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();
    var txt = name.selection.createRange();
    txt.pasteHTML(elm);
}

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;
}
