// Глобальная переменная, чтобы checkForm знала откуда идет редактирование
var edit_style_flag='edit_row';

// Сортировка таблицы по возрастанию или по убыванию
function orderInTable(search_field, table, url, param, order) {
        JsHttpRequest.query(
        	'/functions/search_in_table.php',
        	{
        		search_field: search_field,
        		table: table,
        		url: url,
        		param: param,
        		order: order
        	},
        	function(result, errors) {
        		window.location.href=result["url"]
                	document.getElementById("debug").innerHTML = errors; 
        	},
        	true  	// do not disable caching
        )

}

// Сброс поиска по таблице
function resetSearch(search_field, table, url, param) {
	split_param=param.split('&')
	count_param=split_param.length
	url+='?'
	for (x=1; x<count_param; x++) {
		if (split_param[x].indexOf(search_field, 0)==-1) url+='&'+split_param[x]
	}
	window.location.href=url
}


// Поиск по столбцу таблицы
function searchInTable(search_field, table, url, param) {
	str=prompt('Введите строку для поиска:','')
	if (str) {
        	JsHttpRequest.query(
                	'/functions/search_in_table.php',
                	{
                		search_field: search_field,
                		table: table,
                		url: url,
                		param: param,
                		str: str
                	},
                	function(result, errors) {
                		window.location.href=result["url"]
                        	document.getElementById("debug").innerHTML = errors; 
                	},
                	true  	// do not disable caching
        	)
	}
}

// Отображение значения таблицы после изменения или отмены изменения
function chngTableValueClear(field, table, id, table_desc_path, value) {
        JsHttpRequest.query(
                '/functions/show_table_value.php',
                {
                	field: field,
                	table: table,
                	id: id,
                	table_desc_path: table_desc_path
                },
                function(result, errors) {
//                        alert(result["txt"])
                        str='<a class="intable" href="javascript:chngTableValue(\''+field+'\', \''+table+'\', \''+id+'\', \''+table_desc_path+'\', \''+value+'\')">'+result["txt"]+'</a>'
//                        alert(str)
                        document.getElementById("div_field_"+field+"_"+id).innerHTML=str
                        document.getElementById("debug").innerHTML = errors; 
                },
                true  // do not disable caching
        )
//	<a class="intable" href="javascript:chngTableValue(\''+field+'\', \''+table+'\', \''+id+'\', \''+table_desc_path+'\', \''+value+'\')">'+value+'</a>';
}

// Изменения значения выведенного таблицей
function chngTableValue(field, table, id, table_desc_path){
	edit_style_flag='chng_table'
	document.getElementById("div_field_"+field+"_"+id).innerHTML='';
        JsHttpRequest.query(
                '/functions/chng_table_value.php',
                {
                	field: field,
                	table: table,
                	id: id,
                	table_desc_path: table_desc_path
                },
                function(result, errors) {
//                        alert(result["txt"])
                        document.getElementById("div_field_"+field+"_"+id).innerHTML=result["txt"];
                        if(field.indexOf("_Date", 0)!=-1) { 
			  Calendar.setup(
			    {
			      inputField  : table+"_"+field,         // ID of the input field
			      ifFormat    : "%d-%m-%Y",    // the date format
			      button      : "calendar_"+table+"_"+field       // ID of the button
			    }
			  )
			}
                        document.getElementById("debug").innerHTML = errors; 
                },
                true  // do not disable caching
        )
}
// Контекстное меню
function tbContextMenu(table, id, table_desc_path, event) {
        // Показываем контекстное меню
        // Координаты курсора мыши
    	div=document.getElementById("context_menu")
    	var alltxt='';
	var mx = event.clientX;
	var my = event.clientY;
	var sx = 0;
	var sy = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		sx = window.pageXOffset;
		sy = window.pageYOffset;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		sx = document.documentElement.scrollLeft;
		sy = document.documentElement.scrollTop;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		sx = document.body.scrollLeft;
		sy = document.body.scrollTop;
	}
	div.style.left=mx + sx - 0 + 'px';
	div.style.top=my + sy - 0 + 'px';
	div.style.visibility='visible';
	div.style.display='block';
//	document.getElementById("context_menu").innerHTML='<a href="javascript:editRow(\''+table+'\', '+id+', \'show\')">Показать</a>'
	document.getElementById("context_menu").innerHTML='';
	if (table!='turscurrency') document.getElementById("context_menu").innerHTML+='<a href="javascript:editRow(\''+table+'\', \''+id+'\', \'edit\', \''+table_desc_path+'\')">Редактировать</a>'
	document.getElementById("context_menu").innerHTML+='<a href="javascript:editRow(\''+table+'\', \''+id+'\', \'insert\', \''+table_desc_path+'\')">Клонировать</a>'
        document.getElementById("context_menu").innerHTML+='<a href="javascript:deleteRow(\''+table+'\', \''+id+'\', \''+table_desc_path+'\')">Удалить</a>'
}

