// Установить скрытые поля и отправить форму (в ссылке ставить #)
// Первый аргумент - имя формы
// Дальше повторяются пары "поле, значение"
function submit_form() 
{
	var inp;
	var elem=document.forms[arguments[0]];
	for (var i=1; arguments.length>i; i+=2) {		
		if (elem.elements[arguments[i]]) {
			elem.elements[arguments[i]].value=arguments[i+1];
		}
		else {
			inp  = document.createElement('INPUT');
			inp.setAttribute("type", "hidden");
			inp.setAttribute ("id", arguments[i]);
			inp.setAttribute("name", arguments[i]);
			inp.setAttribute("value", arguments[i+1]);
			elem.appendChild(inp);
		}
	}
	
	elem.submit();
	return true;
}
// Установить скрытые поля
// Первый аргумент - имя формы
// Дальше повторяются пары "поле, значение"
function change_element () 
{
	var inp;
	var elem=document.forms[arguments[0]];

	for (var i=1; arguments.length>i; i+=2) {		
		if (elem.elements[arguments[i]]) {
			elem.elements[arguments[i]].value=arguments[i+1];
		}
		else {
			inp  = document.createElement('INPUT');
			inp.setAttribute("type", "hidden");
			inp.setAttribute ("id", arguments[i]);
			inp.setAttribute("name", arguments[i]);
			inp.setAttribute("value", arguments[i+1]);
			elem.appendChild(inp);
		}
	}

	return false;
}
// Скопировать поля
// Первый аргумент - имя формы куда перенести элемент
// Второй аргумент имя формы из которой берется элемент
// Дальше повторяются имена полей для переноса
function copy_element () 
{
	var inp;
	var elem_source=document.forms[arguments[1]].elements;

	var elem_insert=document.forms[arguments[0]];
	var elem = elem_insert.elements;
	
	for (var i=2; arguments.length>i; i+=1) {		
		if (elem[arguments[i]]) {
			elem[arguments[i]].value=elem_source[arguments[i]].value;
		}
		else {
			inp  = document.createElement('INPUT');
			inp.setAttribute("type", "hidden");
			inp.setAttribute("name", arguments[i]);
			inp.setAttribute("value", elem_source[arguments[i]].value);
			elem_insert.appendChild(inp);
		}
	}

	return false;
}

// Установить action формы и отправить ее 
// formname - имя формы
// url - адрес
// need_submit - надо ли отправлять форму (1 - да )
function form_action(formname, url, need_submit) 
{
	var need_submit = need_submit | 1;
	var elem=document.forms[arguments[0]];

	elem.action=url;
	
	if (need_submit)
		elem.submit();
	return true;
}

// Установить скрытые поля и отправить форму с запросом
// Первый аргумент - имя формы, второй - текст запроса, дальше повторяются пары "поле, значение"
function submit_form_ask() 
{
	var result=0;
	result=confirm(arguments[1]);
	if (result) {
		for (var i=2; arguments.length>i; i+=2) {		
			if (arguments[0].elements[arguments[i]]) {
				arguments[0].elements[arguments[i]].value=arguments[i+1];
			}
			else {
				inp  = document.createElement('INPUT');
				inp.setAttribute("type", "hidden");
				inp. setAttribute ("id", arguments[i]);
				inp.setAttribute("name", arguments[i]);
				inp.setAttribute("value", arguments[i+1]);
				arguments[0].appendChild(inp);
			}
		}
		arguments[0].submit();
		return true;
	}
	return false;
}

// Установить скрытые поля и отправить форму с запросом
// Первый аргумент - имя формы
// Второй - текст запроса
// Дальше повторяются пары "поле, значение"
function submit_form_confirm() 
{
	var result=0;
	result=confirm(arguments[1]);
	if (result) {
		var elem=document.forms[arguments[0]];
		for (var i=2; arguments.length>i; i+=2) {		
			if (elem.elements[arguments[i]]) {
				elem.elements[arguments[i]].value=arguments[i+1];
			}
			else {
				inp  = document.createElement('INPUT');
				inp.setAttribute("type", "hidden");
				inp. setAttribute ("id", arguments[i]);
				inp.setAttribute("name", arguments[i]);
				inp.setAttribute("value", arguments[i+1]);
				elem.appendChild(inp);
			}
		}
		elem.submit();
		return true;
	}
	return false;
}


