var object_preload = {};
var standard_right_pages = new Array();

var internet_error_text = "Een onverwachte fout is opgetreden. Het kan gebeuren dat uw browser sessions heeft verloren. Probeer het nog een keer alstublieft.";
var ajaxErrorTimes = 0;
function handleAjaxError(calledBy)
{
	ajaxErrorTimes ++;
	if(ajaxErrorTimes < 5)
	{
		eval(calledBy);
	}
	else
	{
		ajaxErrorTimes = 0;
		showAlert(internet_error_text);
	}
}


function trim(astring)
{
	return new String(astring).replace(/^\s*/, "").replace(/\s*$/, "");
}


function logIn(login, password, remember, url)
{
	var remember = remember || 1;
	
	if( ("" == trim(login)) || ("" == trim(password)) )
	{
		showAlert("U dient E-mailadres en wachtwoord in te vullen.");
		return false;
	}
	
	$.post("../includes/panels/_login_check.php", { content:1, login: login, password: password, remember: remember },
		function(reply)
		{
			if("ok" == reply)
			{
				//alert("U bent nu ingelogd.");
				
				loadPage_default(url, object_preload);
				//loadPage("td_menu_login", "../includes/menu/menu_login", object_preload);
			} else
			{
				if("" == trim(reply))
				{
					reply = "Een onverwachte fout is opgetreden. Het kan gebeuren dat uw browser sessions heeft verloren. Probeer het nog een keer alstublieft.";
				}
				showAlert(reply);
			}
		}
	);
}
function logOut(lo_hash)
{
	$.post("../includes/helpers/get_logged_out.php", { logout: "yes", lo_hash: lo_hash },
		function(reply)
		{
			if("ok" == reply)
			{
				//alert("U bent nu uitgelogd.");
				loadPage("td_menu_login", "../includes/menu/menu_login", object_preload);
				showOptions(false);
			} else
			{
				if("" == trim(reply))
				{
					//reply = "Een onverwachte fout is opgetreden. Het kan gebeuren dat uw browser sessions heeft verloren. Probeer het nog een keer alstublieft.";
					handleAjaxError("logOut('" + lo_hash + "')");
				} else
				{
					showAlert(reply);
				}
			}
		}
	);
}


function showPopup(page)
{
	$.post("../popup/" + page + ".php", { },
		function(reply)
		{
			if("" != trim(reply))
			{
				showAlert(reply, page, 500);
			}
		}
	);
}


function checkKeyTextLogin(event, special_char, callback)
{
	//alert(event.keyCode);
	if(special_char == event.keyCode)
	{
		eval(callback);
	}
	if( (50 == event.keyCode) || (190 == event.keyCode) )
	{
		return true;
	}
	return checkKeyText(event);
}

function checkKeyText(event)
{
	// control characters
	if(event.keyCode < 33)
	{
		return true;
	}
	if( (event.keyCode < 41) && (event.keyCode > 34) )
	{
		return true;
	}

	// - or _, ' or ", DELETE
	if( (189 == event.keyCode) || (222 == event.keyCode) || (46 == event.keyCode))
	{
		return true;
	}
	// letters
	if((event.keyCode < 91) && (event.keyCode > 64))
	{
		return true;
	}
	// numbers
	if((!event.shiftKey) && ((event.keyCode < 58) && (event.keyCode > 47)) )
	{
		return true;
	}
	// numbers on numpad
	if( (event.keyCode < 106) && (event.keyCode > 95) )
	{
		return true;
	}

	return false;
}

function checkKeyNumber(event, with_point)
{
	var width_point = with_point || 1;
	
	//alert(event.keyCode);
	// control characters
	if(event.keyCode < 33)
	{
		return true;
	}
	if( (event.keyCode < 41) && (event.keyCode > 36) )
	{
		return true;
	}

	if(1 == with_point)
	{
		// . (also on numpad)
		if((190 == event.keyCode) || (110 == event.keyCode))
		{
			return true;
		}
	}
	
	// - or _, ' or ", DELETE
	if((189 == event.keyCode) || (222 == event.keyCode) || (46 == event.keyCode))
	{
		return true;
	}

	// numbers
	if((!event.shiftKey) && ((event.keyCode < 58) && (event.keyCode > 47)) )
	{
		return true;
	}
	// numbers on numpad
	if( (event.keyCode < 106) && (event.keyCode > 95) )
	{
		return true;
	}

	return false;
}


function showAlert(message, title, width)
{
	var width = width || 300;
	
	var alert_header = "<br/>";
	var alert_footer = '<br/><br/><div style="float:right;"><a id="close_alert" href="javascript:void(0)" onclick="$(\'#div_alert\').dialog(\'close\');">sluiten<img src="../images/icons/delete.png" align="absmiddle" style="border:0px;" /></a></div>';
	
	var title = title || "Fout";
	
	$("#div_alert").dialog("option", "width", width);
	$("#div_alert").dialog("option", "modal", true);
	$("#div_alert").dialog("option", "resizable", false);
	$("#div_alert").dialog("option", "title", title);
	$("#div_alert").bind("dialogclose", function(event, ui)
									{
										return false;
									}
					);
	
	message = alert_header + message + alert_footer;
	$("#div_alert").html(message);
	$("#div_alert").dialog("open");

	//alert(message);
}