// Подсветка таблиц
function lightTable (table, tr, option) {
	tabl=document.getElementById(table)
	if(document.getElementById(tr+'_info')) inc=2 // если есть поля info, то подсветка их должан "перепрыгивать"
	else inc=1
	z = tabl.getElementsByTagName('tr');
	x = 1;
	for (i=1; i<z.length; i=i+inc) { 
		if (x%2) {
			z.item(i).style.backgroundColor='white'
		}
		else 	 {
			z.item(i).style.backgroundColor='#FAF9F8'
		}
	x++;
	}
	if (option=='on') {
		document.getElementById(tr).style.background='#F7F4F0'
		document.getElementById(tr).style.cursor='hand'
	}
	if (option=='click') document.getElementById(tr).style.background='#FFF4EA'
}

// Переключение чекбокса
function switchCheckBox(status, field_name) {
        if (status) {
        	document.getElementById(field_name).value=1
        }
        else {
        	document.getElementById(field_name).value=0
        }
}

function showError(txt, div) {
	if (document.getElementById(div)) {
		document.getElementById(div).innerHTML=txt
		document.getElementById(div).style.visibility='visible'
	}
	return '1'	
}

function hideError(div) {
	if (document.getElementById(div)) {
		document.getElementById(div).style.visibility='hidden'
		document.getElementById(div).innerHTML=''; 
	}
}

