function addDiv(container_id, div_id)
{
	var html = '<div id="' + div_id + '"></div>';
	
	$("#" + container_id).append(html);
}


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 openMenu(admin_page, sub_menu, id)
{
	if(id)
	{
		loadPage_default("../admin/index", {admin_page:admin_page, id:id});
	} else
	{
		loadPage_default("../admin/index", {admin_page:admin_page});
	}

	$("div[id^='div_menu_']").hide("fast");
	if(sub_menu && document.getElementById("div_menu_" + sub_menu))
	{
		$("#div_menu_" + sub_menu).show("fast");
	}
}


function openWindow(file, parameters, title, backContainer, backToPage, backParams, width)
{
	var backParams = backParams || {};
	var width = width || 600;
	var closed = 0;
	
	$("#div_dialog").dialog("option", "width", width);
	//$("#div_dialog").dialog("option", "position", [10, 10]);
	$("#div_dialog").dialog("option", "modal", true);
	$("#div_dialog").dialog("option", "resizable", false);
	$("#div_dialog").dialog("option", "title", title);
	$("#div_dialog").bind("dialogclose", function(event, ui)
									{
										if(backContainer && backToPage && (0 == closed))
										{
											loadPage(backContainer, backToPage, backParams);
											closed = 1;
										}
										//alert(event);
									}
					);
	$("#div_dialog").load(file + ".php?nd=" + new Date().getTime() + parameters, "", function()
									{
										$("#div_dialog").dialog("open");
									}
					);
}

function closeWindow()
{
	$("#div_dialog").dialog("close");
}


function toggleView(children_type, children_id)
{
	try
	{
		var children = $(children_type + "[id^='" + children_id + "']");
		var first_child = children[0];
		
		if("none" == first_child.style.display)
		{
			$(children_type + "[id^='" + children_id + "']").css("display", "");
		} else
		{
			$(children_type + "[id^='" + children_id + "']").css("display", "none");
		}
	}
	catch(e)
	{
		
	}
}


function showOptions(logged_in)
{
	if(logged_in)
	{
		$("div[id^='div_photo_notlogged_']").css("display", "none");
		$("div[id^='div_photo_logged_']").css("display", "block");
		
		var fav_containers = $("span[id^='container_favorites_']");
		var post_query = "";
		for(var icf = 0; icf < fav_containers.length; icf ++)
		{
			var id = new String(fav_containers[icf].id).replace("container_favorites_", "");
			post_query += "&ids[" + icf + "]=" + id;
		}
		post_query = new String(post_query).substring(1);

		//alert(post_query);
		//return;
		
		if(post_query)
		{
			$.post("../includes/helpers/get_available_favorites.php", post_query,
				function(reply)
				{
					var html_template = '<a href="javascript:void(0)" title="%title%" onclick="favorites(\'%action%\', %id%)">%innerHTML%</a>';
					for(var icf = 0; icf < fav_containers.length; icf ++)
					{
						var id = new String(fav_containers[icf].id).replace("container_favorites_", "");
						if(-1 == new String(reply).indexOf("," + id + ","))
						{
							var html = new String(html_template).replace('%action%', 'add').replace('%id%', id).replace('%innerHTML%', "<img src='../images/icons/heart_add.png' alt='aan favorieten toevoegen' />").replace('%title%', 'aan favorieten toevoegen');
							$("#container_favorites_" + id).html(html);
						} else
						{
							var html = new String(html_template).replace('%action%', 'remove').replace('%id%', id).replace('%innerHTML%', "<img src='../images/icons/heart_delete.png' alt='uit favorieten verwijderen' />").replace('%title%', 'uit favorieten verwijderen');
							$("#container_favorites_" + id).html(html);
						}
					}
				}
			);
		}
	} else
	{
		$("div[id^='div_photo_logged_']").css("display", "none");
		$("div[id^='div_photo_notlogged_']").css("display", "block");
		$("div[id^='container_favorites_']").html("<br/>");
	}
}


function showLastSearches(parent_id)
{
	if("block" == document.getElementById("div_hidden").style.display)
	{
		$("#div_hidden").css("display", "none");
	} else
	{
		var offsets = _getOffsets(parent_id);
		var left = parseInt(offsets[0]);
		var top = parseInt(offsets[1]);
	
		//var scrollTop = document.getElementById("div_main_right").scrollTop;
		var scrollTop = 0;
	
		$("#div_hidden").load("../home/last_searches.php", '', function()
							{
								$("#div_hidden").css("left", left + "px");
								$("#div_hidden").css("top", top - scrollTop + document.getElementById(parent_id).offsetHeight + "px");
								$("#div_hidden").css("display", "block");
							}
					);
	}
}




