var scripts_is_loaded = false;

var reOrderMode = true;
function possiblyReOrder(){
	if(reOrderMode){
		return false;
	}
	return true;
}

var pseudo_ph, fake_ph;
var pseudo_ph_pos;
var mouseOnPhoto = 0;
var src_ondragstart = src_ondrag = src_ondragend = null;
var albumChangeOrderMode = false;
function phOnDragStart(ele, mx, my){
	if(!albumChangeOrderMode) return;
	
	var documentBody = document.getElementsByTagName('BODY')[0];
	var ele_div = ele.parentNode;

	// создаем копию блока фотки, но уже плавающую...
	pseudo_ph = ele_div.cloneNode(true);
	pseudo_ph.className = 'picBlockFloating';
	documentBody.appendChild(pseudo_ph);

	// создаем "заглушку" блока фотки для имитации "дырки"...
	fake_ph = document.createElement('div');
	fake_ph.className = 'picBlockFake';
	documentBody.appendChild(fake_ph);

	// определяем координаты блока фотки
	var xL = xPageX(ele_div);
	var xT = xPageY(ele_div);

	// ставим копию строго поверх оригинала
	xLeft(pseudo_ph, xL);
	xTop(pseudo_ph, xT);

	// ставим "заглушку" строго поверх оригинала
	xLeft(fake_ph, xL);
	xTop(fake_ph, xT);

	// бежим по всем видимым на листе фоткам и определяем их координаты на странице
	for(i in photo)
		if(i.match(/\d+/)){
			photo[i].left = xPageX('picBlock_'+i);
			photo[i].top = xPageY('picBlock_'+i);
		}

	// создаем слой-индикатор исходной позиции...
	pseudo_ph_pos = document.createElement('div');
	pseudo_ph_pos.className = 'picBlockFloatingPos';
	documentBody.appendChild(pseudo_ph_pos);
}
function phOnDrag(ele, mdx, mdy){
	if(!albumChangeOrderMode) return;
	var xDx, xDy, phPosX, phPosY, resPosX, resPosY;

	// перемещаем копию
	xMoveTo(pseudo_ph, xLeft(pseudo_ph) + mdx, xTop(pseudo_ph) + mdy);
	
	// определяем текущие координаты копии
	var xL = xPageX(pseudo_ph);
	var xT = xPageY(pseudo_ph);

	mouseOnPhoto = 0;
	// бежим по всем видимым на листе фоткам и определяем над какой находимся
	for(i in photo)
		if(i.match(/\d+/)){
			phPosX = photo[i].left;
			phPosY = photo[i].top;
			xDx = xL-phPosX;
			xDy = xT-phPosY;
			if((xDx<photoBlock_width && xDx>0) && (xDy<photoBlock_height && xDy>0)){
				mouseOnPhoto = i;
				resPosX = phPosX - 5;
				resPosY = phPosY;
			}
		}

	// ставим указатель исходной позиции слева от фотки над которой находимся
	if(mouseOnPhoto!=0) xMoveTo(pseudo_ph_pos, resPosX, resPosY);
}
function phOnDragEnd(ele, mx, my){
	if(!albumChangeOrderMode) return;
	var documentBody = document.getElementsByTagName('BODY')[0];
	var ele_div = ele.parentNode;

	// убиваем копию
	documentBody.removeChild(pseudo_ph);

	// убиваем "заглушку"
	documentBody.removeChild(fake_ph);

	// убиваем слой-индикатор позиции
	documentBody.removeChild(pseudo_ph_pos);

	// перемещаем блок фотки внутри DOM
	var ele_div_new = placePhotoBefore(ele_div.id.replace(/^picBlock_/, ''), mouseOnPhoto);

}