// Проверка заполнения
// Первый параметр - имя формы, дальше повторяются пары "поле, описание ошибки если пустое"
// имя email Всегда вызывает проверку по типу email
function checkform() 
{
	var err_string;
	err_string="";
	var elem = document.forms[arguments[0]];
	for (var i=1; arguments.length>i; i+=2) {		
		if (arguments[i]=='email') {
			reg_mail=/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i;
			if (reg_mail.test(elem.elements['email'].value)==false) {
					err_string=err_string+"- "+arguments[i+1]+" \n"; 
			}
		}
		else {

			if (elem.elements[arguments[i]].value=="") {
					err_string=err_string+"- "+arguments[i+1]+" \n"; 
			}
		}
	}
	
	if (err_string!="") {
		err_string="Неправильно заполнены следующие поля: \n"+err_string;
		alert(err_string);
		return false;
	}
	return true;
}

// Отметить все Checkbox
// первый параметр - имя формы
// второй - имя чекбоксов
// третий - если 1 - то убрать выделение
function check_all(formname, elem_inner, invers)
{
	invers = invers || 0;
	
	if (invers==0)
		make_var = true;
	else
		make_var = false;
		
		
	var elem = document.forms[formname].elements[elem_inner];
		
	if (elem.length) {
			for (var i=0; i < elem.length; i++) {
		 		elem[i].checked=make_var;
			}
	}
	else {
			elem.checked=make_var;
	}
}

// показать поля при выборе select
// первый параметр - имя фомы
// второй параметр - имя select
// последующие пары - имя объекта для показа , значение select как условие показа 
function drop_change()
{
	var elem_value=document.forms[arguments[0]].elements[arguments[1]];
	alert(elem_value[0]);
	if (elem_value) {
		elem_value=elem_value.value;
		for (var item=2; arguments.length>item; item+=2) {	
			if (arguments[item+1]==elem_value) {
				document.getElementById(arguments[item]).style.display="";
			}
			else {
				document.getElementById(arguments[item]).style.display="none";
			}	
		}
	}
}
// показать поля при выборе checkbox
// первый параметр - имя фомы
// второй параметр - имя checkbox
// последующие пары - имя объекта для показа , значение select как условие показа 
function select_change()
{
	var elem=document.forms[arguments[0]].elements[arguments[1]];
	if (elem) {
		for (var i=0; elem.length > i; i++) {	
			if (elem[i].checked==true)
				elem_value = elem[i].value;
		}
	}
	
	for (var item=2; arguments.length>item; item+=2) {	
		if (arguments[item+1]==elem_value) {
			document.getElementById(arguments[item]).style.display="";
		}
		else {
			document.getElementById(arguments[item]).style.display="none";
		}	
	}
	
}
// Очистка формы по клику в поле
var need_clear = new Array();
// this_elem - указатель на объект
// условное имя
function clearfield (this_elem,elem)
{
	if (need_clear[elem]==undefined)
	{

		need_clear[elem]=1;
		this_elem.value="";
	}
}

// Выбор элементов по значению
// form_elem - Имя формы
// elem_inner - Имя элементов
// arg - значение, элемент с которым нужно выбрать
function make_select (form_elem, elem_inner, arg) 
{
	var elem=document.forms[form_elem].elements[elem_inner];

	if (elem.length) {
		for (var item=0; elem.length>item; item++ ) {
			if (elem[item].value==arg) {
				if (elem[item].type=="checkbox" || elem[item].type=="radio")
					elem[item].checked=true;
				else
					elem[item].select=true;
			}
		}
	}
	else {
		if (elem.value==arg) {
				if (elem.type=="checkbox" || elem[item].type=="radio")
					elem.checked=true;
				else
					elem.selected=true;
		}
	}
	
}

// Скрыть - показать
// elem_name - имя элемента
function open_close (elem_name) 
{
	var elem = document.getElementById(elem_name);

	if(elem) {
		if (elem.style.display=="none") {
			elem.style.display="";
		}
		else
			elem.style.display="none";
	} 
}