var current_type = new Array();
var current_selector_type = new Array();
var current_selector_container_id = new Array();

var current_prefix = new Array();
var current_value_field = new Array();
var current_show_field = new Array();

var current_inside_div = new Array();
var current_inside_div_content = new Array();

var suffix_inside_div = "_inside";

function startAddition(type, prefix, selector_type, selector_container_id, value_field, show_field, parent_container_id, new_div, parameters)
{
	var file = "../admin/" + type;
	
	if(!parameters)
	{
		parameters = {addition:1};
	}
	
	current_type.push(type);
	current_selector_type.push(selector_type);
	current_selector_container_id.push(selector_container_id);
	
	current_prefix.push(prefix);
	current_value_field.push(value_field);
	current_show_field.push(show_field);
	
	$.post("../includes/helpers/start_addition.php", { type:type, selector_type:selector_type, value_field:value_field, show_field:show_field },
		function(reply)
		{
			if("ok" == reply)
			{
				if(true == new_div)
				{
					current_inside_div.push(parent_container_id + suffix_inside_div);
					addDiv(parent_container_id, parent_container_id + suffix_inside_div);
					current_inside_div_content.push("");
				} else
				{
					current_inside_div.push(parent_container_id);
					current_inside_div_content.push($("#" + current_inside_div).html());
				}
				loadPage(current_inside_div, file, parameters);
			} else
			{
				showAlert(reply);
			}
		}
	);
}
function selectAddition(type, value, show, not_close, adjust_value, empty_value)
{
	$.post("../includes/helpers/stop_addition.php", { type:type },
		function(reply)
		{
			if("ok" == reply)
			{
				var this_type = current_type.pop();
				var this_selector_type = current_selector_type.pop();
				var this_selector_container_id = current_selector_container_id.pop();

				var this_prefix = current_prefix.pop();
				var this_value_field = current_value_field.pop();
				var this_show_field = current_show_field.pop();

				var this_inside_div = current_inside_div.pop();
				var this_inside_div_content = current_inside_div_content.pop();

				switch(this_selector_type)
				{
					case "select":
						$("#" + this_selector_container_id).load("../admin/data/get_" + type + "_" + this_selector_type + ".php?default_id=" + value + "&prefix=" + this_prefix);
						break;
						
					case "selector":
						//var selector_id = this_prefix + "selector_input" + "_" + type;
						if(selectors[this_selector_container_id])
						{
							input_selector = selectors[this_selector_container_id];
						
							input_selector.setVar('DefaultId', value);
							input_selector.getInfo();
							if(input_selector.isOpen())
							{
								input_selector.open();
							}
						}
						if(empty_value)
						{
							if(value == document.getElementById(this_value_field).value)
							{
								document.getElementById(this_value_field).value = "";
								if(this_show_field)
								{
									document.getElementById(this_show_field).value = show;
								}
							}
						} else if(adjust_value)
						{
							if(value == document.getElementById(this_value_field).value)
							{
								if(this_show_field)
								{
									document.getElementById(this_show_field).value = show;
								}
							}
						} else
						{
							document.getElementById(this_value_field).value = value;
							if(this_show_field)
							{
								document.getElementById(this_show_field).value = show;
							}
						}
						break;
				}

				if(!not_close)
				{
					if(document.getElementById(this_inside_div))
					{
						document.getElementById(this_inside_div).innerHTML = this_inside_div_content;
						if(suffix_inside_div == this_inside_div.substr(new String(this_inside_div).length - new String(suffix_inside_div).length, new String(suffix_inside_div).length))
						{
							this_inside_div = null;
						}
					}
				}
			} else
			{
				showAlert(reply);
			}
		}
	);
}

function closeAllAdditions()
{
	while(current_inside_div.length > 0)
	{
		this_type = closeLastAddition();
	}
}

function closeAddition(type)
{
	this_type = "none";
	do
	{
		this_type = closeLastAddition();
	} while(type != this_type);
}

function closeLastAddition()
{
	this_type = current_type.pop();
	this_selector_type = current_selector_type.pop();
	this_selector_container_id = current_selector_container_id.pop();

	this_prefix = current_prefix.pop();
	this_value_field = current_value_field.pop();
	this_show_field = current_show_field.pop();
	
	this_inside_div = current_inside_div.pop();
	this_inside_div_content = current_inside_div_content[0];
	this_inside_div_content_waste = current_inside_div_content.pop();

	$.post("../includes/helpers/stop_addition.php", { type:this_type });
	
	if(document.getElementById(this_inside_div))
	{
		document.getElementById(this_inside_div).innerHTML = this_inside_div_content;
			
		if(suffix_inside_div == this_inside_div.substr(new String(this_inside_div).length - new String(suffix_inside_div).length, new String(suffix_inside_div).length))
		{
			if("td_main_right" != this_inside_div)
			{
				var to_dump = document.getElementById(this_inside_div);
				to_dump = null;			
			}
		}
	}

	return this_type;
}