var hint_timeout = new Array();
function placePhotoBefore(id1, id2){
	if(id1==id2) return null;
	
	// находим в массиве viewed_photosID эти элементы и меняем местами...
	var str1 = ','+id1+',';
	var str2 = ','+id2+',';
	var strtmp = ',@@@,';
	var patt1 = new RegExp(str1, '');
	var patt2 = new RegExp(str2, '');
	var patttmp = new RegExp(strtmp, '');
	var new_arr = (','+viewed_photosIDs.join(',')+',').replace(patt1, ',').replace(patt2, ','+id1+','+id2+',').replace(/(^,|,$)/g, '').split(',');
	viewed_photosIDs = new_arr;

	// перемещаем объект внутри DOM
	var ph_new = moveNodeBefore(xGetElementById('picBlock_'+id1), xGetElementById('picBlock_'+id2))

	// определяем новому объекту драг-обработчики
	xEnableDrag(xGetElementById('picBlockTbl_'+id1), phOnDragStart, phOnDrag, phOnDragEnd);

	return ph_new;
}
function moveNodeBefore(obj1, obj2){
	if(!obj1 || !obj2 || (obj1==obj2)) return null;
	var obj_new = obj1.parentNode.insertBefore(obj1.cloneNode(true), obj2);
	var obj3 = obj1.parentNode.removeChild(obj1);
	return obj3;
}
function showHint(id){
	var ph_div = xGetElementById('picBlock_'+id);
	if(ph_div.className=='picBlockFloating') return false;
	
	var hint_div = xGetElementById('picBlockHint_'+id);
	if(!hint_div){
		var documentBody = document.getElementsByTagName('BODY')[0];
		var hint_div = document.createElement('div');
		documentBody.appendChild(hint_div);
	}
	hint_div.id = 'picBlockHint_'+id;
	hint_div.className = 'picBlockHint';
	hint_div.style.zIndex = 10;
	hint_div.innerHTML = '&copy;'+photo[id].authors.replace(/<[^>]+>/g, '')+'<br />'+photo[id].date;
	xHeight(hint_div, parseInt(xHeight('picBlockBot_'+id))-2);
	xLeft(hint_div, xPageX('picBlock_'+id)+1);
	xTop(hint_div, xPageY('picBlock_'+id)+parseInt(xHeight('picBlock_'+id))-parseInt(xHeight(hint_div))-1);
	xDisplay(xGetElementById('picBlockHint_'+id), 'block');
	clearTimeout(hint_timeout[id]);
}
function hideHint(id){
	var ph_div = xGetElementById('picBlock_'+id);
	if(ph_div.className=='picBlockFloating') return false;

	hint_timeout[id] = setTimeout('destroyHint('+id+')', 100);
}
function destroyHint(id){
	if(isDefined(id) && xGetElementById('picBlockHint_'+id)){
		var documentBody = document.getElementsByTagName('BODY')[0];
		documentBody.removeChild(xGetElementById('picBlockHint_'+id));
	}
}
function icon(type, form){
	var ic = new Array();
	ic['in_menu'] = {alt:unlanguage('Убрать из меню###Hide in menu'), src:''};
	ic['not_in_menu'] = {alt:unlanguage('Показать в меню###Show in menu'), src:''};
	ic['show'] = {alt:unlanguage('Спрятать###Hide'), src:''};
	ic['hide'] = {alt:unlanguage('Показать###Show'), src:''};
	ic['eye_opened'] = {alt:unlanguage('Спрятать###Hide'), src:''};
	ic['eye_closed'] = {alt:unlanguage('Показать###Show'), src:''};
	ic['up'] = {alt:unlanguage('Переместить выше###Move up'), src:''};
	ic['edit'] = {alt:unlanguage('Редактировать###Edit'), src:''};
	ic['recycle'] = {alt:unlanguage('Удалить###Delete'), src:''};
	ic['trash'] = {alt:unlanguage('Удалить###Delete'), src:''};
	ic['zoom'] = {alt:'', src:''};
	ic['create'] = {alt:unlanguage('Создать подраздел###Create sub-section'), src:''};
	ic['save_template'] = {alt:unlanguage('Создать файл###Create file'), src:''};
	ic['node-leaf'] = {alt:'', src:''};
	ic['node-expand'] = {alt:unlanguage('Свернуть###Collapse'), src:''};
	ic['node-collapse'] = {alt:unlanguage('Раскрыть###Expand'), src:''};
	
	ic['ico-zoom'] = {alt:unlanguage('Увеличить###Zoom'), src:''};
	ic['ico-edit'] = {alt:unlanguage('Редактировать###Edit'), src:''};
	ic['ico-left'] = {alt:unlanguage('Поменять местами с предыдущей###Switch with previous'), src:''};
	ic['ico-right'] = {alt:unlanguage('Поменять местами со следующей###Switch with next'), src:''};
	ic['ico-delete'] = {alt:unlanguage('Удалить###Delete'), src:''};
	ic['ico-synch'] = {alt:unlanguage('Синхронизировать описания###Synchronize properties'), src:''};
	ic['ico-to-album'] = {alt:unlanguage('Поместить в текущий альбом###Add to current album'), src:''};
	ic['ico-to-cart'] = {alt:unlanguage('Добавить в корзину###Add to cart'), src:''};
	ic['ico-from-album'] = {alt:unlanguage('Изъять из текущего альбома###Remove from current album'), src:''};
	ic['ico-from-cart'] = {alt:unlanguage('Удалить из корзины###Remove from cart'), src:''};

	var big = (form && form=='big');
	var size = ((type.match(/^node-/))?11:16);
	
	return '<img src="'+htmlrootpath+'/images/icons/'+(big?('big/'+type+'.png'):(type+'.gif'))+'" border=0 alt="'+ic[type].alt+'" title="'+ic[type].alt+'" '+(big?'hspace=0 style=\'margin:0px\'':('width='+size+' height='+size+' hspace=0'))+' />';
}
function icons(pid, in_album, in_cart, w_edit, w_delete, w_synch, w_orderctrl, from_cart){
	return '<center><table cellpadding=0 cellspacing=0 border=0 class=picIconsTbl><tr>' + 
		(0 && isDefined(w_orderctrl)?'<td id=picIcon_'+pid+'_synch class=picIcon>'+icon_w_link(pid, 'switch_left')+'<'+'/td>':'')+
		'<td id=picIcon_'+pid+'_zoom class=picIcon>'+icon_w_link(pid, 'zoom')+'<'+'/td>' +
		((from_cart==1)?'':'<td id=picIcon_'+pid+'_album class=picIcon>'+icon_w_link(pid, (in_album?'from':'to')+'_album')+'<'+'/td>') +
		'<td id=picIcon_'+pid+'_cart class=picIcon>'+icon_w_link(pid, (in_cart?'from':'to')+'_cart')+'<'+'/td>' +
		(w_edit?'<td id=picIcon_'+pid+'_edit class=picIcon>'+icon_w_link(pid, 'edit')+'<'+'/td>':'') +
		(w_delete?'<td id=picIcon_'+pid+'_delete class=picIcon>'+icon_w_link(pid, 'delete')+'<'+'/td>':'') +
		(w_synch?'<td id=picIcon_'+pid+'_synch class=picIcon>'+icon_w_link(pid, 'synch')+'<'+'/td>':'') +
		(0 && isDefined(w_orderctrl)?'<td id=picIcon_'+pid+'_synch class=picIcon>'+icon_w_link(pid, 'switch_right')+'<'+'/td>':'')+
		'<'+'/tr><'+'/table><'+'/center>';
}
function iconAction(type, id, num){
	// stopBubble(event);
	switch(type){
		case('zoom'):{
			maximize(htmlrootpath + '/index.htm?id='+id+'&maxsize=1');
			break;
		}
		case('synch'):{
			document.location = htmlrootpath + '/admin/synch/index.htm?id=' + id;
			break;
		}
		case('edit'):{
			document.location = htmlrootpath + '/system/edit_something.htm?tblname=photos&id=' + id + '&referer=' + encoded_uri;
			break;
		}
		case('delete'):{
			document.location = htmlrootpath + '/pagegen.php3?action=something&edit_action=Delete&tblname=photos&id=' + id + '&referer=' + encoded_uri;
			break;
		}
		case('switch_left'):{
			var ph = xGetElementById('picBlock_'+id);
			if(ph!=ph.parentNode.firstChild){
				ph = moveNodeBefore(ph, ph.previousSibling);
			} else {
				ph.parentNode.appendChild(ph.cloneNode(true));
				ph.parentNode.removeChild(ph);
			}
			break;
		}
		case('switch_right'):{
			var ph = xGetElementById('picBlock_'+id);
			if(ph!=ph.parentNode.lastChild){
				var ph_next = ph.nextSibling;
				if(isDefined(ph_next.nextSibling))
					ph = moveNodeBefore(ph, ph_next.nextSibling);
				else {
					ph.parentNode.appendChild(ph.cloneNode(true));
					ph.parentNode.removeChild(ph);
				}
			} else
				ph = moveNodeBefore(ph, ph.parentNode.firstChild);
			break;
		}
		case('info'):{
			var keys_str = keywords_block(id);
			var str = '' +
				'<table border=0 cellspacing=0 cellpadding=0>' +
				'<tr valign=top>' +
					'<td><img src='+htmlrootpath+photo[id].r_filename+' width='+photo[id].width+' height='+photo[id].height+' alt=\"'+photo[id].name+'\" onClick=\"hideAlert()\"></td>' +
				'</tr>' +
				'</table>';
			showAlert(str, 'butClose');
			break;
		}
		case('check'):{
			var match = ','+id+',';
			if ((','+document.photos.photosID_list.value+',').indexOf(match)==-1) {
				if(reset_all) break;
				document.photos.photosID_list.value = (document.photos.photosID_list.value+','+id).replace(/^,/,'');
				document.getElementById('picPreviewCell'+id).className='picSelected';
				document.getElementById('picCheck_'+id).checked=true;
			}
			else {
				if(set_all) break;
				eval('document.photos.photosID_list.value = (\',\'+document.photos.photosID_list.value+\',\').replace(/'+match+'/, \',\').replace(/^,/, \'\').replace(/,$/, \'\');');
				document.getElementById('picPreviewCell'+id).className='picNonSelected';
				document.getElementById('picCheck_'+id).checked=false;
			}
			if(document.total) reCalcTotalPrice();
			break;
		}
		case('to_album'):{
			var str = '' + id;
			str = (str.replace(/[^,]/g, '').length+1);
			var act = 'fillContainerBy(\''+htmlrootpath+'/profile/albums/index.htm?body=no&posted=!&action=add_photos&from='+document.photos.from.value+'&photosID_list='+id+'&viewed_photosIDs='+document.photos.viewed_photosIDs.value+'&curr_albumsID='+document.albums_form.curr_albumsID.value+'\');confirmWindow2.die();';
			
			var myreg = /\/authors\/index.htm\?id=(\d+)&mode=photos/i;
			var match = myreg.exec(document.location.href);
			var albumsID;
			if(match && match.length>0)
				albumsID = parseInt(match[1]);
			
			if(num=='woRequest'){
				eval(act);
			} else {
				var links = '<ul>' +
					'<li><a href=' + document.location.href.replace(/&/g, '&amp;') + ' onClick=\'showAlert(\"'+unlanguage('Выберите из списка:###Select from list:')+'<br /><br />\"+albs_carts_list(\"albums\", ' + id + '),\"butClose\");return false\'><b>'+unlanguage('Выбрать другой альбом###Select another album')+'&hellip;<'+'/b><'+'/a><'+'/li>' +
					'<li><a href=' + document.location.href.replace(/&/g, '&amp;') + ' onClick=\'showPrompt(\"'+unlanguage('Введите имя альбома:###Type new name:')+'\", \"add_album(xGetElementById(\\\"win_prompt_text\\\").value, ' + ((albumsID>0)?albumsID:'\\\"\\\"') + ')\", \"\"); return false\'><b>'+unlanguage('Создать новый альбом###Create new album')+'<'+'/b><'+'/a><'+'/li>' +
					'<'+'/ul>';
	
				confirmWindow2 = new floatWindow();
				confirmWindow2.width = 300;
				confirmWindow2.height = 200;
				confirmWindow2.butType = 'butNone';
				confirmWindow2.text = 
					unlanguage('Вы добавляете фотографии ('+str+') в альбом ###You add photos ('+str+') into album ')+
					document.getElementById('curr_album').innerHTML+'<br /><br />' + links;
				confirmWindow2.zIndex = 600;
				confirmWindow2.buttons = Array({title:'OK', action:act},{title:unlanguage('Отмена###Cancel'), action:'confirmWindow2.die();'});
				confirmWindow2.create();
				xResizeTo(confirmWindow2.titlebar, 20, 20);
				xMoveTo(confirmWindow2.titlebar, 180, 0);
				xEnableDrag(confirmWindow2.titlebar, myOnDragStart, myOnDrag, myOnDragEnd); 
				confirmWindow2.show();

			}
			break;
		}
		case('to_cart'):{
			fillContainerBy(htmlrootpath+'/profile/carts/index.htm?body=no&posted=!&action=add_photos&from='+document.photos.from.value+'&photosID_list='+id+'&viewed_photosIDs='+document.photos.viewed_photosIDs.value+'&curr_cartsID=' + curr_cartsID);
			break;
		}
		case('to_cart_w_calc'):{
			fillContainerBy(htmlrootpath+'/profile/carts/index.htm?body=no&posted=!&action=add_and_save_prices&from='+document.photos.from.value+'&photosID_list='+id+'&viewed_photosIDs='+document.photos.viewed_photosIDs.value+'&price='+usage_price+'&usage_pricesID='+usage_pricesID+'&curr_cartsID=' + curr_cartsID);
			break;
		}
		case('from_album'):{
			fillContainerBy(htmlrootpath+'/profile/albums/index.htm?body=no&posted=!&hide_photos=' + (document.location.href.match(/albums\/index.htm\?id=/)?1:0) + '&action=remove_photos&from='+document.photos.from.value+'&photosID_list='+id+'&viewed_photosIDs='+document.photos.viewed_photosIDs.value+'&curr_albumsID='+document.albums_form.curr_albumsID.value);
			break;
		}
		case('from_cart'):{
			fillContainerBy(htmlrootpath+'/profile/carts/index.htm?body=no&posted=!&from_cart=' + (document.location.href.match(/cart\/index.htm/)?1:0) + '&action=remove_photos&from='+document.photos.from.value+'&photosID_list='+id+'&viewed_photosIDs='+document.photos.viewed_photosIDs.value+'&curr_cartsID=' + curr_cartsID);
			break;
		}
		case('syns_delete_synonim'):{
			if(document.syns.synsIDs.value=='')
				showAlert('Не выбраны синонимы.');
			else {
				var act = 'document.syns.syns_action.value=\"'+type+'\";document.syns.submit();';
				showConfirm2('Вы действительно хотите удалить выбранные синонимы из базы данных?', act, '');
			}
			break;
		}
		case('syns_delete_syn_link'):{
			if(document.syns.synsIDs.value=='')
				showAlert('Не выбраны синонимы.');
			else {
				var act = 'document.syns.syns_action.value=\"'+type+'\";document.syns.submit();';
				showConfirm2('Вы действительно хотите удалить выбранные синонимы ключевого слова, оставив их в базе данных?', act, '');
			}
			break;
		}
		case('syns_delete_meaning'):{
			if(document.syns.meaningsID.value=='')
				showAlert('Не выбрано толкование.');
			else {
				var act = 'document.syns.syns_action.value=\"'+type+'\";document.syns.submit();';
				showConfirm2('Вы действительно хотите удалить выбранное толкование данного ключевого слова из базы данных?', act, '');
			}
			break;
		}
		case('syns_associate_keyword'):{
			if(document.syns.meaningsID.value=='')
				showAlert('Не выбрано толкование.');
			else
				if(document.syns.synsIDs.value=='')
					showAlert('Не выбраны синонимы.');
				else {
					var act = 'document.syns.syns_action.value=\"'+type+'\";document.syns.submit();';
					showConfirm2('Вы действительно хотите ассоциировать выбранные снинонимы с выбранным толкованием ключевого слова?', act, '');
				}
			break;
		}
		case('syns_set_baseform'):{
			if(document.syns.baseform.value=='')
				showAlert('Не выбрана основная форма.');
			else {
				var act = 'document.syns.syns_action.value=\"'+type+'\";document.syns.submit();';
				showConfirm2('Вы действительно хотите установить выделенную основную форму для текущего ключевого слова?', act, '');
			}
			break;
		}
		case('syns_save_empty'):{
			var act = 'document.syns.syns_action.value=\"'+type+'\";document.syns.submit();';
			showConfirm2('Вы действительно закончили обработку текущего ключевого слова?', act, '');
			break;
		}
	}
	return false;
}


