var month_arr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var col_arr = new Array("FFFF00", "00FFFF", "FF00FF", "00FF00", "7FFFD4", "FFEBCD", "8A2BE2", "A52A2A", "DEB887", "5F9EA0", "7FFF00", "D2691E", "FF7F50", "6495ED", "DC143C", "00FFFF", "00008B", "008B8B", "B8860B", "A9A9A9", "006400", "BDB76B", "8B008B", "556B2F", "FF8C00", "9932CC", "8B0000", "E9967A", "8FBC8F", "483D8B", "2F4F4F", "00CED1", "9400D3", "FF1493", "00BFFF", "696969", "1E90FF", "B22222", "228B22", "DCDCDC", "FFD700", "DAA520", "808080", "008000", "ADFF2F", "FF69B4", "CD5C5C", "4B0082", "F0E68C", "E6E6FA", "7CFC00", "FFFACD", "ADD8E6", "F08080", "E0FFFF", "90EE90", "D3D3D3", "FFB6C1", "FFA07A", "20B2AA", "87CEFA", "778899", "B0C4DE", "32CD32", "FF00FF", "800000", "66CDAA", "0000CD", "BA55D3", "9370D8", "3CB371", "7B68EE", "00FA9A", "48D1CC", "C71585", "191970", "FFE4E1", "FFDEAD", "000080", "808000", "688E23", "FFA500", "FF4500", "DA70D6", "EEE8AA", "98FB98", "AFEEEE", "D87093", "FFEFD5", "FFDAB9", "CD853F", "FFC0CB", "DDA0DD", "B0E0E6", "800080", "BC8F8F", "4169E1", "8B4513", "FA8072", "F4A460", "2E8B57", "A0522D", "C0C0C0", "87CEEB", "6A5ACD", "708090", "00FF7F", "4682B4", "D2B48C", "008080", "D8BFD8", "FF6347", "40E0D0", "EE82EE", "F5DEB3", "9ACD32");

function setMainTableWidth()
{
	if (document.getElementById("inputFields").offsetWidth < document.getElementById("tabBar").offsetWidth)
		document.getElementById("inputFields").style.width = document.getElementById("tabBar").offsetWidth;
}

function focusFirstElement(str)
{
	for (var x = 0; x < document.forms[formsField].length; ++x)
	{
		if (document.forms[formsField].elements[x].type == str)
		{
			document.forms[formsField].elements[x].focus();
			break;
		}
	}
}

function headerMouseOver(field)
{
	field.className = "headerButton buttonMouseOver";
}

function headerMouseOut(field)
{
	field.className = "headerButton buttonMouseOut";
}

function trim(str)
{
	while (str.search(" ") != -1)
	{
		str = str.replace(" ", "");
	}
	return str;
}

function getFlagArray()
{
	return new Array("de", "uk", "nl");
}

function getKeyboardStatus(e)
{
	if (window.event)
		return window.event.keyCode;
	else
		return e.which;
}

function checkSubmit()
{
	var argument_arr = checkSubmit.arguments;
	if (document.forms[formsField].isSubmit.value > 0)
	{
		if (confirm(argument_arr[document.forms[formsField].isSubmit.value - 1]+"?") == true)
		{
			document.forms[formsField].style.visibility = "hidden";
			document.forms[formsField].style.display = "none";
			if (document.getElementById("pleaseWait"))
				document.getElementById("pleaseWait").style.display = "block";
			return true;
		}
		else
		{
			document.forms[formsField].isSubmit.value = 0;
			return false;
		}
	}
}

function checkFileSubmit()
{
	var argument_arr = checkFileSubmit.arguments;
	var isSubmit = true;
	for (var x = 1; x < argument_arr.length; ++x)
	{
		if (document.forms[formsField].elements[argument_arr[x]].value != "" && document.forms[formsField].elements[argument_arr[x]].value.slice(0, 4).search(/\\.+/) == -1)
		{
			isSubmit = false;
			break;
		}
	}
	if (isSubmit)
		checkSubmit(argument_arr[0]);
}

function selectSeasonCalendarDays(num, pricePartID, changeDate)
{
	if (num < 0)
		this.location.href = "show_calendar.php?pricePartID="+pricePartID+"&changeDate="+changeDate;
	else
		this.location.href = "show_calendar.php?pricePartID="+pricePartID+"&month="+seasonDateFrom_arr[num].substr(4,2)+"&year="+seasonDateFrom_arr[num].substr(0,4)+"&dateFrom="+seasonDateFrom_arr[num]+"&dateTo="+seasonDateTo_arr[num]+"&season="+num+"&changeDate="+changeDate;
}