// Показать один из элементов, остальные скрыты
// elem_basename - базовое имя элемента (к нему прибавляется номер, начиная с 1)
// elem_index - номер элемента для показа (0  - скрыть все)
function show_one (elem_basename, elem_index)
{ 
	var current_index=1;
	var elem = document.getElementById(elem_basename + current_index);
	// Скрыть все
	while ( elem!=null ) {
		elem.style.display="none";
		current_index++;
		elem = document.getElementById(elem_basename + current_index);
	}
	
	elem = document.getElementById(elem_basename + elem_index);
	if (elem!=null)
		elem.style.display="";
}
// Показать один из элементов в выбранном стиле, остальные без стиля
// elem_basename - базовое имя элемента (к нему прибавляется номер, начиная с 1)
// elem_index - номер элемента для показа (0  - скрыть все)
// elem_style - название стиля
function show_one_style (elem_basename, elem_index, elem_style)
{ 
	var current_index=1;
	var elem = document.getElementById(elem_basename + current_index);
	// Скрыть все
	while ( elem!=null ) {
		elem.className="";
		current_index++;
		elem = document.getElementById(elem_basename + current_index);
	}
	
	elem = document.getElementById(elem_basename + elem_index);
	if (elem!=null)
		elem.className=elem_style;
}

// Изменить текст
// elem_name - id элемента
// elem_text - текст для вставки
function change_text (elem_name, elem_text)
{ 
	var elem = document.getElementById(elem_name);
	// Скрыть все
	if (elem!=null)
		elem.innerText=elem_text;
}

// Подключение FCK
function fck(field_name, field_value, field_type)
{
	field_type = field_type || 0;
	
	var oFCKeditor = new FCKeditor(field_name);
	oFCKeditor.BasePath = "fckeditor/";
	if (field_type==0)
		oFCKeditor.Height=500;
	else
		oFCKeditor.Height=250;
	oFCKeditor.Value=field_value;
	oFCKeditor.Create();
}


// РАБОТА С КАРТИНКАМИ

img_array = new Array();

function image_preload()
{
	for(i=0; i<arguments.length; i=i+2 ) {
		img = new Image;
		img.src = arguments[i+1];
		img_array[arguments[i]] = img;
	}
}

function image_swap (img_id)
{
	elem = document.getElementById(img_id);
	if (elem!=undefined && img_array[img_id]!=undefined) {
		// Заменяем, старую подвешиваем на tmp_src
		if (!elem.tmp_src) {
			elem.tmp_src = elem.src;
			elem.src = img_array[img_id].src;
		}
	}
}

function image_restore (img_id) 
{
	elem = document.getElementById(img_id);
	if (elem!=undefined) {
		// Возвращаем из tmp_src
		if (elem.tmp_src) {
			elem.src = elem.tmp_src;
			elem.tmp_src = undefined;
		}
	}
}



// ФУНКЦИИ 2 РЕДАКЦИИ


// Установить скрытые поля и отправить форму с запросом
// formname - имя формы
// confirm_text - текст запроса
// change_elem - array(пары "поле, значение")
function form_submit_confirm(formname, confirm_text, change_elem) 
{
	var result=0;
	result=confirm(confirm_text);
	if (result) {
		form_submit(formname, change_elem);
		return true;
	}
	return false;
}
// Установить скрытые поля и отправить форму с запросом
// formname - имя формы
// confirm_text - текст запроса
// change_elem - array(пары "поле, значение")
function form_submit(form_name, change_elem) 
{
		var elem = document.forms[form_name];
		if(change_elem!= undefined) {
			for (var i=0; change_elem.length>i; i+=2) {		
				if (elem.elements[change_elem[i]]) {
					elem.elements[change_elem[i]].value=change_elem[i+1];
				}
				else {
					inp  = document.createElement('INPUT');
					inp.setAttribute("type", "hidden");
					inp. setAttribute ("id", change_elem[i]);
					inp.setAttribute("name", change_elem[i]);
					inp.setAttribute("value", change_elem[i+1]);
					elem.appendChild(inp);
				}
			}
		}
		elem.submit();
		return true;
}