function change_curr_album(id, add_photos_id){
	document.getElementById('curr_album').innerHTML='<b>...</b>';
	fillContainerBy(htmlrootpath + '/profile/albums/index.htm?body=no&action=make_curr&from_form=1&curr_albumsID='+id+'&viewed_photosIDs='+((document.photos!=null)?document.photos.viewed_photosIDs.value:'')+(add_photos_id?'&add_photos_id='+add_photos_id:''));
	return false;
}

function change_curr_cart(id){
	document.getElementById('curr_cart').innerHTML='<b>...</b>';
	fillContainerBy(htmlrootpath + '/profile/carts/index.htm?body=no&action=make_curr&from_form=1&curr_cartsID='+id+'&viewed_photosIDs='+((document.photos!=null)?document.photos.viewed_photosIDs.value:''));
	return false;
}

function albs_carts_list(what, add_photos_id){
	eval('var arr = '+what+'_arr');
	var str = '<ul>';
	for(var i=0;i<arr.length;i++){
		str += '<li><a href=./ onClick="change_curr_'+what.replace(/.$/, '')+'('+arr[i].id+(add_photos_id?', '+add_photos_id:'')+');return false">'+arr[i].name+' ('+arr[i].cnt+')</a></li>';
	}
	str += '</ul>';
	return str;
}