function loadPage_default(file, object_params, get_params)
{
	var object_params = object_params || {};
	var get_params = get_params || "";
	
	loadPage("td_main", file, object_params, get_params)
}
function loadPage(container_id, file, object_params, get_params)
{
	var object_params = object_params || {};
	var get_params = get_params || "";
	file = decodeURIComponent(encodeURIComponent(file));
	file = new String(file).replace(/ /g, "%20");
	
	$("#" + container_id).load(file + ".php?nd=" + new Date().getTime() + "&content=1" + get_params, object_params);
	//$("#div_hidden").css("display", "none");
}

function getTimestamp(date, hour, minute)
{
	var date_parts = new String(date).split("-");
	return new Date(parseInt(1 * date_parts[2]), (parseInt(1 * date_parts[1]) - 1), parseInt(date_parts[0]), parseInt(hour), parseInt(minute), 0, 0).getTime();
}



var userAgent = navigator.userAgent.toLowerCase();
var browser = {version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1], safari:/webkit/.test(userAgent), opera:/opera/.test(userAgent), msie:/msie/.test(userAgent)&&!/opera/.test(userAgent), mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};


/*
* used to count the number of chars in textelement
*/
function numberChars(textarea_element, span_element_id, max_characters)
{
	var diff_characters = max_characters - parseInt(new String(trim(textarea_element.value)).length);
	if(diff_characters >= 0)
	{
		document.getElementById(span_element_id).innerHTML = diff_characters + " resterend";
		document.getElementById(span_element_id).className = "dim";
	} else
	{
		diff_characters *= -1;
		document.getElementById(span_element_id).innerHTML = diff_characters + " te veel";
		document.getElementById(span_element_id).className = "alert";
	}
}


/*
* functions for slide show
*/
function goPhoto(bg_image_element_id, prefix, extension, number_change)
{
	var second_bg_image_element_id = bg_image_element_id + "_second";
	
	current_photo_number += number_change;
	if(current_photo_number < 0)
	{
		current_photo_number = photos_site.length - 1;
	}
	if(current_photo_number >= photos_site.length)
	{
		current_photo_number = 0;
	}
	
	$("#" + second_bg_image_element_id).fadeTo(1, 0);
	document.getElementById(second_bg_image_element_id).style.background = "url(" + prefix + photos_site[current_photo_number] + extension + ")";
	document.getElementById(second_bg_image_element_id).style.backgroundColor = "#ffffff";
	document.getElementById(second_bg_image_element_id).style.backgroundPosition = "center center";
	document.getElementById(second_bg_image_element_id).style.backgroundRepeat = "no-repeat";

	$("#" + second_bg_image_element_id).fadeTo(1750, 1, function()
		{
			document.getElementById(bg_image_element_id).style.background = "url(" + prefix + photos_site[current_photo_number] + extension + ")";
			document.getElementById(bg_image_element_id).style.backgroundColor = "#ffffff";
			document.getElementById(bg_image_element_id).style.backgroundPosition = "center center";
			document.getElementById(bg_image_element_id).style.backgroundRepeat = "no-repeat";
			$("#" + bg_image_element_id).fadeTo(1, 1);
			$("#" + second_bg_image_element_id).fadeTo(1, 0);
			//$("#" + bg_image_element_id).fadeTo(200, 1);
		}
	);
}
var slide_show;
function startSlideShow(bg_image_element_id, prefix, extension)
{
	slide_show = setInterval('goPhoto("' + bg_image_element_id + '", "' + prefix + '", "' + extension + '", 1)', 5000);
}


/*
* sub-menu functions
*/
function openSubMenu(parent_id)
{
	var offsets = _getOffsets(parent_id);
	if(document.getElementById("sub_" + parent_id))
	{
		$("#sub_" + parent_id).css("left", offsets[0] + "px");
		$("#sub_" + parent_id).css("top", offsets[1] + document.getElementById(parent_id).offsetHeight - 3 + "px");
		$("#sub_" + parent_id).css("width", document.getElementById(parent_id).offsetWidth - 22 + "px");
	
		//$("#sub_" + parent_id).slideToggle("fast");
		//document.getElementById("sub_" + parent_id).style.display = "block";
		$("#sub_" + parent_id).stop(false, true).fadeIn(100, function()
				{
					$("#sub_" + parent_id).css("filter", "alpha(opacity=90)");
					$("#sub_" + parent_id).css("-moz-opacity", "0.90");
				}
			);
	}
	closeAllSubMenus(parent_id);
}
function closeAllSubMenus(parent_id)
{
	var parent_id = parent_id || 0;
	var submenus = $("div[id^='sub_']");
	for(var ei = 0; ei < submenus.length; ei ++)
	{
		var id = new String(submenus[ei].id).replace("sub_", "");
		if(parent_id != id)
		{
			//submenus[ei].style.display = "none";
			$(submenus[ei]).stop(false, true).fadeOut(100);
		} else
		{
			//alert(id);
		}
	}
}
$(function()
{
	$(".div_menu_top_item").hover(function()
	{
		$(this).stop(false, false);
		openSubMenu(this.id);
	},
		function()
		{
			
		}
	);
	
	
	$(".div_sub_menu_panel").hover(function()
	{

	},
		function()
		{
			$(this).stop(false, false).fadeOut(100);
		}
	);

	$("#div_bg").hover(function()
	{
		closeAllSubMenus(0);
	});
});