function markSeasonCalendarDays(dateFrom, dateTo, col)
{
	for (var x = dateFrom; x <= dateTo; x++)
	{
		if (checkDate(x.toString()))
			document.getElementById(x).style.backgroundColor = "#"+col;
		else
		{
			x += (100 - x.toString().substr(6, 2));
			if (x.toString().substr(4, 2) > 12)
				x += 8800;
		}
	}
}

function markCalendarDays(dateFrom, dateTo)
{
	while (dateFrom <= dateTo)
	{
		document.getElementById(dateFrom).className = "calendarDays markCalendarDays";
		dateFrom = getNextDate(dateFrom.toString());
	}
}

function unmarkCalendarDays(dateFrom, dateTo)
{
	while (dateFrom <= dateTo)
	{
		document.getElementById(dateFrom).className = "calendarDays unmarkCalendarDays";
		dateFrom = getNextDate(dateFrom.toString());
	}
}

function getNextDate(date)
{
	var year = date.substr(0, 4), month = date.substr(4, 2), day = date.substr(6, 2);
	if (month == 2)
	{
		if ((year % 4 == 0 || year % 400 == 0) && year % 100 != 0)
			var lastDay = 29;
		else	
			var lastDay = 28;
	}
	else
		var lastDay = month_arr[month - 1];
	day++;
	if (day > lastDay)
	{
		day = 1;
		month++;
		if (month > 12)
		{
			month = 1;
			year++;
		}
	}
	if (day.toString().length == 1)
		day = "0".concat(day);
	if (month.toString().length == 1)
		month = "0".concat(month);
	return year.toString().concat(month, day);
}

function checkDate(date)
{
	var year = date.substr(0, 4), month = date.substr(4, 2), day = date.substr(6, 2);
	if (month == 2)
	{
		if ((year % 4 == 0 || year % 400 == 0) && year % 100 != 0)
			var lastDay = 29;
		else	
			var lastDay = 28;
	}
	else
		var lastDay = month_arr[month - 1];
	if (day > lastDay)
		return false;
	else
		return true;
}

function selectDays(date, firstDate, lastDate, setDateStatus)
{
	if ((selectDateFrom == "" && selectDateTo == "") || (selectDateFrom != "" && selectDateTo != ""))
	{
		if ((selectDateFrom <= lastDate || selectDateTo >= firstDate) && selectDateFrom != "")
		{
			if (selectDateFrom >= firstDate)
				unmarkDateFrom = selectDateFrom;
			else
				unmarkDateFrom = firstDate;
			if (selectDateTo <= lastDate)
				unmarkDateTo = selectDateTo;
			else
				unmarkDateTo = lastDate;
			unmarkCalendarDays(unmarkDateFrom, unmarkDateTo);
		}
		if (date >= firstDate && date <= lastDate)
			document.getElementById(date).className = "calendarDays calendarDaysSelected";
		selectDateFrom = date;
		selectDateTo = "";
	}
	else if (selectDateFrom != "" && selectDateTo == "")
		selectDateTo = date;
	if (selectDateFrom > selectDateTo && selectDateTo != "")
	{
		selectDateTmp = selectDateTo;
		selectDateTo = selectDateFrom;
		selectDateFrom = selectDateTmp;
	}
	if (selectDateFrom < firstDate)
		markDateFrom = firstDate;
	else
		markDateFrom = selectDateFrom;
	if (selectDateTo > lastDate)
		markDateTo = lastDate;
	else
		markDateTo = selectDateTo;
	markCalendarDays(markDateFrom, markDateTo)
	if (selectDateTo != "")
	{
		if (setDateStatus == 1)
		{
			parent.document.forms[0].searchDateFrom.value = ISOToDate(selectDateFrom.toString());
			fieldInputFocus(parent.document.forms[0].searchDateFrom, "inputAddS", "dd.mm.yyyy");
			parent.document.forms[0].searchDateTo.value = ISOToDate(selectDateTo.toString());
			fieldInputFocus(parent.document.forms[0].searchDateTo, "inputAddS", "dd.mm.yyyy");
		}
		else
			setDateSelectBoxes();
	}
}