function add_album(name, add_photos_id, authorsID, wDynamicRefresh){
	if(name!=""){
		stayAlertWin = 1;
		fillContainerBy(htmlrootpath + '/profile/albums/index.htm?body=no&posted=!&action=add&from_form=1'+(isDefined(add_photos_id)?'&add_photos_id='+add_photos_id:'')+(isDefined(authorsID)?'&authorsID='+authorsID:'')+(isDefined(wDynamicRefresh)?'&wDynamicRefresh='+wDynamicRefresh:'')+'&alb_name=' + name, '', unlanguage('Подождите, осуществляется создание альбома###Album is creating. Please wait...'));
	}
}

function add_order(name, onlycreate){
	if(name!=""){
		stayAlertWin = 1;
		fillContainerBy(htmlrootpath + '/profile/orders/index.htm?body=no&posted=!&action=add&from_form=1&onlycreate='+((onlycreate=="onlycreate")?1:0)+'&ord_name=' + name, '', unlanguage('Подождите, осуществляется создание заказа###Order is creating. Please wait...'));
	}
}

function albumCreateForm(authorsID, wDynamicRefresh){
	showPrompt(unlanguage('Введите имя альбома###Input album title'), 'add_album(xGetElementById("win_prompt_text").value'+(isDefined(authorsID)?', null, '+authorsID+(isDefined(wDynamicRefresh)?', '+wDynamicRefresh:''):'')+')', '');
}