// Выбор элементов по значению
// form_name - Имя формы
// elem_name - Имя элементов
// arg - значение, элемент с которым нужно выбрать
function form_select (form_name, elem_name, arg) 
{
	var elem=document.forms[form_name].elements[elem_name];

	if (elem.length) {
		for (var item=0; elem.length>item; item++ ) {
			if (elem[item].value==arg) {
				if (elem[item].type=="checkbox" || elem[item].type=="radio")
					elem[item].checked=true;
				else
					elem[item].select=true;
			}
		}
	}
	else {
		if (elem.value==arg) {
				if (elem.type=="checkbox" || elem[item].type=="radio")
					elem.checked=true;
				else
					elem.selected=true;
		}
	}
}

// Установить action формы и отправить ее 
// formname - имя формы
// url - адрес
// need_submit - 1 - отправить
function form_change_action(form_name, url, need_submit) 
{
	var need_submit = need_submit | 0;
	var elem=document.forms[arguments[0]];

	elem.action=url;
	
	if (need_submit)
		form_submit(form_name);
	return true;
}

// Отметить все Checkbox
// form_name - имя формы
// elem_name - имя чекбоксов
// deselect - если 1 - то убрать выделение
function form_check_by_id(form_name, elem_name, deselect)
{
	deselect = deselect || 0;
	
	if (deselect==0)
		make_var = true;
	else
		make_var = false;
		
		
	var elem = document.forms[form_name].elements[elem_name];
	
	if(elem!=undefined) {
		if (elem.length) {
				for (var i=0; i < elem.length; i++) {
			 		elem[i].checked=make_var;
				}
		}
		else {
				elem.checked=make_var;
		}
	}
}


// Добавить объект в таблицу
// clone_elem - название клонируемого объекта 
// name_insert - место вставки

// inputs - Число ввставок
// max_inputs - Максимальное число вставок
var inputs = Array();
var max_inputs = Array();

function row_insert(clone_elem, insert_place){
	var clone_point = document.getElementById(clone_elem);
	var insert_point = document.getElementById(insert_place);
	var clone_node;
	clone_node = clone_point.cloneNode(true);
	
	clone_node.setAttribute("id", "new_"+inputs);
	//clone_node.style.display="";
	if (inputs[insert_place]==undefined || max_inputs[insert_place]==undefined || max_inputs[insert_place]==0 || inputs[insert_place]<max_inputs[insert_place]) {
		insert_point.parentNode.insertBefore(clone_node,insert_point);
		if (inputs[insert_place]==undefined)
			inputs[insert_place]=0;
		else
			inputs[insert_place]++;
	}
}
// выставить максимум элементов для вставки
function row_max(insert_place, count) {
	max_inputs[insert_place]=count;
}
// выставить текущее число элементов
function row_current(insert_place, count) {
	inputs[insert_place]=count;
}
// выставить текущее число элементов
function row_decrease(insert_place, count) {
	count = count || 1;
	if (inputs[insert_place]!=undefined)
		inputs[insert_place]=inputs[insert_elem] - count;
	else
		inputs[insert_place] = 0;
}

// Проверка заполнения
// form_name - имя формы, 
// parametr - повторяются пары "поле, описание ошибки если пустое"
// имя email Всегда вызывает проверку по типу email
function form_check(form_name, parametr) 
{
	var err_string;
	err_string="";
	var elem = document.forms[form_name];
	for (var i=0; parametr.length>i; i+=2) {		
		if (parametr[i]=='email') {
			reg_mail=/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i;
			if (reg_mail.test(elem.elements['email'].value)==false) {
					err_string=err_string+"- "+parametr[i+1]+" \n"; 
			}
		}
		else {

			if (elem.elements[parametr[i]].value=="") {
					err_string=err_string+"- "+parametr[i+1]+" \n"; 
			}
		}
	}
	
	if (err_string!="") {
		err_string="Неправильно заполнены следующие поля: \n"+err_string;
		alert(err_string);
		return false;
	}
	return true;
}

