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)
{
	var remember = remember || 1;
	
	if( ("" == trim(login)) || ("" == trim(password)) )
	{
		showAlert("U dient E-mailadres en wachtwoord in te vullen.");
		return false;
	}
	
	$.post("../includes/helpers/get_logged_in.php", { login: login, password: password, remember: remember },
		function(reply)
		{
			if("ok" == reply)
			{
				//alert("U bent nu ingelogd.");
				loadPage("td_menu_login", "../includes/menu/menu_login", object_preload);
				showOptions(true);
			} 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 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 > 36) )
	{
		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)
{
	var alert_header = "<br/>";
	var alert_footer = '<br/><br/><div align="center"><a id="close_alert" href="javascript:void(0)" onclick="$(\'#div_alert\').dialog(\'close\');">OK</a><br/>';
	
	var title = title || "Fout";
	
	$("#div_alert").dialog("option", "width", 300);
	$("#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);
}


/*
* 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 + "px");
	
		//$("#sub_" + parent_id).slideToggle("fast");
		//document.getElementById("sub_" + parent_id).style.display = "block";
		$("#sub_" + parent_id).stop(false, true).fadeIn("fast", 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].id).hide("fast");
			//submenus[ei].style.display = "none";
			$(submenus[ei]).stop(false, true).fadeOut("fast");
		} else
		{
			//alert(id);
		}
	}
}
$(function()
{
	$(".div_sub_menu_panel").hover(function()
	{

	},
		function()
		{
			$(this).stop(false, true).fadeOut("fast");
		}
	);

	$(".div_image_random_cover, .div_header_logo, .td_main_vr").hover(function()
	{
		closeAllSubMenus(0);
	});
});

