var PageContent           =  1;
var FolderContent         =  2;
var ArticlesContent       =  3;
var PhotosContent         =  4;
var FaqsContent           =  5;
var NewsContent           =  6;
var LinksContent          =  7;
var AddLinkContent        =  8;
var AddFaqContent         =  9;
var ArticleContent        = 10;
var ArticleFolderContent  = 11;
var PhotoContent          = 12;
var PhotoFolderContent    = 13;
var FaqContent            = 14;
var FaqFolderContent      = 15;
var NewContent            = 16;
var LinkContent           = 17;
var LinkFolderContent     = 18;
var MainContent           = 19;
var MapContent            = 20;

function ow(uri, name, width, height)
{
	window.open(uri, name, 'width='+width+',height='+height+',status=yes,menubar=no,resizable=yes,scrollbars=1');
}

function openDialog(href, width, height, resizable, wnd_name)
{
	if (!width)
		width = 300;
	if (!height)
		height = 300;
	if (!resizable)
		resizable = 'yes';
	w = window.open(href, wnd_name, "height="+height+",width="+width+",resizable="+resizable+",directories=no,status=no,titlebar=no,toolbar=no,menubar=no,location=no,scrollbars=yes");
	w.focus();
}

function ChangeAdminSite()
{
	var selectObject = document.getElementById('adminsite');
	if (selectObject.options[selectObject.selectedIndex].text == adminkaSite)
		window.location = "/";
	else
		window.location = "/adminka/";
}

function DeleteEntryItem(id)
{
	var message = MESSAGE_DELETE_PAGE;
	switch (type)
	{
	case ArticlesContent:
	case ArticleFolderContent:
		message = MESSAGE_DELETE_ARTICLE;
		break;
	case FaqsContent:
	case FaqFolderContent:
		message = MESSAGE_DELETE_FAQ;
		break;
	case LinksContent:
	case LinkFolderContent:
		message = MESSAGE_DELETE_LINK;
		break;
	case PhotosContent:
	case PhotoFolderContent:
		message = MESSAGE_DELETE_PHOTO;
		break;
	case NewsContent:
		message = MESSAGE_DELETE_NEW;
		break;
	}
	if (window.confirm(message))
		window.location = "/adminka/tree/delete.php?id=" + id;
}

function ActivateEntry(id)
{
	if (window.confirm(MESSAGE_ACTIVATE))
		window.location = "/adminka/tree/activate.php?id=" + id;
}

function StopEntry(id, parent)
{
	if (window.confirm(MESSAGE_STOP))
		window.location = "/adminka/tree/stop.php?id=" + id + "&parent=" + parent;
}

function CheckAll()
{
	f = document.forms["listform"];
	v  = false;
	for (i = 0; i < f.elements.length; ++i)
		if (f.elements[i].type == "checkbox" && f.elements[i].name == "all")
		{
			v = f.elements[i].checked;
			break;
		}
	for (i = 0; i < f.elements.length; ++i)
		if (f.elements[i].type == "checkbox" && f.elements[i].name != "all")
			f.elements[i].checked = v;
}

function DoWithAll(parent, action)
{
	var message = MESSAGE_ACTIVATE;
	switch (action)
	{
	case "delete":
		switch (type)
		{
		case ArticlesContent:
		case ArticleFolderContent:
			message = MESSAGE_DELETE_ARTICLES_SLELCTED;
			break;
		case FaqsContent:
		case FaqFolderContent:
			message = MESSAGE_DELETE_FAQS_SELECTED;
			break;
		case LinksContent:
		case LinkFolderContent:
			message = MESSAGE_DELETE_LINKS_SELECTED;
			break;
		case PhotosContent:
		case PhotoFolderContent:
			message = MESSAGE_DELETE_PHOTOS_SELECTED;
			break;
		case NewsContent:
			message = MESSAGE_DELETE_NEWS_SELECTED;
			break;
		}
		break;
	case "activate":
		message = MESSAGE_ACTIVATE;
		break;
	case "stop":
		message = MESSAGE_STOP;
		break;
	case "moderate":
		message = MESSAGE_MODERATE;
		break;
	case "move":
		message = MESSAGE_MOVE;
		break;
	}

	f = document.forms["listform"];
	bFound = false;
	for (i = 0; i < f.elements.length; ++i)
		if (f.elements[i].type == "checkbox" && f.elements[i].name != "all" && f.elements[i].checked == true)
		{
			bFound = true;
			break;
		}
	if (bFound)
		if (window.confirm(message))
		{
			ids = "";
			for (i = 0; i < f.elements.length; ++i)
				if (f.elements[i].type == "checkbox" && f.elements[i].name != "all" && f.elements[i].checked == true)
				{
					if (ids != "") ids += "+";
					ids += f.elements[i].name;
				}
			window.location = "/adminka/tree/" + action + ".php?id=" + ids + "&parent=" + parent;
		}
}