function setDateSelectBoxes()
{
	parent.document.forms[0].dayDateFrom.options[parseInt(selectDateFrom.toString().substr(6, 2))].selected = true;
	parent.document.forms[0].monthDateFrom.options[parseInt(selectDateFrom.toString().substr(4, 2))].selected = true;
	var yearDateFrom = selectDateFrom.toString().substr(0, 4);
	parent.document.forms[0].yearDateFrom.options[0].selected = true;
	for (var x = 0; x < parent.document.forms[0].yearDateFrom.length; ++x)
	{
		if (parent.document.forms[0].yearDateFrom.options[x].value == yearDateFrom)
			parent.document.forms[0].yearDateFrom.options[x].selected = true;
	}
	fieldSelectIsChanged(parent.document.forms[0].dayDateFrom);
	fieldSelectIsChanged(parent.document.forms[0].monthDateFrom);
	fieldSelectIsChanged(parent.document.forms[0].yearDateFrom);
	parent.document.forms[0].dayDateTo.options[parseInt(selectDateTo.toString().substr(6, 2))].selected = true;
	parent.document.forms[0].monthDateTo.options[parseInt(selectDateTo.toString().substr(4, 2))].selected = true;
	var yearDateTo = selectDateTo.toString().substr(0, 4);
	parent.document.forms[0].yearDateTo.options[0].selected = true;
	for (var x = 0; x < parent.document.forms[0].yearDateTo.length; ++x)
	{
		if (parent.document.forms[0].yearDateTo.options[x].value == yearDateTo)
			parent.document.forms[0].yearDateTo.options[x].selected = true;
	}
	fieldSelectIsChanged(parent.document.forms[0].dayDateTo);
	fieldSelectIsChanged(parent.document.forms[0].monthDateTo);
	fieldSelectIsChanged(parent.document.forms[0].yearDateTo);
}

function ISOToDate(date)
{
 	return date.substr(6, 2)+"."+date.substr(4, 2)+"."+date.substr(0, 4);
}

function showCalendar()
{
	if (document.getElementById("calendar").style.display == "none")
		document.getElementById("calendar").style.display = "block";
	else
		document.getElementById("calendar").style.display = "none";
}

function checkSelectedFlag(field, flag)
{
	var flag_arr = getFlagArray();
	this.src = "../images/"+flag+"_active.gif";
	for (var x = 0; x < flag_arr.length; ++x)
		document.getElementById(flag_arr[x]).src = "../images/flag_"+flag_arr[x]+".gif";
}

function copyText(element, element2, array, num)
{
	if (document.forms[formsField].elements[element2].selectedIndex!=num - 1)
	{
		document.forms[formsField].elements[element].value = array[document.forms[formsField].elements[element2].selectedIndex - num];
		if (document.forms[formsField].elements[element].value != "")
			fieldInputFocus(document.forms[formsField].elements[element]);
		else
			fieldInputBlur(document.forms[formsField].elements[element]);
	}
	else
	{
		document.forms[formsField].elements[element].value = "";
		fieldInputBlur(document.forms[formsField].elements[element]);
	}
}

function imageFilter(field)
{
	field.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)";
}

function filterNo(imageSelected, numImages)
{
	for (var x = 0; x < numImages; ++x)
		if (x != imageSelected)
			eval('document.forms[formsField].imgThumbnail'+x+'.style.filter = ""');
}

function tagMouseOver(field, className)
{
	if (className)
		field.className = className.concat(" tagMouseOver");
	else
		field.className = "innerTable tagMouseOver";
}

function tagMouseOut(field, className)
{
	if (className)
		field.className = className.concat(" tagMouseOut");
	else
		field.className = "innerTable tagMouseOut";
}

function buttonMouseOver(field, className)
{
	if (className)
		field.className = className.concat(" buttonMouseOver");
	else
		field.className = "buttonSubmit buttonMouseOver";
}

function buttonMouseOut(field, className)
{
	if (className)
		field.className = className.concat(" buttonMouseOut");
	else
		field.className = "buttonSubmit buttonMouseOut";
}

function openWindow(file, name, width, height)
{
	if (width != "")
		var left = (screen.width - width) / 2;
	else
		var left = 0;
	if (height != "")
		var top = (screen.height - height) / 2;
	else
		var top = 0;
	window.open(file, name, "location=no, menubar=no, tool=no, statusbar=no, resizable=yes, scrollbars=yes, width="+width+", height="+height+", left="+left+", top="+top);
}

