// Игнорирует нажатие всех клавиш, кроме Ctrl+R и Tab (для больших внешних полей)
function ignoreKey() {
	// Ctrl + R
	if (window.event.ctrlKey && event.keyCode==82) {
		return true;
	}
	// Tab
	if (event.keyCode == 9) {
		return true;
	}
	return false;
}
function ignoreEnter(event) {
	var key = event.keyCode || event.charCode;
	if (key == 13 && navigator.appName == 'Microsoft Internet Explorer') {
		return false;
	} else if (key == 13) {
		event.cancelBubble = true;
		event.preventDefault();
		event.stopPropagation();
		event.returnValue = false;
		return false;
	} else {
		return true;
	}
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function EditorWindow(myurl, myname) {
	var w = 0;
	var h = 0;
	var screen_width = screen.width;
	var screen_height =  screen.height;
	
	if (screen_width >= 1280 && screen_height >= 1024) {
		w = 1054;
		h = 768;
	} else if (screen_width >= 1024 && screen_height >= 768) {
		w = 830;
		h = 600;
	} else {
		w = 780;
		h = 540;
	}
	return CenterWindow('/tools/editor/ie2/editor.php?'+myurl, myname, w, h, 0, 0);
}

function EditWindow(id, table_name_or_id, current_url, return_path, language_current, advanced_param) {
	CenterWindow('/Admin/Edit/'+current_url+'?id='+id+'&_return_path='+return_path+'&_table_id='+table_name_or_id+'&_language='+language_current+'&'+advanced_param, 'edit_'+table_name_or_id, 600, 800, 1, 0);
}

var dbg_counter = 0;
function dbg(msg) {
	if (document.getElementById('dbg')) {
		dbg_counter++;
		document.getElementById('dbg').innerHTML += "<br>" + dbg_counter + '. ' + msg;
	}
}
   
/**
 * Обновляет форму, когда обновился внешний ключ, что б форма загрузила обновлённые 
 * выпадающие меню с внешними ключами.
 */
function refreshFKey(form_id, field_id, field_name, value) {
//	alert(form_id + ' : ' + field_id + ' : ' + field_name + ' : ' + value)
	byId(form_id).elements['_event'].value = 'cms/refresh';
	if (byId(field_id)) {
		byId(field_id).removeNode(true);
	}
	var oElement = document.createElement("input");
	oElement.type='hidden';
	oElement.name=field_name;
	oElement.value=value;
	byId(form_id).appendChild(oElement);
	byId(form_id).submit();
}


(AjaxSelect = {
	
	previous_value: null,
	input_id: null,
	
	init: function(table_id, input_id, field) {
		this.input_id = input_id
		$("#"+input_id).autocomplete("/tools/cms/admin/ajax_select.php", { minChars:2, matchSubset:0, matchContains:0, cacheLength:1, onItemSelect:this.selectItem, selectOnly:1, extraParams: {'table_id': table_id, 'field_name': field} });
		$("#"+input_id).keydown(function() {AjaxSelect.keydown(input_id)}).keyup(function() {AjaxSelect.keyup(input_id)});
	},
	
	keydown: function(input_id) {
		this.previous_value = byId(input_id).value;
	},
	
	keyup: function(input_id) {
		if(this.previous_value != byId(input_id).value) {
			this.fixValue(input_id, 0);
		}
	},
	
	fixValue: function(input_id, value) {
		if (value>0) {
			$('#'+input_id+'_fixed').attr('checked', 'checked');
		} else {
			$('#'+input_id+'_fixed').removeAttr('checked');
		}
		byId(input_id+'_value').value = value;
	},
	
	selectItem: function(li) {
		AjaxSelect.fixValue(li.extra[1], li.extra[0])
	}
	
});