function openCloseSubmenu(submenu_div_id, submenu_img_id)
{
	if("block" == document.getElementById(submenu_div_id).style.display)
	{
		document.getElementById(submenu_img_id).src = "../images/bg/arrow_up_menu.gif";
	} else
	{
		document.getElementById(submenu_img_id).src = "../images/bg/arrow_down_menu.gif";
	}
	$("#" + submenu_div_id).slideToggle("fast");
}



// opens and closes sub divs
function openCloseGroup(id, control_element_id, container_element_id, control_rule, array_controls)
{
	var containers_status_array = array_controls[0];
	var control_status_array = array_controls[1];
	
	control_element_id += id;
	container_element_id += id;
	
	if(containers_status_array[1] == document.getElementById(container_element_id).style.display)
	{
		eval("document.getElementById(control_element_id)." + control_rule + "= '" + control_status_array[0] + "';");
		$("#" + container_element_id).slideToggle("fast");
	} else
	{
		eval("document.getElementById(control_element_id)." + control_rule + "= '" + control_status_array[1] + "';");
		if(browser.msie)
		{
			$("#" + container_element_id).css("display", "block");
		} else
		{
			$("#" + container_element_id).slideToggle("fast");
		}
	}
}


/*
* slider functions
*/
var Scroller = function(container_id, width, number, left_button_id, right_button_id, class_active_left, class_active_right, class_idle_left, class_idle_right)
{
	this.ContainerId = container_id;
	this.Width = width;
	this.Number = number;
	this.ClassActiveLeft = class_active_left || "mouseover";
	this.ClassActiveRight = class_active_right || "mouseover";
	this.ClassIdleLeft = class_idle_left || "";
	this.ClassIdleRight = class_idle_right || "";
	
	$("#" + this.ContainerId).animate( { scrollLeft:"0px" }, 10);
	
	this.LeftButton = document.getElementById(left_button_id);
	this.RightButton = document.getElementById(right_button_id);

	var scroller = this;
	
	var el = this.LeftButton;
	var type = "click";
	var handle = function()
		{
	        scroller.scrollLeft();
	    };
	try
	{
		if(el.addEventListener)
		{
			el.addEventListener(type, handle, false);
		} else if(el.attachEvent)
		{
			el.attachEvent("on" + type, handle);
		}
	} catch(e)
	{
	}

	var el = this.RightButton;
	var type = "click";
	var handle = function()
		{
	        scroller.scrollRight();
	    };
	try
	{
		if(el.addEventListener)
		{
			el.addEventListener(type, handle, false);
		} else if(el.attachEvent)
		{
			el.attachEvent("on" + type, handle);
		}
	} catch(e)
	{
	}
}
/**
* scrolls to left
*/
Scroller.prototype.scrollLeft = function()
{
	var container = document.getElementById(this.ContainerId);
	var left = container.scrollLeft;
	var newleft = (left - this.Width);
	
	$("#" + this.ContainerId).animate( { scrollLeft:newleft + "px" }, 500);
	if(newleft <= 0)
	{
		$(this.LeftButton).removeClass(this.ClassActiveLeft);
		if("" != this.ClassIdleLeft)
		{
			$(this.LeftButton).addClass(this.ClassIdleLeft);
		}
	}
	if(this.Number > 1)
	{
		if("" != this.ClassIdleRight)
		{
			$(this.RightButton).removeClass(this.ClassIdleRight);
		}
		$(this.RightButton).addClass(this.ClassActiveRight);
	}
	//$("#test").html(newleft);
}
/**
* scrolls to right
*/
Scroller.prototype.scrollRight = function()
{
	var container = document.getElementById(this.ContainerId);
	var left = container.scrollLeft;
	var newleft = (left + this.Width);
	
	$("#" + this.ContainerId).animate( { scrollLeft:newleft + "px" }, 500);
	if(newleft >= this.Width * (this.Number - 1))
	{
		$(this.RightButton).removeClass(this.ClassActiveRight);
		if("" != this.ClassIdleRight)
		{
			$(this.RightButton).addClass(this.ClassIdleRight);
		}
	}
	if(this.Number > 1)
	{
		if("" != this.ClassIdleLeft)
		{
			$(this.LeftButton).removeClass(this.ClassIdleLeft);
		}
		$(this.LeftButton).addClass(this.ClassActiveLeft);
	}
	//$("#test").html(newleft);
}