function fieldInputFocus(field, className, str)
{

	if (typeof(className) == "undefined")
		className = "inputAddL";
	field.className = className.concat(" markField");
	if (field.value == str)
		field.value = "";
}

function fieldInputBlur(field, className, str, status)
{
	if (!field.value)
	{
		if (str)
		{
			field.defaultValue = str;
			field.value = str;
		}
		if (isNaN(status))
			var status = 1;
		if (status)
		{
			if (typeof(className) == "undefined")
				className = "inputAddL";
			field.className = className.concat(" unmarkField");
		}
	}
}

function setValue(element, str, className)
{
	if (!className)
		className = "inputAddL";
	if (document.forms[formsField].elements[element] && document.forms[formsField].elements[element].value && document.forms[formsField].elements[element].value != str)
		document.forms[formsField].elements[element].className = className.concat(" markField");
	else if (str)
		document.forms[formsField].elements[element].value = str;
}

/*
function setCheckbox(element, bool)
{
	document.forms[formsField].elements[element].checked = bool;
}
*/

function fieldSelectIsChanged(field, className)
{
	if (!className)
		className = "";
	if (!field.options[0].selected)
		field.className = className.concat(" markField");
	else if (field.disabled == false)
		field.className = className.concat(" unmarkField");
}

function fieldSelectWasChanged(field, className)
{
	if (!className)
		className = "";
	field.className = className.concat(" markField");
}

function fieldMultipleSelectIsChanged(field, className)
{
	if (!className)
		className = "";
	if (field.options[0].selected)
	{
		for (x = 1; x < field.options.length; ++x)
			field.options[x].selected = false;
		field.className = className.concat(" unmarkField");
	}
	else
		field.className = className.concat(" markField");
}

function disableFormFields(field, selectField, inputField, classSelectName, classInputName)
{
	if (!classInputName)
		classInputName = "";
	if (!classSelectName)
		classSelectName = "";
	if (field.value != "")
	{
		if (inputField)
		{
			document.forms[formsField].elements[inputField].disabled = true;
			document.forms[formsField].elements[inputField].className = classInputName.concat(" disable");
			document.forms[formsField].elements[inputField].value = "";
		}
		if (selectField)
		{
			document.forms[formsField].elements[selectField].disabled = true;
			document.forms[formsField].elements[selectField].className = classSelectName.concat(" disable");
			document.forms[formsField].elements[selectField].selectedIndex = 0;
		}
	}
	else
	{
		if (inputField)
		{
			document.forms[formsField].elements[inputField].disabled = false;
			document.forms[formsField].elements[inputField].className = classInputName.concat(" enable");
		}
		if (selectField)
		{
			document.forms[formsField].elements[selectField].disabled = false;
			document.forms[formsField].elements[selectField].className = classSelectName.concat(" enable");
			fieldSelectWasChanged(document.forms[formsField].elements[selectField]);
		}
	}
}

function disableFields(field_arr, selectElement_arr)
{
	var field_arr_len = 0;
	for (x = 0; x < field_arr.length; ++x)
		field_arr_len += document.forms[formsField].elements[field_arr[x]].value;
	if (field_arr_len > 0)
	{
		for (x = 0; x < selectElement_arr.length; ++x)
		{
			document.forms[formsField].elements[selectElement_arr[x]].disabled = true;
			document.forms[formsField].elements[selectElement_arr[x]].style.backgroundColor = "#EEEEEE";
		}
	}
	else
	{
		for (x = 0; x < selectElement_arr.length; ++x)
		{
			document.forms[formsField].elements[selectElement_arr[x]].disabled = false;
			document.forms[formsField].elements[selectElement_arr[x]].style.backgroundColor = "#FFFFFF";
		}
	}
}

function resetFields(field_arr, selectElement_arr)
{
	var field_arr_len = 0;
	for (x = 0; x < field_arr.length; ++x)
		field_arr_len += document.forms[formsField].elements[field_arr[x]].value;
	if (field_arr_len > 0)
	{
		for (x = 0; x < selectElement_arr.length; ++x)
		{
			document.forms[formsField].elements[selectElement_arr[x]].selectedIndex = 0;
			document.forms[formsField].elements[selectElement_arr[x]].style.backgroundColor = "#FFFFFF";
		}
	}
}

function resetInputFields(field_arr)
{
	for (x = 0; x < field_arr.length; ++x)
	{
		document.forms[formsField].elements[field_arr[x]].value = "";
		document.forms[formsField].elements[field_arr[x]].style.backgroundColor = "#FFFFFF";
	}
}