photo = new Array();
keywords = new Array();

function keywords_block(id, allchecked, columns){
	var k_arr = photo[id].keywords;
	if(k_arr && k_arr.length>0){
		var keys_str = '';
		var real_keys = 0;
		for(var i=1;i<=k_arr.length;i++)
			if(isDefined(keywords[k_arr[i-1]]))
				real_keys++;
		$j = 1;
		for(var i=1;i<=k_arr.length;i++)
			if(isDefined(keywords[k_arr[i-1]])) {
				keys_str += "<tr><td style='padding:0px 5px 1px 0px'><input type=checkbox "+(allchecked?"checked":"")+" id=key_"+id+"_"+k_arr[i-1]+" class=commonCheck onClick=\"collect_IDs(this.form.keys_ids, '"+keywords[k_arr[i-1]]+"', this.checked)\" /></td><td width=100%><label for=key_"+id+"_"+k_arr[i-1]+">"+keywords[k_arr[i-1]]+"</label></td></tr>";
				if($j%Math.ceil(real_keys/(columns?columns:1))==0) keys_str += "</td></tr></table></td><td><table cellpadding=0 cellspacing=0 border=0><tr valign=top><td>";
				$j++;
			}
		keys_str = "<form name=keys action=./ onsubmit=\"if(document.search.in_results) document.search.in_results.checked=false; document.search.what.value=this.keys_ids.value.replace(/,/g, ' '); document.search.submit(); return false;\"><table cellpadding=0 cellspacing=0 border=0 width=100%><tr valign=top><td><table cellpadding=0 cellspacing=0 border=0>" + keys_str + "</table></td></tr></table><input type=hidden name=keys_ids value=''><br /><input type=submit value='"+unlanguage('найти###search')+"'></form>";
	}
	return keys_str;
}

function goDictionary(){
	fillContainerBy(htmlrootpath + '/system/get_' + (document.getElementById('synonims').checked?'synonims':(document.getElementById('wordmeanings').checked?'wordmeanings':'wordforms')) + '.php3?body=no&keyword='+document.getElementById('dictionarytext').value+'&where='+(document.getElementById('wordmeanings').checked?'wordmeanings':'wordforms'));
}

function showDictionary(){
	alertWindow.text = '<table style="width:100%; border:0; padding:0px; margin-bottom:20px">'+
		'<tr>'+
			'<td width="100%">'+
				'<input type="text" name="keyword" id="dictionarytext" onKeyUp="if(event.keyCode==13) goDictionary()" class=inputs style="width:100%">'+
			'</td>'+
			'<td style="padding-left:10px">'+
				'<input type="button" onClick="goDictionary()" value=" ok ">'+
			'</td>'+
		'</tr>'+
		'<tr>'+
			'<td class="small_white" colspan=2>'+
				'<small>'+
					'<input type="radio" class="commonCheck" id="wordmeanings" name="wheregroup" checked value="wordmeanings" /><label for="wordmeanings">толкования</label>  '+
					(0?'<input type="radio" class="commonCheck" id="wordforms" name="wheregroup" value="wordforms" /><label for="wordforms">&nbsp;словоформы</label>':'')+
					'<input type="radio" class="commonCheck" id="synonims" name="wheregroup" value="synonims" /><label for="synonims">&nbsp;синонимы</label>'+
				'</small>'+
			'</td>'+
		'</tr>'+
		'</table>';
	alertWindow.butType = 'butClose';
	alertWindow.show();
	return false;
}