// проверка формы, формирование массива и отправка php скрипту
function checkForm (check, table, option, table_desc_path) {
//	alert('check='+check+', table='+table+', option='+option+', table_desc_path='+table_desc_path)
	document.getElementById("div_error_"+table+"_edit_form").style.visibility = 'hidden'; 
	expMail=new  RegExp("^[^\.].+@[^\.].+\\..+[^\.]$")
	expDecimal=new  RegExp("^[0-9]{1,}\.[0-9]{1,}$")
	expDate=new RegExp("^[0-9]{2}-[0-9]{2}-[0-9]{4}$")
	expTime=new RegExp("^[0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$")
	expLat=new  RegExp("^[a-zA-Z]{1,}$")
	expLatnum6=new  RegExp("^[a-zA-Z0-9]{6,}$")
	splitCheck=check.split("|")
	error_flag=0
	// Записывает данные из tinyMCE 
      	tinyMCE.triggerSave(true, true)
      	// Проверяем поля
	
	for (x=0;x<splitCheck.length-1;x++) {
		error_msg=document.getElementById("error_"+table+"_"+splitCheck[x]).firstChild.data
		error_msg_split=error_msg.split("|")
		div_name="div_"+table+"_"+splitCheck[x]
		input_name=table+"_"+splitCheck[x];
		// Не пустой е-mail
		if (error_msg_split[0] == 'NEMAIL') {
			if (document.getElementById(input_name).value=="" || !expMail.test(document.getElementById(input_name).value)) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		
		// Пустой e-mail
		if (error_msg_split[0] == 'MAIL') {
			if (document.getElementById(input_name).value!="" && !expMail.test(document.getElementById(input_name).value)) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		
		// Не пустое поле
		if (error_msg_split[0] == 'NE') {
			if(document.getElementById(input_name).value=="") {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		
		// Десятичное и непустое
		if (error_msg_split[0] == 'NEDECIMAL') {
			if(document.getElementById(input_name).value=="" || !expDecimal.test(document.getElementById(input_name).value)) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		// Десятичное
		if (error_msg_split[0] == 'DECIMAL') {
			if(!expDecimal.test(document.getElementById(input_name).value)) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		if (error_msg_split[0] == 'NE_AJAX_SELECT') {
			if(document.getElementById(input_name).value=="" || document.getElementById(input_name).value=="null") {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		if (error_msg_split[0] == 'AJAX_SELECT') {
			if(document.getElementById(input_name).value=="null") {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}

                // Выпадаюший список
		if (error_msg_split[0] == 'SELECT') {
			if (document.getElementById(input_name).value=="null") {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		// Не пустая дата
		if (error_msg_split[0] == 'NEDATE') {
			if(document.getElementById(input_name).value=="00-00-0000" || !expDate.test(document.getElementById(input_name).value) || document.getElementById(input_name).value=="") {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		// Только латинские буквы
		if (error_msg_split[0] == 'LAT') {
			if(document.getElementById(input_name).value!="" && !expLat.test(document.getElementById(input_name).value)) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		// Только латинские буквы и цифры, не пустое >6 символов
		if (error_msg_split[0] == 'NELATNUM6') {
			if(document.getElementById(input_name).value=="" || !expLatnum6.test(document.getElementById(input_name).value)) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		// Не пустое поле адреса доставки при выборанном чекбоксе
		if (error_msg_split[0] == 'DELIVERCHK') {
			if(document.getElementById(input_name).value=="" && document.getElementById('orders_deliver_Box').value==1) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		// Не пустое поле даты доставки при выборанном чекбоксе
		if (error_msg_split[0] == 'DELIVERCHKDATE') {
			if((document.getElementById(input_name).value=="" || !expDate.test(document.getElementById(input_name).value)) && document.getElementById('orders_deliver_Box').value==1) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		// Не пустое поле адреса доставки при выборанном чекбоксе
		if (error_msg_split[0] == 'DELIVERCHKTIME') {
			if((document.getElementById(input_name).value==""  || !expTime.test(document.getElementById(input_name).value)) && document.getElementById('orders_deliver_Box').value==1) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
		if (error_msg_split[0] == 'CHECKED') {
			if(document.getElementById(input_name).value==0) {
				error_flag=showError(error_msg_split[1], div_name)
			}
			else {
				hideError(div_name)
				continue;
			}
		}
	}
	if (error_flag!='1') {
	// Создаем массив с данными формы и убираем префикс
	editform=document.getElementById(table+"_edit_form")
	var form_massiv=new Object;
	var editformlength=editform.length
	// Записывем поля в массив
	var url=window.location.href
	var str=/root/; 
	var str1=/install/; 
	// iface - если в url есть /root/ то значит мы в админке.
	// install - инсталяция
	if(str.test(url)) iface="root"
	else if (str1.test(url)) iface="install"
	else iface="face"
	for(y=0; y<editform.length; y++) {
//	        alert(editform[y].name.replace(table+'_', '')+"->"+editform[y].value)
		form_massiv[editform[y].name.replace(table+'_', '')]=editform[y].value
		cur_field=editform[y].name.replace(table+'_', '');
		cur_value=editform[y].value
	}
		JsHttpRequest.query(
			'/functions/edit_table.php',
			{
				editform: form_massiv,
				option: option,
				iface: iface,
				table_desc_path: table_desc_path
			},
  	  		function(result, errors) {
				document.getElementById("div_error_"+table+"_edit_form").style.visibility = 'visible'; 
  	  		        document.getElementById("div_error_"+table+"_edit_form").innerHTML = result["error_mysql"]; 
                           	//document.getElementById("debug").innerHTML = errors; 
                           	return_url=result["return_url"]
	  		        // если скрипт возвартил return_url, то переходим, иначе - нет.
	  		        //alert(result["status"]);
  	  		        if (result["status"]=='ok' && return_url) {
  	  		        	if(edit_style_flag=='edit_row')	setTimeout("document.location.href='"+return_url+"'",500)
  	  		        	else if (edit_style_flag=='chng_table') chngTableValueClear(cur_field, table, form_massiv['id'], table_desc_path, cur_value)
				}
				else if (result["status"]=='node') {
					if(result["parent"]) {
						if(result["old_parent"]) {
							openNode(result["old_parent"], 'close', result['div_suffix'], table, table+'_Desc', result['open_func'], 'Context', '', 'Сайт')
							openNode(result["old_parent"], 'open', result['div_suffix'], table, table+'_Desc', result['open_func'], 'Context', '', 'Сайт')
						}
						openNode(result["parent"], 'open', result['div_suffix'], table, table+'_Desc', result['open_func'], 'Context', '', 'Сайт')
					}
					else {
						openNode('NULL', 'open', result['div_suffix'], table, table+'_Desc', result['open_func'], 'Context', '', 'Сайт')
					}
					editRow(table, result["last_id"], "show", table_desc_path)
			        }
			        // Обрабатываем комментарии
			        else if (result["status"]=='comments') {
			        	if (document.getElementById("comments_list")) {
			        		// Выводим комменты
			        		document.getElementById("comments_list").innerHTML = result['some_txt'];
			        		// Очищаем форму
			        		document.getElementById("comments_edit_form").reset();
			        		// Меняем каптчу
			        		var kcaptcha = new Image();
						kcaptcha.src = '/functions/kcaptcha_index.php'
						document['kcaptcha_img'].src=kcaptcha.src
			        	}
			        	else setTimeout("document.location.href='"+return_url+"'",200)
			        }
			        else if (result["status"]=='error') {
			        	var kcaptcha = new Image();
					kcaptcha.src = '/functions/kcaptcha_index.php'
					document['kcaptcha_img'].src=kcaptcha.src
					document.getElementById(table+"_kcaptcha").value=''
					document.getElementById(table+"_kcaptcha").focus()
			        }
			},
			true  // do not disable caching
		)
	}
}