function sortCols(x, elementsField)
{
	var orderDirection = document.forms[formsField].elements[elementsField+"["+x+"]"].value;
	if (orderDirection == 1)
		var orderBy = -1;
	else if (orderDirection == -1)
		var orderBy = 0;
	else
		var orderBy = 1;
	document.forms[formsField].elements[elementsField+"["+x+"]"].value = orderBy;
	document.forms[formsField].submit();
}

function getIDs(field, hotelID_arr)
{
	var IDs = "";
	for (var x = 0; x < hotelID_arr.length; ++x)
	{
		if (document.forms[formsField].elements[field+"["+x+"]"].checked)
			IDs += hotelID_arr[x]+",";
	}
	IDs = IDs.substring(0, IDs.length - 1);
	return IDs;
}

function refreshSide(field, val)
{
	if (field != "")
		document.forms[formsField].elements[field].value = val;
	document.forms[formsField].submit();
}

function refreshFrame(num, field, val)
{
	if (parent.frames[num].document.forms[parent.frames[num].formsField])
	{
		parent.frames[num].document.forms[parent.frames[num].formsField].elements[field].value = val;
		parent.frames[num].document.forms[parent.frames[num].formsField].submit();
	}
	else
		parent.frames[num].location.reload();
}

function deleteEntry(field_arr, val_arr)
{
	for (var x = 0; x < field_arr.length; ++x)
	{
		if (field_arr[x] != "" && val_arr[x] != "")
			document.forms[formsField].elements[field_arr[x]].value = val_arr[x];
	}
	document.forms[formsField].submit();
}

/*
function checkRow(x, col, field, elementsField)
{
	if (document.forms[formsField].elements[elementsField+"["+x+"]"].checked)
	{
		document.forms[formsField].elements[elementsField+"["+x+"]"].checked = false;
		field.style.backgroundColor = col;
	}
	else
	{
		document.forms[formsField].elements[elementsField+"["+x+"]"].checked = true;
		field.style.backgroundColor = "#DDDDDD";
	}
}
*/

function getClassName(className)
{
	return className == "unmarkField" ? "markField" : "unmarkField";
}

function checkRadiobox(x, size, field, className)
{
	if (!dontCheck)
	{
		if (!field)
			field = "record";
		if (!className)
			className = "list";
		if (size > 1)
		{
			var col2;
			for (y = 0; y < size; ++y)
			{
				var newClassName = getClassName(newClassName);
				document.forms[formsField].radiobox[y].checked = false;
				document.getElementById(field + y).className = className.concat(" " + newClassName);
			}
			document.forms[formsField].radiobox[x].checked = true;
			document.forms[formsField].checkedRadioBox.value = x;
			document.getElementById(field + x).className = className.concat(" selectField");
		}
		else
		{
			document.forms[formsField].radiobox.checked = true;
			document.getElementById(field + x).className = className.concat(" selectField");
		}
	}
	dontCheck = 0;
}

function checkIfRadioboxIsChecked(x, size, field, newClassName, className)
{
	if (size > 1)
	{
		if (!field)
			field = "record";
		if (!className)
			className = "list";
		if (!document.forms[formsField].radiobox[x].checked)
		{
			if (newClassName)
				document.getElementById(field+x).className = className.concat(" " + newClassName);
			else
				document.getElementById(field+x).className = className.concat(" mouseOverField");
		}
	}
}

/*
// check/uncheck all checkboxes
function checkAll(elementsField, columnID, checkBoxLen)
{
	var checked = 0;
	for (var x = 0; x < checkBoxLen; ++x)
	{
		if (document.forms[formsField].elements[elementsField+"["+x+"]"].checked)
			checked++;
	}
	if (checked == checkBoxLen)
	{
		for (var x = 0; x < checkBoxLen; ++x)
		{
			document.forms[formsField].elements[elementsField+"["+x+"]"].checked = false;
			if (x % 2 == 0)
				eval('document.getElementById("'+columnID+x+'").style.backgroundColor = "#FFFFFF"');
			else
				eval('document.getElementById("'+columnID+x+'").style.backgroundColor = "#F6F6F6"');
		}
	}
	else
	{
		for (var x = 0; x < checkBoxLen; ++x)
		{
			document.forms[formsField].elements[elementsField+"["+x+"]"].checked = true;
			eval('document.getElementById("'+columnID+x+'").style.backgroundColor = "#DDDDDD"');
		}
	}
}
*/