function showReportForm(referer, who){
	alertWindow.text = 
		'<form style="width:100%;height:100%" method=post target=container name=quickreport action='+htmlrootpath+'/system/container_actions.php3>'+
			'<input type=hidden name=body value="no" />'+
			'<input type=hidden name=referer value="'+referer+'" />'+
			'<input type=hidden name=action value="errorReport" />'+
			'<table cellpadding=0 cellspacing=0 style="width:100%;height:100px;border:0;padding:0;margin:0">'+
			'<tr>'+
				'<td style="height:12px">'+unlanguage('текст###text')+'</td>'+
			'</tr>'+
			'<tr>'+
				'<td style="width:100%">'+
					'<textarea name=reporttxt id=reporttext class=inputs style="width:100%;height:'+((!isDefined(who) || who=='')?56:88)+'px"></textarea>'+
				'</td>'+
			'</tr>'+
			((!isDefined(who) || who=='')?
				'<tr>'+
					'<td style="height:12px">e-mail</td>'+
				'</tr>'+
				'<tr>'+
					'<td style="width:100%;height:20px">'+
						'<input type=text name=email class=inputs style="width:100%" />'+
					'</td>'+
				'</tr>'
			:
				''
			)+
			'</table>'+
		'</form>';
	alertWindow.butType = 'butNone';
	alertWindow.buttons = Array({title:unlanguage('Отправить###Send'), action:'if(document.quickreport.reporttxt.value==""){alert("'+unlanguage('текст не введен###text is blank')+'.");return false}'+((!isDefined(who) || who=='')?'if(document.quickreport.email.value==""){alert("'+unlanguage('Вы не указали ваш e-mail который, возможно, понадобится для уточнения дополнительных деталей или объяснения ситуации###e-mail is blank')+'.");return false}':'')+'document.quickreport.submit();alertWindow.hide();', def:true},{title:unlanguage('Закрыть###Close'), action:'alertWindow.hide();', def:false}); 
	alertWindow.create();
	alertWindow.show();
	return false;
}

function chooseDate(type, postfix){
	switch(type){
		case(1):{
			showAlert(
				'<table align=center border=0 cellspacing=5 cellpadding=0>'+
				'<tr valign=middle>'+
					'<td nowrap=\'nowrap\'>'+
						'<input type=text tabindex=\'1\' name=dd_ph_'+postfix+' id=dd_ph_'+postfix+' value=\'\' maxLength=2 style=\'width:30px\' onKeyDown=\'if(event.keyCode==13) execute_date(1); else  return (isControl(event.keyCode) || isDigit(event.keyCode))\' />.'+
						'<input type=text tabindex=\'2\' name=mm_ph_'+postfix+' id=mm_ph_'+postfix+' value=\'\' maxLength=2 style=\'width:30px\' onKeyDown=\'return (isControl(event.keyCode) || isDigit(event.keyCode))\' />.'+
						'<input type=text tabindex=\'3\' name=yy_ph_'+postfix+' id=yy_ph_'+postfix+' value=\'\' maxLength=4 style=\'width:70px\' onKeyDown=\'return (isControl(event.keyCode) || isDigit(event.keyCode))\' />'+
					'</td>'+
					'<td style=\'padding-left:5px\'>'+
						'<input type=button value=\' ok \' onClick=\'execute_date(1)\' />'+
					'</td>'+
				'</tr>'+
				'</table>'
			,
				'butNone'
			);
			break;
		}
		case(2):{
			showAlert(
				'<table align=center border=0 cellspacing=5 cellpadding=0>'+
				'<tr valign=middle>'+
					'<td nowrap=\'nowrap\'>'+
						'<input type=text tabindex=\'1\' name=yy_ph_'+postfix+' id=yy_ph_'+postfix+' value=\'\' maxLength=4 style=\'width:70px\' onKeyDown=\'return (isControl(event.keyCode) || isDigit(event.keyCode))\' />'+
					'</td>'+
					'<td style=\'padding-left:5px\'>'+
						'<input type=button value=\' ok \' onClick=\'execute_date(2)\'>'+
					'</td>'+
				'</tr>'+
				'</table>'
			,
				'butNone'
			);
			break;
		}
		case(3):{
			showAlert(
				'<table align=center border=0 cellspacing=5 cellpadding=0>'+
				'<tr valign=middle>'+
					'<td nowrap=\'nowrap\'>'+
						'<input type=text tabindex=\'1\' name=yy_ph_'+postfix+'1 id=yy_ph_'+postfix+'1 value=\'\' maxLength=4 style=\'width:70px\' onKeyDown=\'return (isControl(event.keyCode) || isDigit(event.keyCode))\' />'+
						'&nbsp;&mdash;&nbsp;'+
						'<input type=text tabindex=\'2\' name=yy_ph_'+postfix+'2 id=yy_ph_'+postfix+'2 value=\'\' maxLength=4 style=\'width:70px\' onKeyDown=\'return (isControl(event.keyCode) || isDigit(event.keyCode))\' />'+
					'</td>'+
					'<td style=\'padding-left:5px\'>'+
						'<input type=button value=\' ok \' onClick=\'execute_date(3)\' />'+
					'</td>'+
				'</tr>'+
				'</table>'
			,
				'butNone'
			);
			break;
		}
		case(4):{
			showAlert(
				'<table align=center border=0 cellspacing=5 cellpadding=0>'+
				'<tr valign=middle>'+
					'<td nowrap=\'nowrap\'>'+
						'<input type=text tabindex=\'1\' name=yy_ph_'+postfix+' id=yy_ph_'+postfix+' value=\'\' maxLength=2 style=\'width:30px\' onKeyDown=\'return (isControl(event.keyCode) || isDigit(event.keyCode))\' />'+
						'&nbsp;-е&nbsp;г.г.&nbsp;&nbsp;'+
						'<input type=text tabindex=\'2\' name=cent_ph_'+postfix+' id=cent_ph_'+postfix+' value=\'\' maxLength=2 style=\'width:30px\' onKeyDown=\'return (isControl(event.keyCode) || isDigit(event.keyCode))\' />'+
						'&nbsp;в.'+
					'</td>'+
					'<td style=\'padding-left:5px\'>'+
						'<input type=button value=\' ok \' onClick=\'execute_date(4)\' />'+
					'</td>'+
				'</tr>'+
				'</table>'
			,
				'butNone'
			);
			break;
		}
	}
}