function DeleteAll(parent)
{
	DoWithAll(parent, "delete");
}

function ActivateAll(parent)
{
	DoWithAll(parent, "activate");
}

function StopAll(parent)
{
	DoWithAll(parent, "stop");
}

function ModerateAll(parent)
{
	DoWithAll(parent, "moderate");
}

function MoveAll(parent)
{
	p = document.forms["listform"].elements["folder"].value;
	if (p == -1)      StopAll(parent);
	else if (p == -2) ModerateAll(parent);
	else              DoWithAll(p, "move");
}

function IsNumber(str)
{
	for (var i = 0; i < str.length; i++)
	{
		var ch = str.substring(i, i + 1)
		if (ch < "0" || ch > "9")
			return false;
	}
	return true;
}

function IsUrl(str)
{
	for (var i = 0; i < str.length; i++)
	{
		var ch = str.substring(i, i + 1)
		if ((ch < "0" || ch > "9") && (ch < "a" || ch > "z") && (ch < "A" || ch > "Z") && ch != "-" && ch != "_" && ch != "/" && ch != "." && ch != ":")
			return false;
	}
	return true;
}

function CheckRequiredFields(formName)
{
	f = document.forms[formName];
	type = f.elements["type"].value;
	errorString = "";

	if (type != FaqContent && type != LinkContent && type != NewContent /*&& type != PhotoContent*/ && f.elements["name"] != null && f.elements["name"].value == "")
		errorString += "<li><nobr>Название не должно быть пустое</nobr></li>";
	if (type != LinkContent && type != NewContent && f.elements["path"] != null && f.elements["path"].value != "" && f.elements["path"].value.length < 5 && IsNumber(f.elements["path"].value))
		errorString += "<li><nobr>Ссылка должна быть больше 4 цифр, или должна содержать буквы</nobr></li>";
	if (type != LinkContent && type != NewContent && f.elements["path"] != null && f.elements["path"].value == "add")
		errorString += "<li><nobr>add - зарезервировано для добавления ссылки или вопроса</nobr></li>";
	if (type != LinkContent && type != NewContent && f.elements["path"] != null && f.elements["path"].value == "print")
		errorString += "<li><nobr>print - зарезервировано для печати</nobr></li>";
	if (type != LinkContent && type != PhotoContent && type != NewContent && f.elements["path"] != null && f.elements["path"].value == "")
		errorString += "<li><nobr>Ссылка не должна быть пустая</nobr></li>";
	if (type != LinkContent && type != NewContent && f.elements["path"] != null && !IsUrl(f.elements["path"].value))
		errorString += "<li><nobr>Ссылка должна содержать аглийские символы</nobr></li>";
	if ((type == FaqContent || type == NewContent) && (f.elements[smallName].value == "" || f.elements[smallName].value == "<br>" || f.elements[smallName].value == "<br>\r\n" || f.elements[smallName].value == "<br>\n"))
		if (type == NewContent)
			errorString += "<li><nobr>Новость кратко не должна быть пустой</nobr></li>";
		else
			errorString += "<li><nobr>Вопрос не должен быть пустым</nobr></li>";
	if ((type == FaqContent) && f.elements[largeName] != null && (f.elements[largeName].value == "" || f.elements[largeName].value == "<br>" || f.elements[largeName].value == "<br>\r\n" || f.elements[largeName].value == "<br>\n"))
		errorString += "<li><nobr>Ответ не должен быть пустым</nobr></li>";
	if ((type == ArticleContent || type == FolderContent || type == MainContent) && f.elements[largeName].value == "")
		errorString += "<li><nobr>Содержание страницы не должно быть пустое</nobr></li>";
	if (type == ArticlesContent || type == FaqsContent || type == LinksContent || type == PhotosContent)
		if (f.elements["count"].value == "")
			if (type == PhotosContent)
				errorString += "<li><nobr>Поле \"Фото на страницу\" не должно быть пустое</nobr></li>";
			else
				errorString += "<li><nobr>Поле \"Позиций на страницу\" не должно быть пустое</nobr></li>";
	if ((type == FaqsContent || /*type == FaqContent ||*/ type == LinksContent || type == LinkContent) && f.elements["email"].value == "" && f.elements["site"] != null)
		if (type == FaqContent)
			errorString += "<li><nobr>Поле эл. почта или телефон не должно быть пустым</nobr></li>";
		else
			errorString += "<li><nobr>Эл. почта не должна быть пустой</nobr></li>";
	if (type == LinkContent)
	{
		if (f.elements["link"].value == "")
		{
			errorString += "<li><nobr>HTML-код текстовой ссылки не должен быть пустой</nobr></li>";
			error = true;
		}
		if (f.elements["url"].value == "" && f.elements["site"] != null)
		{
			errorString += "<li><nobr>URL страницы с нашей ссылкой не должен быть пустой</nobr></li>";
			error = true;
		}
	}
	if (type == NewContent)
	{
		if (f.elements["day"].value == "" || f.elements["month"].value == "" || f.elements["year"].value == "")
			errorString += "<li><nobr>Дата не должна быть пустой</nobr></li>";
		if (!IsNumber(f.elements["day"].value) || !IsNumber(f.elements["month"].value) || !IsNumber(f.elements["year"].value))
			errorString += "<li><nobr>Дата должна быть введена цифрами</nobr></li>";
		var day = f.elements["day"].value;
		var month = f.elements["month"].value;
		var year = f.elements["year"].value;
		if (day < 1 || day > 31)
			errorString += "<li><nobr>День должен быть от 1 до 31</nobr></li>";
//		if (month < 1 || month > 12)
//		{
//			errorString += "<li><nobr>Месяц должен быть от 1 до 12</nobr></li>";
//			error = true;
//		}
		if (year < 1900 || year > 2500)
			errorString += "<li><nobr>Год должен быть от 1900 до 2500</nobr></li>";
	}
	if (type == PhotoContent)
		if (f.elements["full_photo"].value == "" && f.elements["full"].value == "")
			errorString += "<li><nobr>Фотография должна присутствовать</nobr></li>";

	if (errorString != "")
	{
		if (document.getElementById)
		{
			document.getElementById("error").innerHTML = "<nobr>При заполнении страницы были допущены следующие ошибки:</nobr><br /><ul>" + errorString + "</ul>";
			window.scroll(0,0);
		}
		return false;
	}
	else
	{
		if (document.getElementById)
			document.getElementById("error").innerHTML = "&nbsp;";
	}
	return true;
}

function OnEditSave()
{
	f = document.forms["editform"];
	if (small || large)
		tinyMCE.triggerSave();
	f.elements["save"].value = "1";
	if (CheckRequiredFields("editform"))
		f.submit();
}

function OnEditSaveClose()
{
	f = document.forms["editform"];
	if (small || large)
		tinyMCE.triggerSave();
	if (CheckRequiredFields("editform"))
		f.submit();
}

function OnEditCancel(param)
{
	window.location = "/adminka/tree/" + param;
}

function printPage()
{
	var url = document.location.href;
	if (url.substring(url.length - 1, url.length) == "/")
		url = url.substring(0, url.length - 1);
	var questionIndex = url.indexOf("?");
	if (questionIndex != -1)
		url = url.substring(0, questionIndex - 1);
	document.location.href = url + '/print/';
}