var advSearchPanelCont = '';

var storeBlock = new Array();

function store_value(key_, value_){
	if(!isDefined(storeBlock[key_])) storeBlock[key_] = new Array();
	storeBlock[key_].push(value_);
}

function restore_value(key_){
	var kv = storeBlock[key_].pop();
	return kv;
}

function showAdvSearchPanel(){
	var left_td = xGetElementById('indexContentCell');
	var right_td = xGetElementById('additionalRightColumn');
	document.search.mode.value='advanced';
	xDisplay('advSearchPanel', 'block');
	store_value('old_colspan', left_td.colSpan);
	store_value('advSearchPanelCont', xInnerHtml(right_td));
	store_value('old_leftWid', xWidth('logoTD'));
	left_td.colSpan = 1;
	xInnerHtml(right_td, advSearchContent);
	xDisplay(right_td, 'block');
	xWidth(right_td, xWidth('simpleSearchTD'));
	xWidth('advSearchPanel', '100%');
}

function hideAdvSearchPanel(){
	var left_td = xGetElementById('indexContentCell');
	var right_td = xGetElementById('additionalRightColumn');
	document.search.mode.value='simple';
	xDisplay('advSearchPanel', 'none');
	var cnt = restore_value('advSearchPanelCont');
	var colsp = restore_value('old_colspan');
	var leftWid = restore_value('old_leftWid');
	xInnerHtml(right_td, cnt);
	if(parseInt(colsp)>1){
		xDisplay(right_td, 'none');
	}
	left_td.colSpan = colsp;
	// xWidth('logoTD', leftWid);
}

function switchAdvSearchPanel(){
	if(document.search.mode.value=='advanced')
		hideAdvSearchPanel();
	else
		showAdvSearchPanel();
}

function resetAdvSearch(){
	// document.search.reset();
	var inputs = document.getElementsByTagName('INPUT');
	var arr,arr2 =  new Array();
	for(var i=0;i<inputs.length;i++){
		ele = inputs[i].name;
		if(ele.match(/srch_chk_/)){
			arr = ele.split('_');
			if(!arr2[arr[arr.length-2]]) 
				arr2[arr[arr.length-2]] = '';
			arr2[arr[arr.length-2]] += arr[arr.length-1]+','; // создали массив значений чекбоксов
			document.getElementById(ele).checked = true; // вообще-то по Name, но там name и id специально делались...
		}
	}
	for(ele in arr2){
		eval("document.search."+ele+".value = '"+arr2[ele].replace(/,$/, '')+"'; ");
	}
}

		function days_in_month(month, year){
			if(month!=''){
				var months = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31);
				var d = months[month-1];
				if((month==2) && ((year%4)==0)) {d++;}
				return d;
			}
		}
		function generateCalendar(div_id, year, month, day, event){
			var d = new Date(year, month-1, day);
			var d1 = new Date(year, month-1, 1);
			var days = '';
			var months = new Array('январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', ' август', ' сентябрь', ' октябрь', ' ноябрь', ' декабрь');
			var wd = d1.getDay(); if(wd==0) {wd=7;}
			var letter='';
			for(var i=1; i<=7; i++){switch(i){case(1):letter='п';break;case(2):letter='в';break;case(3):letter='с';break;case(4):letter='ч';break;case(5):letter='п';break;case(6):letter='с';break;case(7):letter='в';break;}days += '<td class=calendarF'+((((i%7)==6) || ((i%7)==0))?'67':'')+'>'+letter+'</td>';}
			days += '</tr><tr>';
			for(var i=1; i<wd; i++){days += '<td class=calendarTD'+((((i%7)==6) || ((i%7)==0))?'67':'')+'>&nbsp;</td>';}
			for(var i=1; i<=days_in_month(month, year); i++){
				if(((wd+i-1)%7)==1) {days += '</tr><tr>';}
				days += '<td class=calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':'')+' onMouseOver=`this.className=&#039;calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':'')+'_hov&#039;` onMouseOut=`this.className=&#039;calendarTD'+(((((wd+i-1)%7)==6) || (((wd+i-1)%7)==0))?'67':'')+'&#039;` onClick=`'+event.replace(/@@year@@/g,year).replace(/@@month@@/g,month).replace(/@@day@@/g,i)+'`>'+i+'</a></td>';
			}
			d1 = new Date(year, month-1, days_in_month(month, year));
			var wd = d1.getDay(); if(wd==0) {wd=7;}
			for(var i=(wd+1); i<=7; i++){days += '<td class=calendarTD'+((((i%7)==6) || ((i%7)==0))?'67':'')+'>&nbsp;</td>';}
			var switch_type = 2;
			days = '<table cellpadding=0 cellspacing=0 class=calendarTable>' +
						'<tr><td colspan=7>' +
							'<table cellpadding=0 cellspacing=0 width=100% class=calendarTable>' +
							((switch_type==1)?('' +
							'<tr>' +
								'<td class=calendarArrow>'+((year==0)?'&lt;&lt;':'<a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+(year-1)+', '+month+', '+day+', &#039;'+event+'&#039;);return false`>&lt;&lt;</a>')+'</td>' +
								'<td width=100% class=calendarHeader>'+year+'</td>' +
								'<td class=calendarArrow>'+((year==9999)?'&gt;&gt;':'<a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+(year+1)+', '+month+', '+day+', &#039;'+event+'&#039;);return false`>&gt;&gt;</a>')+'</td>' +
							'</tr>' +
							'<tr>' +
								'<td class=calendarArrow>'+((month==1)?'&lt;&lt;':'<a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+year+', '+(month-1)+', '+day+', &#039;'+event+'&#039;);return false`>&lt;&lt;</a>')+'</td>' +
								'<td width=100% class=calendarHeader>'+months[month-1]+'</td>' +
								'<td class=calendarArrow>'+((month==12)?'&gt;&gt;':'<a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+year+', '+(month+1)+', '+day+', &#039;'+event+'&#039;);return false`>&gt;&gt;</a>')+'</td>' +
							'</tr>' +
							''):('' +
							'<tr>' +
								'<td class=calendarArrow><a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+((month==1)?(year-1):year)+', '+((month==1)?12:(month-1))+', '+day+', &#039;'+event+'&#039;);return false`>&lt;&lt;</a></td>' +
								'<td width=100% class=calendarHeader>'+months[month-1]+'&nbsp;'+year+'</td>' +
								'<td class=calendarArrow><a href="./" onClick=`generateCalendar(&#039;'+div_id+'&#039;, '+((month==12)?(year+1):year)+', '+((month==12)?1:(month+1))+', '+day+', &#039;'+event+'&#039;);return false`>&gt;&gt;</a></td>' +
							'</tr>' +
							'')) +
							'</table>' +
						'</td></tr>' +
						'<tr>' +
						days +
						'</tr></table>' +
						'';
			document.getElementById(div_id).innerHTML = days;
		}
		function fix_days(frm, vname, name){
			if((name.indexOf('mm_')!=-1) || (name.indexOf('yy_')!=-1)) {
				eval('var m_val = frm.mm_'+vname+'.value');
				eval('var y_val = frm.yy_'+vname+'.value');
				eval('var d = frm.dd_'+vname);
				var d_val = d.value;
				d.length = 0;
				for (var i=1;i<=days_in_month(m_val, y_val);i++) {
					d.options[i-1] = new Option(((i<10)?'0':'')+i,((i<10)?'0':'')+i);
				}
				d.options[d_val-1].selected = true;
			}
		}
		function fix_date(frm, vname, name){
			fix_days(frm, vname, name);
			eval('frm.'+vname+'.value = frm.yy_'+vname+'.value+"-"+frm.mm_'+vname+'.value+"-"+frm.dd_'+vname+'.value');
		}
		function fix_datetime(frm, vname, name){
			fix_days(frm, vname, name);
			eval('frm.'+vname+'.value = frm.yy_'+vname+'.value+"-"+frm.mm_'+vname+'.value+"-"+frm.dd_'+vname+'.value+" "+frm.h_'+vname+'.value+":"+frm.m_'+vname+'.value+":"+frm.s_'+vname+'.value');
		}
		function set_curr_datetime(frm, vname){
			var d = new Date();
			eval('var y_frm = frm.yy_'+vname);
			for(var i=0; i<y_frm.length; i++)
				y_frm.options[i].selected = (y_frm.options[i].value==d.getFullYear());
			eval('frm.mm_'+vname+'.options['+d.getMonth()+'].selected = true');
			eval('frm.dd_'+vname+'.options['+(d.getDate()-1)+'].selected = true');
			eval('frm.h_'+vname+'.options['+d.getHours()+'].selected = true');
			eval('frm.m_'+vname+'.options['+d.getMinutes()+'].selected = true');
			eval('frm.s_'+vname+'.options['+d.getSeconds()+'].selected = true');
			eval('frm.'+vname+'.value = frm.yy_'+vname+'.value+"-"+frm.mm_'+vname+'.value+"-"+frm.dd_'+vname+'.value+" "+frm.h_'+vname+'.value+":"+frm.m_'+vname+'.value+":"+frm.s_'+vname+'.value');
		}

		function checkProdsListRow(frm, prefix, id, from, val){
			eval('var chk = frm.'+prefix+'_chk_'+id+';');
			eval('var chk_all = frm.'+prefix+'_chk_all;');
			eval('var tr = document.getElementById("'+prefix+'_tr_'+id+'");');
			if(isMSIE && window.event) stopBubble(event);
			var direct = ((from=='tr')?(val?val:!chk.checked):chk.checked);
			collect_IDs(frm.ids_list, id, direct);
			if(from=='tr')
				chk.checked = direct;
			tr.style.backgroundColor = (chk.checked?'#E8F5FF':'transparent');
			frm.sbmt.disabled = (frm.ids_list.value=='');
			if(!chk.checked) chk_all.checked = false;
		}




/* =============================
    ДОПОЛНИТЕЛЬНЫЕ СТИЛИ
============================= */

document.write("<style type=\"text/css\">"+
	(isMSIE?
		"#content {height: expression(document.body.offsetHeight);} "
	:"")+
	".main_menu_stripe {background-image: url("+htmlrootpath+"/images/main_menu_bg.gif);}"+
	".admin_menu, .admin_menu_act {background-image:url("+htmlrootpath+"/images/list-bullet-close.gif);background-repeat:no-repeat;background-position:+4px +4px;} "+
	".tree_node_act, .tree_node_curr {background-color:#F8F8F8;}"+
	"</style>");

scripts_is_loaded = true;