/*t_actions.js*/

var var_load_user = 0;
var var_load_loc = 0;
var var_load_msg = 0;
var var_load_add = 0;
var var_load_view = 0;
var var_load_info = 0;
var var_load_help = 0;
var var_load_intro = 0;
var var_load_treel = 0;
var var_load_pref = 0;
var var_load_tag = 0;
var var_load_link = 0;
var var_load_set = 0;
var var_load_group = 0;
var var_load_intro_group = 0;

function Screen_InitSideBarUserProfile(userid)
{
	if(var_load_user == 0){load_container("_user");var_load_user = 1;}
	load_content_user(userid);
}
function Screen_ShowGroupDetails(groupid)
{
	if(var_load_group == 0){load_container("_group");var_load_group = 1;}
	load_content_groupprofile(groupid);
	//alert ("Apply group prefs: " + groupid);
	ApplyGroupPrefs (groupid, function (prefs) {
		//alert ("Groups loaded, executing callback function");
		for (key in prefs) {
		//alert ("var " + key + " = " + prefs[key]);
			if (typeof(prefs[key]) != null) {
			eval ("var " + key + " = " + prefs[key]);
			}
		}
		thecenter = new GLatLng(pref_lat,pref_long);
//		if (typeof(pref_map) != null) { var pref_map = 1; }
		map.setCenter(thecenter,pref_zoom);
/*		switch (pref_map) {
			case 1:
				setmaptypeonsatellite()
				break;
			case 2:
				setmaptypeonmap()
				break;
			case 3:
				setmaptypeonhybrid()
				break;
			case 4:
				setmaptypeonterrain()
				break;
		}
*/	});
}


function Screen_ShowLocationDetails(locid)
{
	if(var_load_loc == 0){load_container("_loc");var_load_loc = 1;}
	load_content_loc(locid);
}

function Screen_ShowMessageDetails(messageid,attachedload, from_container)
{
	
	
	debug("ShowMessage: " + messageid + " , " + attachedload)

	mapsystem.getMessage(messageid,function(msg)
	{
			/*
			if (selected_marker != 0) 
			{
				mapsystem.RestoreMarker (selected_marker);				
				selected_marker = 0;
			}
			
			if(from_container!= true)
			{
			selected_marker = msg.location_id
			mapsystem.ColorMarker(selected_marker, "green")
			}
			*/
			for(i	in	msg.attached_to_messages_ids)
			{
					Screen_ShowMessageDetails(msg.attached_to_messages_ids[i],msg.id)
					return
			}
			
						
		if(var_load_msg == 0){load_container("_msg");var_load_msg = 1;}
		load_content_msg(messageid,attachedload);
	}
	);
}

function Screen_Add_Message(id,lat,lng)
{
//	t_user_getid_from_domain(function(domain_user_id)
//	{
//		if(domain_user_id == -1 || domain_user_id == loggedin_id)
//		{
			if(treelzsystem	&&	treelzsystem.treelersocial)
			{
					if(var_load_add == 0){load_container("_add");var_load_add = 1}
					load_content_add(id,lat,lng)
			}
			else
			{
					show_treelz_alert("not_loggedin_msg")
			}
			
//		}
//		else
//		{
//			show_treelz_alert("not_domain")
//		}
//	}
//	);
}

function show_overview_fm()
{
	if(var_load_view == 0){load_container("_view");var_load_view = 1}
	load_content_view()
}
function show_overview_fm_groups(groupid)
{
	if(var_load_view == 0){load_container("_view");var_load_view = 1}
	load_content_view_groups(groupid)
}


function show_info_container(notonstartup)
{
	if(var_load_info == 0){load_container("_info");var_load_info = 1}
	load_content_info(notonstartup)
}

function show_help_container()
{
	if(var_load_help == 0){load_container("_help");var_load_help = 1}
	load_content_help()
}

function show_intro_container()
{
	if(var_load_intro == 0){load_container("_intro");var_load_intro = 1}
	load_content_intro()
}

function Screen_ShowTreel(treelid,userid,URL)
{
	//alert ("ShowTreel");
	if(var_load_treel == 0){load_container("_treel");var_load_treel = 1}
	load_content_treel(treelid,userid,URL)
}

function show_preferences()
{
	if(var_load_pref == 0){load_container("_pref");var_load_pref = 1}
	load_content_pref()
}

function Screen_ShowTagMessage(userid,tagid)
{
	if(var_load_tag == 0){load_container("_tag");var_load_tag = 1}
	load_content_tag(userid,tagid)
}

function fill_mail_link_div()
{
	if(var_load_link == 0){load_container("_link");var_load_link = 1}
	load_content_link()
}

function open_screen_create_group()
{
		if(treelzsystem.treelersocial)
		{
			if(var_load_set == 0){load_container("_set");var_load_set = 1}
			show_create_group()
		}
		else
		{
			show_treelz_alert("not_loggedin_create_group")
		}
}

function open_screen_edit_group(group_id)
{
	if(var_load_set == 0){load_container("_set");var_load_set = 1}
	show_edit_group(group_id)
}

function open_screen_overview_group(group_id)
{
	if(var_load_view == 0){load_container("_view");var_load_view = 1}
	show_overview_group(group_id)
}
function open_screen_intro_group(group_id)
{
	if(var_load_intro_group == 0){load_container("_intro");var_load_intro_group = 1}
	show_intro_group(group_id)
}








function clickedon_message(msg, wiki)
	{
		if(msg)
		{
		fill_titel_message(msg)
		}
		if(wiki)
		{
		fill_titel("_msg", "Wikipedia article")
		}
		hide_container_onscreen("_info")
		hide_container_onscreen("_add")
//		Screen_ShowLocationDetails(msg.location_id)
	}
function clickedon_location()
	{ 	
	//	hide_container_onscreen("_info")
		fill_titel("_loc", "this location")

	}
function clickedon_addmessage()
	{
		fill_titel("_add", "new message")
		hide_container_onscreen("_info")
		hide_container_onscreen("_msg")
	}
function clickedon_overview()
	{
		fill_titel("_view", "overview")
		hide_container_onscreen("_user")
		hide_container_onscreen("_treel")
		hide_container_onscreen("_group")
	}
function clickedon_overview_groups(groupid)
	{
		fill_titel_overview_group(groupid)		
		
		hide_container_onscreen("_user")
		hide_container_onscreen("_treel")
		hide_container_onscreen("_group")
	}
function clickedon_user(gevondenuser)
	{
		fill_titel_userprofile(gevondenuser)
		hide_container_onscreen("_view")
		hide_container_onscreen("_treel")
		hide_container_onscreen("_group")
	}
function clickedon_selection()
	{
	}
function clickedon_smallpicture()
	{
	}
function clickedon_largepicture()
	{
	}
function clickedon_info()
	{
		fill_titel("_info", "my info")
		
		hide_container_onscreen("_msg")
		hide_container_onscreen("_add")
		hide_container_onscreen("_loc")
	}
function clickedon_pref()
{
		fill_titel("_pref", "my preferences")
		hide_container_onscreen("_msg")
		hide_container_onscreen("_add")
		hide_container_onscreen("_loc")
}

	
function clickedon_info_loggedout()
	{
		hide_container_onscreen("_msg")
		hide_container_onscreen("_add")
		hide_container_onscreen("_loc")
	}
	
function clickedon_help()
	{
		fill_titel("_help", "getting_started")
		hide_container_onscreen("_intro")
		hide_container_onscreen("_link")
		hide_container_onscreen("_set")
	}
function clickedon_treel(treelid, userid)
	{
		fill_titel_treel(treelid, userid)
		hide_container_onscreen("_user")
		hide_container_onscreen("_view")
		hide_container_onscreen("_tag")
		hide_container_onscreen("_group")
	}
function clickedon_intro()
	{
		hide_container_onscreen("_help")
		hide_container_onscreen("_link")
		hide_container_onscreen("_set")
	}
function clickedon_tag(tagid)
	{
		fill_titel_tag(tagid)
		hide_container_onscreen("_view")
		hide_container_onscreen("_treel")
	}
function clickedon_link()
{
		hide_container_onscreen("_intro")
		hide_container_onscreen("_help")
		hide_container_onscreen("_set")
}
function clickedon_set()
{
		hide_container_onscreen("_intro")
		hide_container_onscreen("_help")
		hide_container_onscreen("_link")
}
function clickedon_group(gevondengroup)
{
		fill_titel_groupprofile(gevondengroup)
		hide_container_onscreen("_view")
		hide_container_onscreen("_treel")
		hide_container_onscreen("_user")
}/*t_categories.js*/

		function fill_category_div(type)
		{
				var thediv = document.getElementById("select_category_div_"+type);
					thediv.innerHTML = ''
				
				var category_select  = createElement(thediv,"category_select","button_category_"+type,'a')
					category_select.innerHTML = getTrans.Translate("Select category")
					category_select.href = "javascript:hideorshow_div_pos_div_gen_"+type+"()"
					
				
				var pos_div_gen  = createElement(thediv,"pos_div","pos_div_gen_"+type,'div') // deze div is als het ware het anchor point voor de menuutjes die verschijnen

				load_categories_covering(type)
		}
		function load_categories_covering(type)
		{
				var thediv = document.getElementById("select_category_div_"+type);
				var pos_div_gen = document.getElementById('pos_div_gen_'+type);
				var thebutton = document.getElementById('button_category_'+type);

//				var buttonW = thebutton.offsetWidth
				var buttonW = 55

				var category_covering_div  = createElement(pos_div_gen,"category_covering_div","category_covering_div_"+type,'div')
				category_covering_div.style.left = buttonW	- 10 //zodat het covering categories menuutje altijd direct rechts naast de button zit, ook als deze andere text bevat

				if (navigator.appName=="Microsoft Internet Explorer")
				{
						var str = "category_covering_div.setAttribute('onmouseover',function anonymous(){show_div_pos_div_gen_"+type+"()})"
						eval(str)
				}
				else
				{
						category_covering_div.setAttribute('onmouseover',"show_div_pos_div_gen_"+type+"()")
				}
				hide_div('pos_div_gen_'+type)
				if(domain_gid == 1701)
				{
					mapsystem.message_categories.getParentCategories(function(cats)
					{
							for (i in cats)
							{
								if(i == 21210)
								{
									var cat = cats[i]
									var category_covering_div_inner  = createElement(category_covering_div,"category_covering_div_inner","category_"+cat.name+"_div_inner_"+type,'div')
									category_covering_div_inner.innerHTML = "<table cellpadding=\"0\" cellspacing=\"0\" id=\"category_"+cat.name+"_table_"+type+"\"><tr><td id=\"category_"+cat.name+"_td_"+type+"\" class=\"category_covering_td\" onmouseover=\"javascript:show_categories('"+cat.name+"',"+cat.id+", '"+type+"')\" ><a class=\"category_covering_a\" >"+cat.name+"</a></td></tr></table>"
								}
							}
	
							var category_covering_divW_in = document.getElementById('category_covering_div_'+type).offsetWidth
	
							for (i in cats)
							{
								if(i == 21210)
								{
									var cat = cats[i]
									document.getElementById('category_'+cat.name+'_table_'+type).style.width = category_covering_divW_in
								}
							}
					}
					);
				}
				else if(domain_gid == 1629)
				{
					mapsystem.message_categories.getParentCategories(function(cats)
					{
							for (i in cats)
							{
								if(i == 21110|| i == 21120|| i == 21130)
								{
									var cat = cats[i]
									var category_covering_div_inner  = createElement(category_covering_div,"category_covering_div_inner","category_"+cat.name+"_div_inner_"+type,'div')
									category_covering_div_inner.innerHTML = "<table cellpadding=\"0\" cellspacing=\"0\" id=\"category_"+cat.name+"_table_"+type+"\"><tr><td id=\"category_"+cat.name+"_td_"+type+"\" class=\"category_covering_td\" onmouseover=\"javascript:show_categories('"+cat.name+"',"+cat.id+", '"+type+"')\" ><a class=\"category_covering_a\" >"+cat.name+"</a></td></tr></table>"
								}
							}
	
							var category_covering_divW_in = document.getElementById('category_covering_div_'+type).offsetWidth
	
							for (i in cats)
							{
								if(i == 21110|| i == 21120|| i == 21130)
								{
									var cat = cats[i]
									document.getElementById('category_'+cat.name+'_table_'+type).style.width = category_covering_divW_in
								}
							}
					}
					);
				}
				else
				{
					mapsystem.message_categories.getParentCategories(function(cats)
					{
							for (i in cats)
							{
								if(i < 20000)
								{
									var cat = cats[i]
									var category_covering_div_inner  = createElement(category_covering_div,"category_covering_div_inner","category_"+cat.name+"_div_inner_"+type,'div')
									category_covering_div_inner.innerHTML = "<table cellpadding=\"0\" cellspacing=\"0\" id=\"category_"+cat.name+"_table_"+type+"\"><tr><td id=\"category_"+cat.name+"_td_"+type+"\" class=\"category_covering_td\" onmouseover=\"javascript:show_categories('"+cat.name+"',"+cat.id+", '"+type+"')\" ><a class=\"category_covering_a\" >"+cat.name+"</a></td></tr></table>"
								}
							}
	
							var category_covering_divW_in = document.getElementById('category_covering_div_'+type).offsetWidth
	
							for (i in cats)
							{
								if(i < 1850)
								{
									var cat = cats[i]
									document.getElementById('category_'+cat.name+'_table_'+type).style.width = category_covering_divW_in
								}
							}
					}
					);
				}
				
				var category_covering_divW = category_covering_div.offsetWidth

				var category_specific_div  = createElement(pos_div_gen,"category_specific_div","category_specific_div_"+type,'div')
				category_specific_div.style.left = buttonW + category_covering_divW - 10 - 1//zodat tweede menuutje (specific categories) ook altijd aansluit rechts

				if (navigator.appName=="Microsoft Internet Explorer")
				{
						var str = "category_specific_div.setAttribute('onmouseover',function anonymous(){show_div_pos_div_gen_"+type+"()})";
						eval(str)
				}
				else
				{
						category_specific_div.setAttribute('onmouseover',"show_div_pos_div_gen_"+type+"()")
				}
		}
		function select_category(selected, catid, type)
		{
				mapsystem.message_categories.getCategory(catid,function(supercat)
				{
						var thebutton = document.getElementById('button_category_'+type);
							thebutton.innerHTML = getTrans.Translate("Category")+": "+supercat.name
						
						var input_for_id = document.getElementById("input_cat_id_"+type);
							input_for_id.value = supercat.id
							
						hide_div('pos_div_gen_'+type)
				}
				);
		}
		function show_categories(cat_covering,catid, type)
		{
				var specific_a  = document.getElementById('category_'+cat_covering+'_div_inner_'+type)
				var specific_aT = specific_a.offsetTop
				
				var category_covering_div  = document.getElementById("category_covering_div_"+type)
				var category_covering_divT = category_covering_div.offsetTop // zodat tweede menuutje op hoogte van deze covering category terecht komt
				var category_covering_divH = category_covering_div.offsetHeight // zodat tweede menuutje op hoogte van deze covering category terecht komt


				var category_specific_div  = document.getElementById("category_specific_div_"+type)
				category_specific_div.innerHTML = ''
				
				category_specific_div.style.visibilty = "hidden"
				
				mapsystem.message_categories.getCategory(catid,function(supercat)
				{
						supercat.getChilds(function(cats)
						{
								for (i in cats)
								{
										var cat = cats[i]
										var nieuwe_a  = createElement(category_specific_div,"category_covering_a","category_covering_a_"+cat.name+"",'a');


										nieuwe_a.href = "javascript:select_category('"+cat.name+"',"+cat.id+", '"+type+"')"
										//		nieuwe_a.setAttribute('onmousedown',"javascript:select_category('"+cat.name+"',"+cat.id+")") ;
										nieuwe_a.innerHTML = cat.name;

								}
						}
						);
				}
				);
				
				
				var specific_aH = category_specific_div.offsetHeight
				
				if(catid > 1250)
				{
				category_specific_div.style.top = category_covering_divH + category_covering_divT - (specific_aH)
				}
				else
				{
				category_specific_div.style.top = category_covering_divT
				}
				category_specific_div.style.visibilty = "inherit"
		}

		function show_div_pos_div_gen_add (){show_div('pos_div_gen_add', 'add')}
		function hide_div_pos_div_gen_add (){hide_div('pos_div_gen_add', 'add')}
		function hideorshow_div_pos_div_gen_add (){hideorshow_div('pos_div_gen_add', 'add')}

		function show_div_pos_div_gen_edit (){show_div('pos_div_gen_edit', 'edit')}
		function hide_div_pos_div_gen_edit (){hide_div('pos_div_gen_edit', 'edit')}
		function hideorshow_div_pos_div_gen_edit (){hideorshow_div('pos_div_gen_edit', 'edit')}

		function show_div(id, type)
		{
				var thebutton = document.getElementById('button_category_'+type);
//				var buttonW = thebutton.offsetWidth
				var buttonW = 55
				var buttonH = thebutton.offsetHeight

				var category_covering_div  = document.getElementById("category_covering_div_"+type)
				if(navigator.appName=="Microsoft Internet Explorer")
				{
					category_covering_div.style.left = buttonW - 10 
				}
				else
				{
					category_covering_div.style.left = buttonW + 20 - 10 
				}
				var category_covering_divW = category_covering_div.offsetWidth
				var category_covering_divH = category_covering_div.offsetHeight
				
				if(domain_gid == 1629 || domain_gid == 1701)
				{				
					category_covering_div.style.top = -category_covering_divH + thebutton.offsetHeight
				}
				else
				{
					category_covering_div.style.top = -category_covering_divH + thebutton.offsetHeight + 60
				}

				var category_specific_div  = document.getElementById("category_specific_div_"+type)
				if(navigator.appName=="Microsoft Internet Explorer")
				{
					category_specific_div.style.left = buttonW + category_covering_divW - 10 - 1
				}
				else
				{
				category_specific_div.style.left = buttonW + category_covering_divW + 20 - 10 - 1
				}
				var div  = document.getElementById(id)
				div.style.visibility = "inherit"
		}
		function hide_div(id, type)
		{
				var div  = document.getElementById(id)
				div.style.visibility = "hidden"
		}
		function hideorshow_div(id, type)
		{
			
				var thebutton = document.getElementById('button_category_'+type);
//				var buttonW = thebutton.offsetWidth
				var buttonW = 55
				var buttonH = thebutton.offsetHeight
				var category_covering_div  = document.getElementById("category_covering_div_"+type)
				
				if(navigator.appName=="Microsoft Internet Explorer")
				{
				category_covering_div.style.left = buttonW - 10 
				}
				else
				{
				category_covering_div.style.left = buttonW + 20 - 10 
				}

				var category_covering_divW = category_covering_div.offsetWidth
				var category_covering_divH = category_covering_div.offsetHeight
				
				if(domain_gid == 1629 || domain_gid == 1701)
				{				
					category_covering_div.style.top = -category_covering_divH + thebutton.offsetHeight
				}
				else
				{
					category_covering_div.style.top = -category_covering_divH + thebutton.offsetHeight + 60
				}

				var category_specific_div  = document.getElementById("category_specific_div_"+type)
				
				if(navigator.appName=="Microsoft Internet Explorer")
				{
				category_specific_div.style.left = buttonW + category_covering_divW - 10 - 1
				}
				else
				{
				category_specific_div.style.left = buttonW + category_covering_divW + 20 - 10 - 1
				}


				var div  = document.getElementById(id)
				if(div.style.visibility == "hidden")
				{
						div.style.visibility = "inherit"
				}
				else
				{
						div.style.visibility = "hidden"
				}
		}/*t_containers.js*/
		
		function hide_container_onscreen(type)
	{
		hide_container(type, true)
	}	
function hide_container(type, onscreen, footer, loc_id)
	{
		if(type == "_msg")
			{
				if (selected_marker != 0) 
				{
					mapsystem.RestoreMarker (selected_marker);
					selected_marker = 0;
				}
			}
	if(document.getElementById('frame'+type) && document.getElementById('frame'+type).style.visibility == "inherit")
		{
				if (navigator.appName=="Netscape") 
				{
					if(onscreen == true)
					{ 
					hide_scroll('clientarea'+type)
					}
				}
				if(onscreen == true)
				{ 
							if(type == "_user")
							{
								
								if(only_user_var == true)
								{
									Message_Restore_to_Previous_view()
									only_user_var = false
								}
								
								urls.RemoveVariable("U");
								if(document.getElementById('frame_treel') && document.getElementById('frame_treel').style.visibility == "hidden")
								{	
											if(document.getElementById('frame_tag') && document.getElementById('frame_tag').style.visibility == "hidden")
											{
											urls.RemoveVariable("Uid");
											}
										
								}
								urls.UpdateURL();
							}
							if(type == "_loc")
							{
								urls.RemoveVariable("L");
								urls.UpdateURL();
							}
							if(type == "_msg")
							{
								urls.RemoveVariable("M");
								show.Flush();
								urls.UpdateURL();
							}
							if(type == "_view")
							{
								urls.RemoveVariable("V");
								urls.UpdateURL();
								
								set_bu_footer_overview_var = 1
				//				document.getElementById("bu_footer_overview").setAttribute('class',"footer_buttons bu_footer_overview")
				//				document.getElementById("bu_footer_overview").setAttribute('className',"footer_buttons bu_footer_overview")
							}
							if(type == "_info")
							{
								urls.RemoveVariable("MI");
								urls.UpdateURL();
								set_bu_footer_myinfo_var = 1
				//				document.getElementById("bu_footer_myinfo").setAttribute('class',"footer_buttons bu_footer_myinfo")
				//				document.getElementById("bu_footer_myinfo").setAttribute('className',"footer_buttons bu_footer_myinfo")
							}
							if(type == "_help")
							{
								urls.RemoveVariable("H");
								urls.UpdateURL();
								set_bu_footer_help_var = 1	
					//			document.getElementById("bu_footer_help").setAttribute('class',"footer_buttons bu_footer_help")
					//			document.getElementById("bu_footer_help").setAttribute('className',"footer_buttons bu_footer_help")
						}
							
							if(type == "_intro")
							{
								
				//				hide_scroll("extra_info_div")
								hide_scroll("content_description_div")
								
								urls.RemoveVariable("I");
								urls.UpdateURL();
						//		if(footer == true)
						//		{
									set_bu_footer_intro_var = 1
					//				document.getElementById("bu_footer_myinfo").setAttribute('class',"footer_buttons bu_footer_myinfo")
					//				document.getElementById("bu_footer_myinfo").setAttribute('className',"footer_buttons bu_footer_myinfo")
						//		}
								if(onscreen == true)
								{ 
									set_bu_footer_intro_var = 1
										urls.AddVariable("I", "cl");
										urls.UpdateURL();
								}
							}
							if(type == "_treel")
							{
								urls.RemoveVariable("T");
								urls.RemoveVariable("Tid");
								if(document.getElementById('frame_user') && document.getElementById('frame_user').style.visibility == "hidden")
								{
										urls.RemoveVariable("Uid");
								}
								urls.UpdateURL();
								
									 
							//	tr.DestroyAllTreelz()
		//temp						tr.HideAllTreelz()
							}
							if(type == "_pref")
							{
								urls.RemoveVariable("P");
								urls.UpdateURL();
							}
							if(type == "_tag")
							{
								urls.RemoveVariable("TA");
								urls.RemoveVariable("TAid");
								if(document.getElementById('frame_user') && document.getElementById('frame_user').style.visibility == "hidden")
								{
									urls.RemoveVariable("Uid");
								}
								urls.UpdateURL();
							}
							if(type == "_link")
							{
								set_bu_footer_link_var = 1	
						//		document.getElementById("bu_footer_link").setAttribute('class',"footer_buttons bu_footer_link")
						//		document.getElementById("bu_footer_link").setAttribute('className',"footer_buttons bu_footer_link")
							}
							if(type == "_add")
							{
								document.getElementById("comment").style.visibility = "inherit"

							}
							if(type == "_set")
							{
								hide_scroll("step_4_group_div")
							}
							if(type == "_group")
							{
								hide_scroll("details_div_groupprofile")
								
								
								
								if(only_group_var == true)
								{
									Message_Restore_to_Previous_view()
									only_group_var = false
								}
								
								urls.RemoveVariable("G");
								urls.UpdateURL();
							}
					}
					dd.elements['frame'+type].hide()
					
					var frame_div = document.getElementById('frame'+type);
							frame_div.innerHTML = ''
		}
	}
	
	
function hide_scroll(div_id)
	{
			if(document.getElementById(div_id+'_vscrollerbase'))
			{
				document.getElementById(div_id+'_vscrollerbase').style.visibility = "inherit"
			}
			
			if(document.getElementById(div_id+'_vscrollerbar'))
			{
				document.getElementById(div_id+'_vscrollerbar').style.visibility = "inherit"
			}
	}
	
function show_container(type, loc_id)
	{
		my_own_BuildFunc(type)
		dd.elements['frame'+type].show()
		my_own_z_function(type)
		var frame_div = document.getElementById('frame'+type);
		add_close_button("frame"+type, "javascript:hide_container('"+type+"', true)")
		
		if(type == "_msg" || type == "_treel"|| type == "_loc"|| type == "_intro")
		{
			var	buttons_div		=	createElement(frame_div,"buttons_div","buttons"+type+"_div",'div')
				var	center		=	createElement(buttons_div,null,null,'center')
					var	buttons_center_div		=	createElement(center,"buttons_center_div","buttons_center"+type+"_div",'div')
						buttons_center_div.style.width = "0px"
		}
		if(type == "_user" ||type == "_group" )
		{
			var	buttons_div		=	createElement(frame_div,"buttons_div","buttons"+type+"_div",'div')
				buttons_div.style.width = "0px"
		}
		
	}
function load_container(type)
	{
		create_container(type)
		
//na uitzetten van verschuivenADD_DHTML("resizehandle"+type+""+CURSOR_SE_RESIZE+RESET_Z);
//na uitzetten van verschuivenADD_DHTML("frame"+type+""+CURSOR_MOVE+RESET_Z);
		
		ADD_DHTML("resizehandle"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("frame"+type+""+NO_DRAG+RESET_Z);
		
		ADD_DHTML("titlebar"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("clientarea"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("background"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("footer"+type+""+NO_DRAG+RESET_Z);
		
		ADD_DHTML("corner_t_l"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("corner_t_r"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("corner_b_l"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("corner_b_r"+type+""+NO_DRAG+RESET_Z);
		
		ADD_DHTML("extra_t_l"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("extra_t_r"+type+""+NO_DRAG+RESET_Z);

		ADD_DHTML("extra_b_l"+type+""+NO_DRAG+RESET_Z);
		ADD_DHTML("extra_b_r"+type+""+NO_DRAG+RESET_Z);


		dd.elements['frame'+type].addChild("resizehandle"+type);
		dd.elements['frame'+type].addChild("titlebar"+type);
		dd.elements['frame'+type].addChild("footer"+type);
		dd.elements['frame'+type].addChild("clientarea"+type);
		dd.elements['frame'+type].addChild("background"+type);
		
		dd.elements['frame'+type].addChild("corner_t_l"+type);
		dd.elements['frame'+type].addChild("corner_t_r"+type);
		dd.elements['frame'+type].addChild("corner_b_l"+type);
		dd.elements['frame'+type].addChild("corner_b_r"+type);

		dd.elements['frame'+type].addChild("extra_t_l"+type);
		dd.elements['frame'+type].addChild("extra_t_r"+type);

		dd.elements['frame'+type].addChild("extra_b_l"+type);
		dd.elements['frame'+type].addChild("extra_b_r"+type);

		var MyOwnFunctions = ""
			MyOwnFunctions += "dd.elements.resizehandle"+type+".setDragFunc(my_own_DragFunc"+type+");";
			MyOwnFunctions += "dd.elements.frame"+type+".setDropFunc(my_own_DropFunc"+type+");";
			MyOwnFunctions += "dd.elements.resizehandle"+type+".setDropFunc(my_own_DropFunc"+type+");";
	
		eval(MyOwnFunctions)
		
	//	hide_container(type)
	}
function create_container(type)
	{
		middle_div = document.getElementById('middle');
						
						var container_div = document.getElementById('container'+type);
							container_div.innerHTML = ''
						
						var resizehandle_div = createElement(container_div,"resizehandle","resizehandle"+type,'div');

						var frame_div = createElement(container_div,"frame","frame"+type,'div');
							
	//						var close_div = createElement(frame_div,"close_div","close"+type,'div');
											
	//							var closebutton = createElement(close_div, "closebutton", "closebutton"+type, 'a');
	//								closebutton.href = "javascript:hide_container"+type+"()";
	//								closebutton.title = getTrans.Translate("title_close_window")
						
						
						var corner_t_l_div = createElement(container_div,"corner_t_l_75","corner_t_l"+type,'div');
						var corner_t_r_div = createElement(container_div,"corner_t_r_75","corner_t_r"+type,'div');
						var corner_b_l_div = createElement(container_div,"corner_b_l_75","corner_b_l"+type,'div');
						var corner_b_r_div = createElement(container_div,"corner_b_r_75","corner_b_r"+type,'div');

						
						
						var footer_div = createElement(container_div,"footer_75","footer"+type,'div');
							
						var titlebar_div = createElement(container_div,"titlebar_75","titlebar"+type,'div');
							titlebar_div.innerHTML = "";
									
						var extra_t_l = createElement(container_div,"extra_t_l_75","extra_t_l"+type,'div');
						var extra_t_r = createElement(container_div,"extra_t_r_75","extra_t_r"+type,'div');

						var extra_b_l = createElement(container_div,"extra_b_l_75","extra_b_l"+type,'div');
						var extra_b_r = createElement(container_div,"extra_b_r_75","extra_b_r"+type,'div');


						var background_div = createElement(container_div,"background_75","background"+type,'div');
						
				//		var clientarea_div = createElement(container_div,"clientarea flexcroll","clientarea"+type,'div');
						var clientarea_div = createElement(container_div,"clientarea","clientarea"+type,'div');
						
						if (navigator.appName=="Netscape") 
						{		
							clientarea_div.style.width = 1;
							clientarea_div.style.height = 1;
						}
							var clientarea_inner_div = createElement(clientarea_div,"clientarea_inner","clientarea_inner"+type,'div');
							
	//						var clientarea_inner_div_temp = createElement(clientarea_inner_div,"clientarea_inner_div_temp","clientarea_inner_div_temp"+type,'div');
	//							clientarea_inner_div_temp.style.color = "black" 
								clientarea_inner_div.innerHTML = "ioqoihqwihofqhwofqhio qiohwfoi oihwf oiqhwjfo ihqoiwhf oiqjwfoi jqwiofjqo iwj qiwjfo iqjwfoiqjw <br /><br /><br /><br /> oijud woijoqiwujd oiqwjdoq iwjdoiq juwidojuq woidju <br /><br />";
					
					
					CSBfleXcroll(clientarea_div)
						
			}
function my_own_DragFunc(type)
	{ 
	
				if (dd.obj.name == "resizehandle"+type)
					{
				 			var clientarea_inner = document.getElementById("clientarea_inner"+type);
				 				clientarea_inner.style.width = "";
								clientarea_inner.style.height = "";
								
							
						if(type == "_user" || type == "_group" || type == "_tag" || type == "_intro")
							{
								titlebar_h_extra = titlebar_h_extra_amount
							}
							else if (type == "_treel")
							{
								titlebar_h_extra = titlebar_h_extra_amount_treel
							}
							else
							{
								titlebar_h_extra = 0
							}
						
						titlebar_h = titlebar_h_normal + titlebar_h_extra
				       
					   	dd.elements['frame'+type].resizeTo(dd.obj.x-dd.elements['frame'+type].x+dd.obj.w+2, dd.obj.y-dd.elements['frame'+type].y+dd.obj.h+2);
				       	dd.elements['titlebar'+type].resizeTo(dd.obj.x-dd.elements['titlebar'+type].x+dd.obj.w-frame_padding-8, titlebar_h);

				    if(type == "_help")  
					{
						dd.elements['clientarea'+type].resizeTo(dd.elements['frame'+type].w, dd.elements['frame'+type].h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);
					}
					else
					{
						dd.elements['clientarea'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1)-5, dd.elements['frame'+type].h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);
					}
						dd.elements['background'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1), dd.elements['frame'+type].h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);
						dd.elements['footer'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1)-20,footer_h + footer_extra_2);
				 		dd.elements['footer'+type].moveTo(dd.elements['frame'+type].x+10, dd.elements['frame'+type].y+dd.elements['frame'+type].h-footer_h - footer_extra_2+space_inbetween+space_inbetween);
						
						dd.elements['corner_t_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+2);
						dd.elements['corner_t_r'+type].moveTo(dd.elements['frame'+type].x+dd.elements['frame'+type].w-dd.elements['corner_t_r'+type].w, dd.elements['frame'+type].y+2);
						dd.elements['corner_b_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+dd.elements['frame'+type].h-dd.elements['corner_b_l'+type].h+space_inbetween+space_inbetween);
						dd.elements['corner_b_r'+type].moveTo(dd.elements['frame'+type].x+dd.elements['frame'+type].w-dd.elements['corner_b_r'+type].w, dd.elements['frame'+type].y+dd.elements['frame'+type].h-dd.elements['corner_b_r'+type].h+space_inbetween+space_inbetween);
				if(type == "_user" || type == "_group" || type == "_treel" || type == "_tag" || type == "_intro")
						{
						dd.elements['extra_t_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h);
						dd.elements['extra_t_r'+type].moveTo(dd.elements['frame'+type].x+ dd.elements['frame'+type].w-dd.elements['corner_t_r'+type].w, dd.elements['frame'+type].y+2+dd.elements['corner_t_r'+type].h);
						}
						
						dd.elements['extra_b_l'+type].moveTo(dd.elements['frame'+type].x,dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h+dd.elements['clientarea'+type].h+titlebar_h_extra+space_inbetween+space_inbetween);
						dd.elements['extra_b_r'+type].moveTo(dd.elements['frame'+type].x+dd.elements['frame'+type].w-dd.elements['corner_b_r'+type].w,dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h+dd.elements['clientarea'+type].h+titlebar_h_extra+space_inbetween+space_inbetween);
					}
	}
function my_own_DropFunc(type)
	{	
		if (dd.obj.name == "frame"+type)
			{	
				my_own_z_function(type)	
				my_own_BuildFunc(type)
			};	
		if (dd.obj.name == "resizehandle"+type)
			{	
				my_own_z_function(type)	
				cleanTestDiv(type)
			};
	}
function test_show_height_msg()
	{
		test_show_height("_msg")
	}




function my_own_BuildFunc(type)
	{	
	if(document.getElementById('frame'+type))
	{
	
			var inner = document.getElementById('clientarea_inner'+type);
			var frame = document.getElementById('frame'+type);
			var bodyH = document.body.offsetHeight;
			var innerH = inner.offsetHeight + inner.offsetTop
			var frameT = frame.offsetTop
			var frame_h = ''

		
		var titlebar_h_extra = 0
		
		if(type == "_user" || type == "_group" || type == "_tag" || type == "_intro")
		{
			titlebar_h_extra = titlebar_h_extra_amount
		}
		else if (type == "_treel")
		{
			titlebar_h_extra = titlebar_h_extra_amount_treel
		}
		
		titlebar_h = titlebar_h_normal + titlebar_h_extra
		
		frame_h = innerH + statusbar_h + statusbar_extra_2 + titlebar_h + 9



		
			if(frame_h > bodyH - 65 - frameT - 65)
				{
					if((bodyH - 65 - frameT - 65) > 105)
					{
						
						frame_h = bodyH - 65 - frameT - 70
					}
					else
					{
						frame_h = 105
					}
				}
				frame.style.height = frame_h
				
				
				
//na uitzetten van verschuiven
			var frameL = frame.offsetLeft
			var bodyW = document.body.offsetWidth;
			var left_for_right = bodyW - frame.offsetWidth - 50
			var left_for_middle = bodyW/2 - frame.offsetWidth/2
/*			var top_for_middle = ''
				top_for_middle = bodyH - frame.offsetHeight - 75
			
			
			if(type == "_help"|| type == "_link"|| type == "_intro")
				{
					dd.elements['frame'+type].x = left_for_middle
					dd.elements['frame'+type].y = top_for_middle
				}
*/
			
			
			if(type == "_user"|| type == "_group" || type == "_tag"|| type == "_view" || type == "_treel")
				{
					dd.elements['frame'+type].x = left_for_right
				}
	//		alert(bodyH+" + "+frame.offsetHeight)
	
	
//tot hier


			dd.elements['frame'+type].resizeTo(dd.elements['frame'+type].w,frame_h);
			dd.elements['frame'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y);
		
			dd.elements['titlebar'+type].moveTo(dd.elements['frame'+type].x+10+frame_padding, dd.elements['frame'+type].y+2+frame_padding);
			dd.elements['titlebar'+type].resizeTo(dd.elements['frame'+type].w-20-(frame_padding<<1), titlebar_h);


			dd.elements['clientarea'+type].moveTo(dd.elements['frame'+type].x+0+frame_padding+clientarea_margin, dd.elements['titlebar'+type].y+titlebar_h+toolbar_h+clientarea_margin+space_inbetween);
		if(type == "_help")  
		{
			dd.elements['clientarea'+type].resizeTo(dd.elements['frame'+type].w, dd.elements['frame'+type].h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);
		}
		else
		{
			dd.elements['clientarea'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1)-5, dd.elements['frame'+type].h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);
		}
	//		dd.elements['clientarea'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1)-5,frame_h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);

			dd.elements['background'+type].moveTo(dd.elements['frame'+type].x+0+frame_padding+clientarea_margin, dd.elements['titlebar'+type].y+titlebar_h+toolbar_h+clientarea_margin+space_inbetween);
			dd.elements['background'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1),frame_h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);

			dd.elements['footer'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1)-20,footer_h + footer_extra_2);
			dd.elements['footer'+type].moveTo(dd.elements['frame'+type].x+10, dd.elements['frame'+type].y+frame_h-dd.elements['footer'+type].h+space_inbetween+space_inbetween );

			dd.elements['corner_t_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+2);
			dd.elements['corner_t_r'+type].moveTo(dd.elements['frame'+type].x+ dd.elements['frame'+type].w-dd.elements['corner_t_r'+type].w, dd.elements['frame'+type].y+2);
			dd.elements['corner_b_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+dd.elements['frame'+type].h-dd.elements['corner_b_l'+type].h+space_inbetween+space_inbetween);
			dd.elements['corner_b_r'+type].moveTo(dd.elements['frame'+type].x+ dd.elements['frame'+type].w-dd.elements['corner_b_r'+type].w, dd.elements['frame'+type].y+dd.elements['frame'+type].h-dd.elements['corner_b_r'+type].h+space_inbetween+space_inbetween);
		
		if(type == "_user" || type == "_group" || type == "_treel" || type == "_tag" || type == "_intro")
		{
			dd.elements['extra_t_l'+type].resizeTo(dd.elements['corner_t_l'+type].w,titlebar_h_extra);
			dd.elements['extra_t_r'+type].resizeTo(dd.elements['corner_t_r'+type].w,titlebar_h_extra);
			
			dd.elements['extra_t_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h);
			dd.elements['extra_t_r'+type].moveTo(dd.elements['frame'+type].x+ dd.elements['frame'+type].w-dd.elements['corner_t_r'+type].w, dd.elements['frame'+type].y+2+dd.elements['corner_t_r'+type].h);
		}

			dd.elements['extra_b_l'+type].resizeTo(dd.elements['corner_b_l'+type].w,footer_h_extra);
			dd.elements['extra_b_r'+type].resizeTo(dd.elements['corner_b_r'+type].w,footer_h_extra);
			
			dd.elements['extra_b_l'+type].moveTo(dd.elements['frame'+type].x,dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h+dd.elements['clientarea'+type].h+titlebar_h_extra+space_inbetween+space_inbetween);
			dd.elements['extra_b_r'+type].moveTo(dd.elements['frame'+type].x+dd.elements['frame'+type].w-dd.elements['corner_b_r'+type].w,dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h+dd.elements['clientarea'+type].h+titlebar_h_extra+space_inbetween+space_inbetween);


dd.elements['resizehandle'+type].moveTo(dd.elements['frame'+type].x+dd.elements['frame'+type].w-dd.elements['resizehandle'+type].w-2, dd.elements['frame'+type].y+frame_h-dd.elements['resizehandle'+type].h-2 +space_inbetween+space_inbetween);

		cleanTestDiv(type)

//na uitzetten van verschuiven
	/*		if(type == "_help"|| type == "_link"|| type == "_intro")
				{
					frame.style.left = left_for_middle
					frame.style.top = top_for_middle - 60
				}
*/			if(type == "_user"|| type == "_group" || type == "_tag"|| type == "_view" || type == "_treel")
				{
					frame.style.left = left_for_right
				}

//tot hier
	}
}

/*
function my_own_BuildFunc(type)
	{	
	if(document.getElementById('frame'+type))
	{
	
			var inner = document.getElementById('clientarea_inner'+type);
			var frame = document.getElementById('frame'+type);
			
			var innerH = inner.offsetHeight + inner.offsetTop
			var frameT = frame.offsetTop
			var bodyH = document.body.offsetHeight;
		
		var titlebar_h_extra = 0
		
		if(type == "_user" || type == "_group" || type == "_tag" || type == "_intro")
		{
			titlebar_h_extra = titlebar_h_extra_amount
		}
		else if (type == "_treel")
		{
			titlebar_h_extra = titlebar_h_extra_amount_treel
		}
		
		titlebar_h = titlebar_h_normal + titlebar_h_extra
		
			frame_h = innerH + statusbar_h + statusbar_extra_2 + titlebar_h + 9
		
		
			if(frame_h > bodyH - 65 - frameT - 65)
				{
					if((bodyH - 65 - frameT - 65) > 105)
					{
						
						frame_h = bodyH - 65 - frameT - 69
					}
					else
					{
						frame_h = 105
						
						
					}
				}
		
				frame.style.height = frame_h

			dd.elements['frame'+type].resizeTo(dd.elements['frame'+type].w,frame_h);
			dd.elements['frame'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y);
		
			dd.elements['titlebar'+type].moveTo(dd.elements['frame'+type].x+10+frame_padding, dd.elements['frame'+type].y+2+frame_padding);
			dd.elements['titlebar'+type].resizeTo(dd.elements['frame'+type].w-20-(frame_padding<<1), titlebar_h);


			dd.elements['clientarea'+type].moveTo(dd.elements['frame'+type].x+0+frame_padding+clientarea_margin, dd.elements['titlebar'+type].y+titlebar_h+toolbar_h+clientarea_margin+space_inbetween);
			dd.elements['clientarea'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1)-5,frame_h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);

			dd.elements['background'+type].moveTo(dd.elements['frame'+type].x+0+frame_padding+clientarea_margin, dd.elements['titlebar'+type].y+titlebar_h+toolbar_h+clientarea_margin+space_inbetween);
			dd.elements['background'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1),frame_h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);

			dd.elements['footer'+type].resizeTo(dd.elements['frame'+type].w-0-(frame_padding<<1)-(clientarea_margin<<1)-20,footer_h + footer_extra_2);
			dd.elements['footer'+type].moveTo(dd.elements['frame'+type].x+10, dd.elements['frame'+type].y+frame_h-dd.elements['footer'+type].h+space_inbetween+space_inbetween );

			dd.elements['corner_t_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+2);
			dd.elements['corner_t_r'+type].moveTo(dd.elements['frame'+type].x+ dd.elements['frame'+type].w-dd.elements['corner_t_r'+type].w, dd.elements['frame'+type].y+2);
			dd.elements['corner_b_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+dd.elements['frame'+type].h-dd.elements['corner_b_l'+type].h+space_inbetween+space_inbetween);
			dd.elements['corner_b_r'+type].moveTo(dd.elements['frame'+type].x+ dd.elements['frame'+type].w-dd.elements['corner_b_r'+type].w, dd.elements['frame'+type].y+dd.elements['frame'+type].h-dd.elements['corner_b_r'+type].h+space_inbetween+space_inbetween);
		
		if(type == "_user" || type == "_group" || type == "_treel" || type == "_tag" || type == "_intro")
		{
			dd.elements['extra_t_l'+type].resizeTo(dd.elements['corner_t_l'+type].w,titlebar_h_extra);
			dd.elements['extra_t_r'+type].resizeTo(dd.elements['corner_t_r'+type].w,titlebar_h_extra);
			
			dd.elements['extra_t_l'+type].moveTo(dd.elements['frame'+type].x, dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h);
			dd.elements['extra_t_r'+type].moveTo(dd.elements['frame'+type].x+ dd.elements['frame'+type].w-dd.elements['corner_t_r'+type].w, dd.elements['frame'+type].y+2+dd.elements['corner_t_r'+type].h);
		}

			dd.elements['extra_b_l'+type].resizeTo(dd.elements['corner_b_l'+type].w,footer_h_extra);
			dd.elements['extra_b_r'+type].resizeTo(dd.elements['corner_b_r'+type].w,footer_h_extra);
			
			dd.elements['extra_b_l'+type].moveTo(dd.elements['frame'+type].x,dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h+dd.elements['clientarea'+type].h+titlebar_h_extra+space_inbetween+space_inbetween);
			dd.elements['extra_b_r'+type].moveTo(dd.elements['frame'+type].x+dd.elements['frame'+type].w-dd.elements['corner_b_r'+type].w,dd.elements['frame'+type].y+2+dd.elements['corner_t_l'+type].h+dd.elements['clientarea'+type].h+titlebar_h_extra+space_inbetween+space_inbetween);


dd.elements['resizehandle'+type].moveTo(dd.elements['frame'+type].x+dd.elements['frame'+type].w-dd.elements['resizehandle'+type].w-2, dd.elements['frame'+type].y+frame_h-dd.elements['resizehandle'+type].h-2 +space_inbetween+space_inbetween);

		cleanTestDiv(type)
		
	}
}
*/

function cleanTestDiv(type) 
	{	
//	var targetEl = document.getElementById('clientarea_inner'+type);
	var scrollDiv = document.getElementById('clientarea'+type);
//	if (targetEl) {targetEl.innerHTML = targetEl.innerHTML};
//	if (typeof(targetEl.parS) != 'undefined') targetEl.parS = new Array();
//	targetEl.parentNode.className = 'clientarea dynamic';
//	targetEl.parentNode.class = 'clientarea dynamic';
	//Following is the method to tell fleXcrolled div to update itself
	if(scrollDiv.scrollUpdate) scrollDiv.scrollUpdate();
}

function scrollUpdate(target_id) 
{	
	var scroll_target_div = document.getElementById(target_id);
	if(scroll_target_div) scroll_target_div.scrollUpdate();
}/*t_containers_data.js*/

var frame_padding = 0;
var toolbar_h = 0;
var clientarea_margin = 0;

var footer_h_old = 22;
var footer_extra_2 = 20;
var footer_h_extra = 10
var footer_h = footer_h_old + footer_h_extra

var statusbar_h_old = 24;
var statusbar_extra_2 = 20;
var statusbar_h = statusbar_h_old + footer_h_extra

var titlebar_h_normal = 25;
var titlebar_h_extra_amount = 25;
var titlebar_h_extra_amount_treel = 30;

var space_inbetween = 2;


function my_own_DragFunc_user(){my_own_DragFunc("_user")}
function my_own_DropFunc_user(){my_own_DropFunc("_user")}

function my_own_DragFunc_loc(){my_own_DragFunc("_loc")}
function my_own_DropFunc_loc(){my_own_DropFunc("_loc")}

function my_own_DragFunc_msg(){my_own_DragFunc("_msg")}
function my_own_DropFunc_msg(){my_own_DropFunc("_msg")}

function my_own_DragFunc_add(){my_own_DragFunc("_add")}
function my_own_DropFunc_add(){my_own_DropFunc("_add")}

function my_own_DragFunc_view(){my_own_DragFunc("_view")}
function my_own_DropFunc_view(){my_own_DropFunc("_view")}

function my_own_DragFunc_info(){my_own_DragFunc("_info")}
function my_own_DropFunc_info(){my_own_DropFunc("_info")}

function my_own_DragFunc_help(){my_own_DragFunc("_help")}
function my_own_DropFunc_help(){my_own_DropFunc("_help")}

function my_own_DragFunc_intro(){my_own_DragFunc("_intro")}
function my_own_DropFunc_intro(){my_own_DropFunc("_intro")}

function my_own_DragFunc_treel(){my_own_DragFunc("_treel")}
function my_own_DropFunc_treel(){my_own_DropFunc("_treel")}

function my_own_DragFunc_pref(){my_own_DragFunc("_pref")}
function my_own_DropFunc_pref(){my_own_DropFunc("_pref")}

function my_own_DragFunc_tag(){my_own_DragFunc("_tag")}
function my_own_DropFunc_tag(){my_own_DropFunc("_tag")}

function my_own_DragFunc_link(){my_own_DragFunc("_link")}
function my_own_DropFunc_link(){my_own_DropFunc("_link")}

function my_own_DragFunc_set(){my_own_DragFunc("_set")}
function my_own_DropFunc_set(){my_own_DropFunc("_set")}

function my_own_DragFunc_group(){my_own_DragFunc("_group")}
function my_own_DropFunc_group(){my_own_DropFunc("_group")}


function load_all_containers()
	{
		load_container("_user")
		load_container("_loc")
		load_container("_msg")
		load_container("_add")
		load_container("_view")		
		load_container("_info")
		load_container("_help")
		load_container("_intro")
		load_container("_treel")
		load_container("_pref")
		load_container("_tag")
		load_container("_link")
		load_container("_set")
		load_container("_group")
	}
	
function hide_container_all(onscreen)
{
	
	if(onscreen == true)
	{
		
		hide_container("_user", true)
		hide_container("_loc", true)
		hide_container("_msg", true)
		hide_container("_add", true)
		hide_container("_view", true)
		hide_container("_info", true)
		hide_container("_help", true)
		hide_container("_intro", true)
		hide_container("_treel", true)
		hide_container("_pref", true)
		hide_container("_tag", true)
		hide_container("_link", true)
		hide_container("_set", true)
		hide_container("_group", true)
		
		close_treelz_alert()
		hide_tooltip()
		make_footer_inactive()
		close_large_pic()
		hide_sub_cat_selection()
		close_sel_groups()
		timed_close_sel_groups('Search')
	}
	else
	{
		hide_container("_user")
		hide_container("_loc")
		hide_container("_msg")
		hide_container("_add")
		hide_container("_view")
		hide_container("_info")
		hide_container("_help")
		hide_container("_intro")
		hide_container("_treel")
		hide_container("_pref")
		hide_container("_tag")
		hide_container("_link")
		hide_container("_set")
		hide_container("_group")
	}
}

function resize_all_containers()
	{
		my_own_BuildFunc('_user')
		my_own_BuildFunc('_loc')
		my_own_BuildFunc('_msg')
		my_own_BuildFunc('_add')
		my_own_BuildFunc('_view')
		my_own_BuildFunc('_info')
		my_own_BuildFunc('_help')
		my_own_BuildFunc('_intro')
		my_own_BuildFunc('_treel')
		my_own_BuildFunc('_pref')
		my_own_BuildFunc('_tag')
		my_own_BuildFunc('_link')
		my_own_BuildFunc('_set')
		my_own_BuildFunc('_group')
	}

function change_darkness_bg_allcontainers(opacity)
	{
		change_darkness_bg(opacity, "_user")
		change_darkness_bg(opacity, "_loc")
		change_darkness_bg(opacity, "_msg")
		change_darkness_bg(opacity, "_add")
		change_darkness_bg(opacity, "_view")
		change_darkness_bg(opacity, "_select")
		change_darkness_bg(opacity, "_info")
		change_darkness_bg(opacity, "_intro")
		change_darkness_bg(opacity, "_treel")
		change_darkness_bg(opacity, "_pref")
		change_darkness_bg(opacity, "_tag")
		change_darkness_bg(opacity, "_link")
		change_darkness_bg(opacity, "_set")
		change_darkness_bg(opacity, "_group")
	}

function create_general_containers()

	{
		
		var middle_div = document.getElementById('middle');
			
			var container_user = createElement(middle_div,"container","container_user",'div');
			var container_loc = createElement(middle_div,"container","container_loc",'div');
			var container_msg = createElement(middle_div,"container","container_msg",'div');
			var container_add = createElement(middle_div,"container","container_add",'div');
			var container_view = createElement(middle_div,"container","container_view",'div');
			var container_info = createElement(middle_div,"container","container_info",'div');
			var container_help = createElement(middle_div,"container","container_help",'div');
			var container_intro = createElement(middle_div,"container","container_intro",'div');
			var container_treel = createElement(middle_div,"container","container_treel",'div');
			var container_pref = createElement(middle_div,"container","container_pref",'div');
			var container_tag = createElement(middle_div,"container","container_tag",'div');
			var container_link = createElement(middle_div,"container","container_link",'div');
			var container_set = createElement(middle_div,"container","container_set",'div');
			var container_group = createElement(middle_div,"container","container_group",'div');
	}




function my_own_z_function(type)
	{
			
		if(document.getElementById('frame_user'))
		{	
			dd.elements['frame_user'].setZ(4);			
			dd.elements['clientarea_user'].setZ(5);		
			dd.elements['background_user'].setZ(1);		
			dd.elements['titlebar_user'].setZ(1);			
			dd.elements['footer_user'].setZ(1);			
			dd.elements['resizehandle_user'].setZ(6);		
			dd.elements['corner_t_l_user'].setZ(1);
			dd.elements['corner_t_r_user'].setZ(1);
			dd.elements['corner_b_l_user'].setZ(1);
			dd.elements['corner_b_r_user'].setZ(1);
			dd.elements['extra_t_l_user'].setZ(1);
			dd.elements['extra_t_r_user'].setZ(1);
			dd.elements['extra_b_l_user'].setZ(1);
			dd.elements['extra_b_r_user'].setZ(1);
		}
		if(document.getElementById('frame_loc'))
		{
			dd.elements['frame_loc'].setZ(14);			
			dd.elements['clientarea_loc'].setZ(15);		
			dd.elements['background_loc'].setZ(11);		
			dd.elements['titlebar_loc'].setZ(11);			
			dd.elements['footer_loc'].setZ(11);			
			dd.elements['resizehandle_loc'].setZ(16);		
			dd.elements['corner_t_l_loc'].setZ(11);
			dd.elements['corner_t_r_loc'].setZ(11);
			dd.elements['corner_b_l_loc'].setZ(11);
			dd.elements['corner_b_r_loc'].setZ(11);
			dd.elements['extra_t_l_loc'].setZ(11);
			dd.elements['extra_t_r_loc'].setZ(11);
			dd.elements['extra_b_l_loc'].setZ(11);
			dd.elements['extra_b_r_loc'].setZ(11);
		}
		if(document.getElementById('frame_msg'))
		{
			dd.elements['frame_msg'].setZ(24);			
			dd.elements['clientarea_msg'].setZ(25);		
			dd.elements['background_msg'].setZ(21);		
			dd.elements['titlebar_msg'].setZ(21);			
			dd.elements['footer_msg'].setZ(21);			
			dd.elements['resizehandle_msg'].setZ(26);
			dd.elements['corner_t_l_msg'].setZ(21);
			dd.elements['corner_t_r_msg'].setZ(21);
			dd.elements['corner_b_l_msg'].setZ(21);
			dd.elements['corner_b_r_msg'].setZ(21);
			dd.elements['extra_t_l_msg'].setZ(21);
			dd.elements['extra_t_r_msg'].setZ(21);
			dd.elements['extra_b_l_msg'].setZ(21);
			dd.elements['extra_b_r_msg'].setZ(21);
		}
		if(document.getElementById('frame_add'))
		{

			dd.elements['frame_add'].setZ(34);			
			dd.elements['clientarea_add'].setZ(35);		
			dd.elements['background_add'].setZ(31);		
			dd.elements['titlebar_add'].setZ(31);			
			dd.elements['footer_add'].setZ(31);			
			dd.elements['resizehandle_add'].setZ(36);
			dd.elements['corner_t_l_add'].setZ(31);
			dd.elements['corner_t_r_add'].setZ(31);
			dd.elements['corner_b_l_add'].setZ(31);
			dd.elements['corner_b_r_add'].setZ(31);
			dd.elements['extra_t_l_add'].setZ(31);
			dd.elements['extra_t_r_add'].setZ(31);
			dd.elements['extra_b_l_add'].setZ(31);
			dd.elements['extra_b_r_add'].setZ(31);
		}
		if(document.getElementById('frame_view'))
		{

			dd.elements['frame_view'].setZ(44);			
			dd.elements['clientarea_view'].setZ(45);		
			dd.elements['background_view'].setZ(41);		
			dd.elements['titlebar_view'].setZ(41);			
			dd.elements['footer_view'].setZ(41);			
			dd.elements['resizehandle_view'].setZ(46);
			dd.elements['corner_t_l_view'].setZ(41);
			dd.elements['corner_t_r_view'].setZ(41);
			dd.elements['corner_b_l_view'].setZ(41);
			dd.elements['corner_b_r_view'].setZ(41);
			dd.elements['extra_t_l_view'].setZ(41);
			dd.elements['extra_t_r_view'].setZ(41);
			dd.elements['extra_b_l_view'].setZ(41);
			dd.elements['extra_b_r_view'].setZ(41);
		}
		if(document.getElementById('frame_info'))
		{

			dd.elements['frame_info'].setZ(64);			
			dd.elements['clientarea_info'].setZ(65);		
			dd.elements['background_info'].setZ(61);		
			dd.elements['titlebar_info'].setZ(61);			
			dd.elements['footer_info'].setZ(61);			
			dd.elements['resizehandle_info'].setZ(66);
			dd.elements['corner_t_l_info'].setZ(61);
			dd.elements['corner_t_r_info'].setZ(61);
			dd.elements['corner_b_l_info'].setZ(61);
			dd.elements['corner_b_r_info'].setZ(61);
			dd.elements['extra_t_l_info'].setZ(61);
			dd.elements['extra_t_r_info'].setZ(61);
			dd.elements['extra_b_l_info'].setZ(61);
			dd.elements['extra_b_r_info'].setZ(61);
		}
		if(document.getElementById('frame_help'))
		{

			dd.elements['frame_help'].setZ(74);			
			dd.elements['clientarea_help'].setZ(75);		
			dd.elements['background_help'].setZ(71);		
			dd.elements['titlebar_help'].setZ(71);			
			dd.elements['footer_help'].setZ(71);			
			dd.elements['resizehandle_help'].setZ(76);
			dd.elements['corner_t_l_help'].setZ(71);
			dd.elements['corner_t_r_help'].setZ(71);
			dd.elements['corner_b_l_help'].setZ(71);
			dd.elements['corner_b_r_help'].setZ(71);
			dd.elements['extra_t_l_help'].setZ(71);
			dd.elements['extra_t_r_help'].setZ(71);
			dd.elements['extra_b_l_help'].setZ(71);
			dd.elements['extra_b_r_help'].setZ(71);
		}
		if(document.getElementById('frame_intro'))
		{

			dd.elements['frame_intro'].setZ(284);			
			dd.elements['clientarea_intro'].setZ(285);		
			dd.elements['background_intro'].setZ(281);		
			dd.elements['titlebar_intro'].setZ(281);			
			dd.elements['footer_intro'].setZ(281);			
			dd.elements['resizehandle_intro'].setZ(286);
			dd.elements['corner_t_l_intro'].setZ(281);
			dd.elements['corner_t_r_intro'].setZ(281);
			dd.elements['corner_b_l_intro'].setZ(281);
			dd.elements['corner_b_r_intro'].setZ(281);
			dd.elements['extra_t_l_intro'].setZ(281);
			dd.elements['extra_t_r_intro'].setZ(281);
			dd.elements['extra_b_l_intro'].setZ(281);
			dd.elements['extra_b_r_intro'].setZ(281);
		}
		if(document.getElementById('frame_treel'))
		{

			dd.elements['frame_treel'].setZ(94);			
			dd.elements['clientarea_treel'].setZ(95);		
			dd.elements['background_treel'].setZ(91);		
			dd.elements['titlebar_treel'].setZ(91);			
			dd.elements['footer_treel'].setZ(91);			
			dd.elements['resizehandle_treel'].setZ(96);
			dd.elements['corner_t_l_treel'].setZ(91);
			dd.elements['corner_t_r_treel'].setZ(91);
			dd.elements['corner_b_l_treel'].setZ(91);
			dd.elements['corner_b_r_treel'].setZ(91);
			dd.elements['extra_t_l_treel'].setZ(91);
			dd.elements['extra_t_r_treel'].setZ(91);
			dd.elements['extra_b_l_treel'].setZ(91);
			dd.elements['extra_b_r_treel'].setZ(91);
		}
		if(document.getElementById('frame_pref'))
		{

			dd.elements['frame_pref'].setZ(104);			
			dd.elements['clientarea_pref'].setZ(105);		
			dd.elements['background_pref'].setZ(101);		
			dd.elements['titlebar_pref'].setZ(101);			
			dd.elements['footer_pref'].setZ(101);			
			dd.elements['resizehandle_pref'].setZ(106);
			dd.elements['corner_t_l_pref'].setZ(101);
			dd.elements['corner_t_r_pref'].setZ(101);
			dd.elements['corner_b_l_pref'].setZ(101);
			dd.elements['corner_b_r_pref'].setZ(101);
			dd.elements['extra_t_l_pref'].setZ(101);
			dd.elements['extra_t_r_pref'].setZ(101);
			dd.elements['extra_b_l_pref'].setZ(101);
			dd.elements['extra_b_r_pref'].setZ(101);
		}
		if(document.getElementById('frame_tag'))
		{

			dd.elements['frame_tag'].setZ(114);			
			dd.elements['clientarea_tag'].setZ(115);		
			dd.elements['background_tag'].setZ(111);		
			dd.elements['titlebar_tag'].setZ(111);			
			dd.elements['footer_tag'].setZ(111);			
			dd.elements['resizehandle_tag'].setZ(116);
			dd.elements['corner_t_l_tag'].setZ(111);
			dd.elements['corner_t_r_tag'].setZ(111);
			dd.elements['corner_b_l_tag'].setZ(111);
			dd.elements['corner_b_r_tag'].setZ(111);
			dd.elements['extra_t_l_tag'].setZ(111);
			dd.elements['extra_t_r_tag'].setZ(111);
			dd.elements['extra_b_l_tag'].setZ(111);
			dd.elements['extra_b_r_tag'].setZ(111);
		}
		if(document.getElementById('frame_link'))
		{

			dd.elements['frame_link'].setZ(124);			
			dd.elements['clientarea_link'].setZ(125);		
			dd.elements['background_link'].setZ(121);		
			dd.elements['titlebar_link'].setZ(121);			
			dd.elements['footer_link'].setZ(121);			
			dd.elements['resizehandle_link'].setZ(126);
			dd.elements['corner_t_l_link'].setZ(121);
			dd.elements['corner_t_r_link'].setZ(121);
			dd.elements['corner_b_l_link'].setZ(121);
			dd.elements['corner_b_r_link'].setZ(121);
			dd.elements['extra_t_l_link'].setZ(121);
			dd.elements['extra_t_r_link'].setZ(121);
			dd.elements['extra_b_l_link'].setZ(121);
			dd.elements['extra_b_r_link'].setZ(121);
		}
		
		if(document.getElementById('frame_set'))
		{

			dd.elements['frame_set'].setZ(134);			
			dd.elements['clientarea_set'].setZ(135);		
			dd.elements['background_set'].setZ(131);		
			dd.elements['titlebar_set'].setZ(131);			
			dd.elements['footer_set'].setZ(131);			
			dd.elements['resizehandle_set'].setZ(136);
			dd.elements['corner_t_l_set'].setZ(131);
			dd.elements['corner_t_r_set'].setZ(131);
			dd.elements['corner_b_l_set'].setZ(131);
			dd.elements['corner_b_r_set'].setZ(131);
			dd.elements['extra_t_l_set'].setZ(131);
			dd.elements['extra_t_r_set'].setZ(131);
			dd.elements['extra_b_l_set'].setZ(131);
			dd.elements['extra_b_r_set'].setZ(131);
		}
		if(document.getElementById('frame_group'))
		{

			dd.elements['frame_group'].setZ(144);			
			dd.elements['clientarea_group'].setZ(145);		
			dd.elements['background_group'].setZ(141);		
			dd.elements['titlebar_group'].setZ(141);			
			dd.elements['footer_group'].setZ(141);			
			dd.elements['resizehandle_group'].setZ(146);
			dd.elements['corner_t_l_group'].setZ(141);
			dd.elements['corner_t_r_group'].setZ(141);
			dd.elements['corner_b_l_group'].setZ(141);
			dd.elements['corner_b_r_group'].setZ(141);
			dd.elements['extra_t_l_group'].setZ(141);
			dd.elements['extra_t_r_group'].setZ(141);
			dd.elements['extra_b_l_group'].setZ(141);
			dd.elements['extra_b_r_group'].setZ(141);
		}

		if(type)
		{
			
			if(document.getElementById('frame'+type))
			{
				dd.elements['frame'+type].setZ(194);			
				dd.elements['clientarea'+type].setZ(195);		
				dd.elements['background'+type].setZ(191);		
				dd.elements['titlebar'+type].setZ(191);			
				dd.elements['footer'+type].setZ(191);			
				dd.elements['resizehandle'+type].setZ(196);	
				dd.elements['corner_t_l'+type].setZ(191);
				dd.elements['corner_t_r'+type].setZ(191);
				dd.elements['corner_b_l'+type].setZ(191);
				dd.elements['corner_b_r'+type].setZ(191);
				dd.elements['extra_t_l'+type].setZ(191);
				dd.elements['extra_t_r'+type].setZ(191);
				dd.elements['extra_b_l'+type].setZ(191);
				dd.elements['extra_b_r'+type].setZ(191);
			}
		}
	}/*t_filters.js*/

//	var	global_groups_all_selected	=	true
//	var	groups_groups_all_selected	=	true
//	var	users_groups_all_selected	=	true
//	var	languages_groups_all_selected	=	true
	function	show_global_filter()
	{
			fill_filter_cat()
			fill_filter_groups()
	}
	function	fill_filter_cat()
	{
			var	cats	=	mapsystem.globalfilter.getCategoryFilters()
			var	category_selection_div	=	document.getElementById("category_selection")
			category_selection_div.innerHTML	=	''
			var	groups_selection_div	=	document.getElementById("groups_selection")
			var	amount_of_cats	=	0
			
			
			var	top_filter_selection_div	=	createElement(category_selection_div,"top_filter_selection_div","top_filter_selection_div",'div')
				adjust_size_to_image(top_filter_selection_div, "images/3_selection/selection_cap_top.png")
				set_background_image(top_filter_selection_div, "images/3_selection/selection_cap_top.png")

					
			mapsystem.message_categories.getParentCategories(function(cats)
			{
				if(domain_gid == 1701)
				{
					for(i	in	cats)
					{
						if(i == 21210)
						{
							var	cat	=	cats[i]
							cat.getChilds(function(sub_cats)
							{
									for(i	in	sub_cats)
									{
											var	sub_cat	=	sub_cats[i]
											var	select_button_div	=	createElement(category_selection_div,"select_button	select_button_div_class","select_button_div_"+sub_cat.name,'div')
												load_sub_selection_button_special_group(sub_cat.id,	sub_cat.name,	"images/3_selection/sub_categories/icon_sub_cat_"+sub_cat.id+".png",	cat.id,	cat.name)
												amount_of_cats	=	amount_of_cats	+	1
									}
							}
							);
						}
					}
				}
				else if(domain_gid == 1629)
				{
					for(i	in	cats)
					{
						if(i == 21110 || i == 21120 || i == 21130)
						{
							var	cat	=	cats[i]
							var	select_button_div	=	createElement(category_selection_div,"select_button	select_button_div_class","select_button_div_"+cat.name,'div')
								load_selection_button(cat.id,	cat.name,	"images/3_selection/categories/icon_cat_"+cat.id+".png",	select_button_div)
								amount_of_cats	=	amount_of_cats	+	1
						}

				//		if(i == 1900)
				//		{
				//			var	cat	=	cats[i]
				//			cat.getChilds(function(sub_cats)
				//			{
				//					for(i	in	sub_cats)
				//					{
				//							var	sub_cat	=	sub_cats[i]
				//							var	select_button_div	=	createElement(category_selection_div,"select_button	select_button_div_class","select_button_div_"+sub_cat.name,'div')
				//								load_sub_selection_button_special_group(sub_cat.id,	sub_cat.name,	"images/3_selection/sub_categories/icon_sub_cat_"+sub_cat.id+".png",	cat.id,	cat.name)
				//								amount_of_cats	=	amount_of_cats	+	1
				//					}
				//			}
				//			);
				//		}
					}
				}
				else 
				{
					for(i	in	cats)
					{
						if(i < 20000)
						{
							var	cat	=	cats[i]
							var	select_button_div	=	createElement(category_selection_div,"select_button	select_button_div_class","select_button_div_"+cat.name,'div')
								load_selection_button(cat.id,	cat.name,	"images/3_selection/categories/icon_cat_"+cat.id+".png",	select_button_div)
								amount_of_cats	=	amount_of_cats	+	1
						}
					}
				}
					var category_selection_T = category_selection_div.offsetTop
					var	height_cat_div	=	amount_of_cats	*	30 + category_selection_T + 8 + 8
					
						category_selection_div.style.height	=	height_cat_div
						groups_selection_div.style.top	=	height_cat_div	+	5
			
			var	bottom_filter_selection_div	=	createElement(category_selection_div,"bottom_filter_selection_div","bottom_filter_selection_div",'div')
				adjust_size_to_image(bottom_filter_selection_div, "images/3_selection/selection_cap_bottom.png")
				set_background_image(bottom_filter_selection_div, "images/3_selection/selection_cap_bottom.png")
	
				
			}
			);
	}
	function	hide_show_sub_cat_selection(parent_cat_id,	cat_name) 
	{
		var	thediv	=	document.getElementById("sub_category_selection_"+parent_cat_id)
		if(document.getElementById("left_sub_cat_colapse_div_"+parent_cat_id))
		{
			thediv.style.visibility	=	"visible"
		}
		else
		{
			show_sub_cat_selection(parent_cat_id,	cat_name)
		}
	}
	function	show_sub_cat_selection(parent_cat_id,	cat_name) 
	{
		clearTimeout(timer_category_filters)
//		alert("nee toch?"+parent_cat_id+" + "+cat_name)
			var	category_selection	=	document.getElementById("category_selection")
			var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
			var	height_select_button_div	=	select_button_div.offsetTop
			var	height_category_selection	=	category_selection.offsetTop
			var	thediv	=	document.getElementById("sub_category_selection_"+parent_cat_id)
			thediv.innerHTML	=	''
			
			var	left_sub_cat_colapse_div	=	createElement(thediv,"left_sub_cat_colapse_div","left_sub_cat_colapse_div_"+parent_cat_id,'div')
				adjust_size_to_image(left_sub_cat_colapse_div, "images/3_selection/selection_colapse_subcategories.png")
				set_background_image(left_sub_cat_colapse_div, "images/3_selection/selection_colapse_subcategories.png")
				set_mouse_down("left_sub_cat_colapse_div_"+parent_cat_id,	"hide_sub_cat_selection_direct("+parent_cat_id+")")
			
			
			var	amount_of_sub_cats	=	0
			mapsystem.message_categories.getParentCategories(function(cats)
			{
					var	cat	=	cats[parent_cat_id]
					cat.getChilds(function(sub_cats)
					{
							for(i	in	sub_cats)
							{
									var	sub_cat	=	sub_cats[i]
									var	sub_select_button_div	=	createElement(thediv,"sub_select_button","select_button_div_"+sub_cat.name,'div')
									load_sub_selection_button(sub_cat.id,	sub_cat.name,	"images/3_selection/sub_categories/icon_sub_cat_"+sub_cat.id+".png",	parent_cat_id,	cat_name)
									amount_of_sub_cats	=	amount_of_sub_cats	+	1
							}
					}
					);
					thediv.style.width	=	amount_of_sub_cats	*	30 + 28
					thediv.style.top	=	height_select_button_div  + height_category_selection
					thediv.style.visibility	=	"visible"
			}
			);
	}
	function	hold_sub_cat_selection(parent_cat_id)
	{
		clearTimeout(timer_category_filters)
		var	thediv	=	document.getElementById("sub_category_selection_"+parent_cat_id)
			thediv.style.visibility	=	"visible"
	}
	
	function	hide_sub_cat_selection_direct_all()
	{
		hide_sub_cat_selection_direct(1100)
		hide_sub_cat_selection_direct(1200)
		hide_sub_cat_selection_direct(1300)
		hide_sub_cat_selection_direct(1400)
		hide_sub_cat_selection_direct(1500)
		hide_sub_cat_selection_direct(1600)
		hide_sub_cat_selection_direct(1700)
		hide_sub_cat_selection_direct(1800)
		hide_sub_cat_selection_direct(21110)
		hide_sub_cat_selection_direct(21120)
		hide_sub_cat_selection_direct(21130)
	}
	function	hide_sub_cat_selection_direct(parent_cat_id)
	{
		hide_sub_cat_selection_on_timer(parent_cat_id)
	}
	function	hide_sub_cat_selection(parent_cat_id)
	{
		timer_category_filters = setTimeout("hide_sub_cat_selection_on_timer('"+parent_cat_id+"')",global_timer);
	}
	function	hide_sub_cat_selection_on_timer(parent_cat_id)
	{
		if(document.getElementById("sub_category_selection_"+parent_cat_id))
		{
			var	thediv	=	document.getElementById("sub_category_selection_"+parent_cat_id)
				thediv.style.visibility	=	"hidden"
		}
	}
	function	load_selection_button(parent_cat_id,	cat_name,	cat_icon_url)
	{
			var	thediv	=	document.getElementById('select_button_div_'+cat_name)


			//	create_clickable_icon('select_button_div_'+cat_name,	"select_button_"+cat_name,	cat_icon_url,	"javascript:select_deselect_parent_cat("+parent_cat_id+",	'"+cat_name+"')",		'Select	'+cat_name,	29,	29,	null,	"left",	3,	100,	70)
			//	create_clickable_icon('select_button_div_'+cat_name,	"open_sub_select_button_"+cat_name,	false,	"javascript:open_or_close_sub_cat("+parent_cat_id+",'"+	cat_name+"')",		'Open	subcategories	of	'+cat_name,	10,	34,	null,	"left",	null,	100,	70)


			//			fade_div("select_button_"+cat_name,	70)



			var	open_sub_select_button_a	=	createElement(thediv,"open_sub_select_button_a","open_sub_select_button_"+cat_name,'a')
				open_sub_select_button_a.innerHTML	=	""
				open_sub_select_button_a.href	=	"javascript:open_or_close_sub_cat("+parent_cat_id+",'"+	cat_name+"')"
				open_sub_select_button_a.title	=	getTrans.Translate("title_open_subcategories_of",	"%CAT%="	+	cat_name)//'Open	subcategories	of	'+cat_name

			adjust_size_to_image(open_sub_select_button_a,	"images/3_selection/selection_expand_category.png")
			set_background_image(open_sub_select_button_a,	"images/3_selection/selection_expand_category.png")


			var	select_button_a	=	createElement(thediv,"select_button_a",	"select_button_"+cat_name,'a')
				select_button_a.title	=	getTrans.Translate("title_select_category",	"%CAT%="+cat_name);//'title_select'+cat_name
				select_button_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="29"	height="29"		alt="">'
				select_button_a.href	=	"javascript:select_deselect_parent_cat("+parent_cat_id+",	'"+cat_name+"')"




			set_mouse_over_out_sel(thediv,	parent_cat_id,	cat_name)
			set_background_image(select_button_a,	cat_icon_url)
			fade_selection_button(parent_cat_id,	cat_name)
	}
	function	load_sub_selection_button(child_cat_id,	cat_name,	cat_icon_url,	parent_cat_id,	parent_name)
	{
			var	thediv	=	document.getElementById('select_button_div_'+cat_name)
			var	select_button_a	=	createElement(thediv,"sub_select_button_a",	"select_button_"+cat_name,'a')
				select_button_a.title	=	getTrans.Translate("title_select_category",	"%CAT%="	+	cat_name);//'Select	'+cat_name
				select_button_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="29"	height="29"		alt="">'
				select_button_a.href	=	"javascript:add_remove_global_filter("+child_cat_id+",	'"+cat_name+"',	"+parent_cat_id+",	'"+parent_name+"')"
				set_background_image(select_button_a,	cat_icon_url)
				change_selection_button(child_cat_id,	cat_name,	parent_cat_id,	parent_name)
				set_mouse_over_out_sel_sub(thediv,	child_cat_id,	cat_name)
	}
	function	load_sub_selection_button_special_group(child_cat_id,	cat_name,	cat_icon_url,	parent_cat_id,	parent_name)
	{
			var	thediv	=	document.getElementById('select_button_div_'+cat_name)

			var	open_sub_select_button_a	=	createElement(thediv,"open_sub_select_button_a","open_sub_select_button_"+cat_name,'a')
				open_sub_select_button_a.innerHTML	=	""
	//			open_sub_select_button_a.href	=	"javascript:open_or_close_sub_cat("+parent_cat_id+",'"+	cat_name+"')"
	//			open_sub_select_button_a.title	=	getTrans.Translate("title_open_subcategories_of",	"%CAT%="	+	cat_name)//'Open	subcategories	of	'+cat_name
			adjust_size_to_image(open_sub_select_button_a,	"images/3_selection/selection_expand_category.png")
			set_background_image(open_sub_select_button_a,	"images/3_selection/selection_expand_category.png")


			var	select_button_a	=	createElement(thediv,"select_button_a",	"select_button_"+cat_name,'a')
				select_button_a.title	=	getTrans.Translate("title_select_category",	"%CAT%="	+	cat_name);//'Select	'+cat_name
				select_button_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="29"	height="29"		alt="">'
				select_button_a.href	=	"javascript:add_remove_global_filter_special_group("+child_cat_id+",	'"+cat_name+"',	"+parent_cat_id+",	'"+parent_name+"')"
				set_background_image(select_button_a,	cat_icon_url)
				change_selection_button_special_group(child_cat_id,	cat_name,	parent_cat_id,	parent_name)
				set_mouse_over_out_sel_sub(thediv,	child_cat_id,	cat_name)
	}
	function	select_deselect_parent_cat(parent_cat_id,	cat_name)
	{
			var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
			var	top_select_button_div	=	select_button_div.offsetTop
			var	sub_category_selection	=	document.getElementById("sub_category_selection_"+parent_cat_id)
			var	top_sub_category_selection	=	sub_category_selection.offsetTop

			if(mapsystem.globalfilter.getCategoryFilter(parent_cat_id)	==	0)	//geeft	0	als	niet	of	geen	subcats,	1	als	zelf	of	alle	subcats,	2	als	enkele	subcats
			{
					mapsystem.globalfilter.setCategoryFilter(parent_cat_id,	true)
					lightup_selection_button(parent_cat_id,	cat_name)
					if(document.getElementById("sub_category_selection_"+parent_cat_id).style.visibility	==	"visible"	&&	top_select_button_div + 5	==	top_sub_category_selection)
					{
							show_sub_cat_selection(parent_cat_id,	cat_name)
					}
			}
			else
			{
					mapsystem.globalfilter.setCategoryFilter(parent_cat_id,	false)
					//			fade_selection_button(parent_cat_id,	cat_name)
					fade_div("select_button_div_"+cat_name,	option_f_o)
					if(document.getElementById("sub_category_selection_"+parent_cat_id).style.visibility	==	"visible"	&&	top_select_button_div + 5	==	top_sub_category_selection)
					{
							show_sub_cat_selection(parent_cat_id,	cat_name)
					}
			}
	}
	
	function	add_remove_global_filter(child_cat_id,	cat_name,	parent_cat_id,	parent_name)
	{
			var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
			var	select_button_a	=	document.getElementById("select_button_"+cat_name)
			if(mapsystem.globalfilter.getCategoryFilter(child_cat_id)	==	false)
			{
					mapsystem.globalfilter.setCategoryFilter(child_cat_id,true)
					lightup_selection_button(child_cat_id,	cat_name)
					lightup_selection_button(parent_cat_id,	parent_name)
			}
			else
			{
					mapsystem.globalfilter.setCategoryFilter(child_cat_id,false)
					//			fade_selection_button(child_cat_id,	cat_name)
					fade_div("select_button_div_"+cat_name,	option_f_o)
					if(mapsystem.globalfilter.getCategoryFilter(parent_cat_id)	==	0)
					{
							//					fade_selection_button(parent_cat_id,	parent_name)
							fade_div("select_button_div_"+parent_name,	option_f_o)
					}
			}
	}
	function	add_remove_global_filter_special_group(child_cat_id,	cat_name,	parent_cat_id,	parent_name)
	{
			var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
			var	select_button_a	=	document.getElementById("select_button_"+cat_name)
			if(mapsystem.globalfilter.getCategoryFilter(child_cat_id)	==	false)
			{
					mapsystem.globalfilter.setCategoryFilter(child_cat_id,true)
					lightup_selection_button(child_cat_id,	cat_name)
//					lightup_selection_button(parent_cat_id,	parent_name)
			}
			else
			{
					mapsystem.globalfilter.setCategoryFilter(child_cat_id,false)
					//			fade_selection_button(child_cat_id,	cat_name)
					fade_div("select_button_div_"+cat_name,	option_f_o)
//					if(mapsystem.globalfilter.getCategoryFilter(parent_cat_id)	==	0)
//					{
//							//					fade_selection_button(parent_cat_id,	parent_name)
//							fade_div("select_button_div_"+parent_name,	option_f_o)
//					}
			}
	}

	function	change_selection_button(child_cat_id,	cat_name,	parent_cat_id,	parent_name)
	{
			if(mapsystem.globalfilter.getCategoryFilter(child_cat_id)	==	false)
			{
					//			fade_selection_button(child_cat_id,	cat_name)
					fade_div("select_button_div_"+cat_name,	option_f_o)
			}
			else
			{
					lightup_selection_button(child_cat_id,	cat_name)
					lightup_selection_button(parent_cat_id,	parent_name)
			}
	}
	function	change_selection_button_special_group(child_cat_id,	cat_name,	parent_cat_id,	parent_name)
	{
			if(mapsystem.globalfilter.getCategoryFilter(child_cat_id)	==	false)
			{
					//			fade_selection_button(child_cat_id,	cat_name)
					fade_div("select_button_div_"+cat_name,	option_f_o)
			}
			else
			{
					lightup_selection_button(child_cat_id,	cat_name)
	//				lightup_selection_button(parent_cat_id,	parent_name)
			}
	}
	function	lightup_selection_button(cat_id,	cat_name)
	{
			var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
			change_opacity_id("select_button_div_"+cat_name,	100)
			var	select_button_a	=	document.getElementById("select_button_"+cat_name)
						select_button_a.title	=	getTrans.Translate("title_deselect_category",	"%CAT%="	+	cat_name);//'deselect_category'+cat_name
	}
	function	fade_selection_button(cat_id,	cat_name)
	{
			var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
			change_opacity_id("select_button_div_"+cat_name,	option_f_o)
			var	select_button_a	=	document.getElementById("select_button_"+cat_name)
						select_button_a.title	=	getTrans.Translate("title_select_category",	"%CAT%="	+	cat_name);//'select_categorie'+cat_name
	}
	function	lightup_selection_button_onmouseover(parent_cat_id,	cat_name)
	{
	clearTimeout(timer_category_filters)		
		hide_sub_cat_selection_direct_all()		
		close_sel_groups_direct()
		hide_show_sub_cat_selection(parent_cat_id,	cat_name)
		
			if(mapsystem.globalfilter.getCategoryFilter(parent_cat_id)	==	0)
			{
					var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
					change_opacity_id("select_button_div_"+cat_name,	option_h_o)
			}
	}
	function	lightup_selection_button_onmouseover_sub(parent_cat_id,	cat_name)
	{
			if(mapsystem.globalfilter.getCategoryFilter(parent_cat_id)	==	0)
			{
					var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
					change_opacity_id("select_button_div_"+cat_name,	option_h_o)
			}
	}

	function	fade_selection_button_onmouseout(parent_cat_id,	cat_name)
	{
		hide_sub_cat_selection(parent_cat_id)
			if(mapsystem.globalfilter.getCategoryFilter(parent_cat_id)	==	0)
			{
					var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
					change_opacity_id("select_button_div_"+cat_name,	option_f_o)
			}
	}
	function	fade_selection_button_onmouseout_sub(parent_cat_id,	cat_name)
	{
			if(mapsystem.globalfilter.getCategoryFilter(parent_cat_id)	==	0)
			{
					var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
					change_opacity_id("select_button_div_"+cat_name,	option_f_o)
			}
	}
	function	set_mouse_over_out_sel(thediv,	id_selected,	name_selected)
	{
			if	(BrowserDetect.browser == "Explorer")
			{
					var	str	=	"thediv.setAttribute('onmouseover',function	anonymous(){lightup_selection_button_onmouseover("+id_selected+",	'"+name_selected+"')})";
					eval(str)
					var	str2	=	"thediv.setAttribute('onmouseout',function	anonymous(){fade_selection_button_onmouseout("+id_selected+",	'"+name_selected+"')})";
					eval(str2)
			}
			else
			{
					thediv.setAttribute('onmouseover',"lightup_selection_button_onmouseover("+id_selected+",	'"+name_selected+"')")
					thediv.setAttribute('onmouseout',"fade_selection_button_onmouseout("+id_selected+",	'"+name_selected+"')")
			}
	}
	function	set_mouse_over_out_sel_sub(thediv,	id_selected,	name_selected)
	{
			if	(BrowserDetect.browser == "Explorer")
			{
					var	str	=	"thediv.setAttribute('onmouseover',function	anonymous(){lightup_selection_button_onmouseover_sub("+id_selected+",	'"+name_selected+"')})";
					eval(str)
					var	str2	=	"thediv.setAttribute('onmouseout',function	anonymous(){fade_selection_button_onmouseout_sub("+id_selected+",	'"+name_selected+"')})";
					eval(str2)
			}
			else
			{
					thediv.setAttribute('onmouseover',"lightup_selection_button_onmouseover_sub("+id_selected+",	'"+name_selected+"')")
					thediv.setAttribute('onmouseout',"fade_selection_button_onmouseout_sub("+id_selected+",	'"+name_selected+"')")
			}
	}

	function	open_or_close_sub_cat(parent_cat_id,	cat_name)
	{
			close_sel_groups_direct()
			
			var	select_button_div	=	document.getElementById("select_button_div_"+cat_name)
			var	top_select_button_div	=	select_button_div.offsetTop
			var	sub_category_selection	=	document.getElementById("sub_category_selection_"+parent_cat_id)
			var	top_sub_category_selection	=	sub_category_selection.offsetTop
			
			if(document.getElementById("sub_category_selection_"+parent_cat_id).style.visibility	==	"visible"	&&	top_select_button_div + 5	==	top_sub_category_selection)
			{
					hide_sub_cat_selection_direct(parent_cat_id)
			}
			else
			{
					show_sub_cat_selection(parent_cat_id,	cat_name)
			}

	}

	function	fill_filter_groups()
	{
			var	category_selection_div	=	document.getElementById("category_selection")
			var	groups_selection_div	=	document.getElementById("groups_selection")


			var	top_filter_selection_div_2	=	createElement(groups_selection_div,"top_filter_selection_div","top_filter_selection_div_2",'div')
				adjust_size_to_image(top_filter_selection_div_2, "images/3_selection/selection_cap_top.png")
				set_background_image(top_filter_selection_div_2, "images/3_selection/selection_cap_top.png")

			var	select_button_div_1	=	createElement(groups_selection_div,"select_button_groups",	"select_button_div_group_Global"	,'div')
			var	select_button_div_2	=	createElement(groups_selection_div,"select_button_groups",	"select_button_div_group_Groups"	,'div')
			var	select_button_div_3	=	createElement(groups_selection_div,"select_button_groups",	"select_button_div_group_Friends"	,'div')
			var	select_button_div_4	=	createElement(groups_selection_div,"select_button_groups",	"select_button_div_group_Search"	,'div')

			var	bottom_filter_selection_div_2	=	createElement(groups_selection_div,"bottom_filter_selection_div","bottom_filter_selection_div_2",'div')
				adjust_size_to_image(bottom_filter_selection_div_2, "images/3_selection/selection_cap_bottom.png")
				set_background_image(bottom_filter_selection_div_2, "images/3_selection/selection_cap_bottom.png")


			load_sel_groups_button(select_button_div_1,	"Global")
			if(treelzsystem.treelersocial)
			{
			load_sel_groups_button(select_button_div_2,	"Groups")
			load_sel_groups_button(select_button_div_3,	"Friends")
			}
			else
			{
			load_sel_groups_button_logged_out(select_button_div_2,	"Groups")
			load_sel_groups_button_logged_out(select_button_div_3,	"Friends")
			}
			load_sel_groups_button(select_button_div_4,	"Search")
	}

	function	load_sel_groups_button(thediv,	sort_name)
	{

			var	open_sel_groups_button	=	createElement(thediv,"open_sel_groups_button","open_sel_groups_button_"+sort_name,'div')
				open_sel_groups_button.innerHTML	=	"";
				open_sel_groups_button.title	=	getTrans.Translate("title_open_details_of",	"%SRT%="	+	sort_name);//'Open	details	of	'+sort_name
			
				adjust_size_to_image(open_sel_groups_button,	"images/3_selection/selection_expand_category.png")
				set_background_image(open_sel_groups_button,	"images/3_selection/selection_expand_category.png")

				set_mouse_down("open_sel_groups_button_"+sort_name,	"open_close_sel_groups('"+sort_name+"')")
			var	select_sel_groups	=	createElement(thediv,"select_button_a_groups",	"select_sel_groups_"+sort_name,'div')

			if(sort_name !== 'Search')
			{
							select_sel_groups.title	=	getTrans.Translate("title_deselect_filter",	"%FIL%="	+	sort_name);//'Select	'+sort_name
			}
				set_background_image(select_sel_groups, "images/3_selection/filters/icon_selection_"+sort_name+".png")
				set_mouse_over_out_div_filter("select_button_div_group_"+sort_name,	option_f_o,sort_name)
				set_mouse_down("select_sel_groups_"+sort_name,	"select_deselect_sel_groups('"+sort_name+"')")

	}
		function	load_sel_groups_button_logged_out(thediv,	sort_name)
	{

			var	open_sel_groups_button	=	createElement(thediv,"open_sel_groups_button","open_sel_groups_button_"+sort_name,'div')
				open_sel_groups_button.innerHTML	=	"";
				open_sel_groups_button.title	=	getTrans.Translate("title_open_details_of",	"%SRT%="	+	sort_name);//'Open	details	of	'+sort_name

				adjust_size_to_image(open_sel_groups_button,	"images/3_selection/selection_expand_category.png")
				set_background_image(open_sel_groups_button,	"images/3_selection/selection_expand_category.png")

				set_mouse_down("open_sel_groups_button_"+sort_name,	"show_treelz_alert('not_loggedin_"+sort_name+"')")

			var	select_sel_groups	=	createElement(thediv,"select_button_a_groups",	"select_sel_groups_"+sort_name,'div')
if(sort_name !== 'Search')
{				
				select_sel_groups.title	=	getTrans.Translate("title_deselect_filter",	"%FIL%="	+	sort_name);//'Select	'+sort_name
}

				set_background_image(select_sel_groups, "images/3_selection/filters/icon_selection_"+sort_name+".png")
				set_mouse_down("select_sel_groups_"+sort_name,	"show_treelz_alert('not_loggedin_"+sort_name+"')")
	}

	function	open_close_sel_groups(sort_name)
	{

			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)

			if(details_groups_selection.style.visibility	==	"visible"	&&	document.getElementById("standard_outer_"+sort_name))
			{
					close_sel_groups_direct()
			}
			else
			{
					fill_close_sel_groups(sort_name)
			}
	}
	function	fill_close_sel_groups(sort_name)   //deze opent ie met hover
	{
		hide_sub_cat_selection_direct_all()

					if(sort_name	==	"Global")
					{
						close_sel_groups_direct_except(sort_name)
							show_sel_groups_Global(sort_name)
					}
					if(sort_name	==	"Groups")
					{
						close_sel_groups_direct_except(sort_name)
							show_sel_groups_Groups(sort_name)
					}
					if(sort_name	==	"Friends")
					{
						close_sel_groups_direct_except(sort_name)
							show_sel_groups_Friends(sort_name)
					}
					if(sort_name	==	"Search")
					{
						close_sel_groups_direct_except(sort_name)
							show_sel_groups_Search(sort_name)
							
					}
	}

	
	function	close_sel_groups(sort_name)
	{
		if(sort_name != 'Search')
		{		
		timer_selection_filters = setTimeout("timed_close_sel_groups('"+sort_name+"')",global_timer);
		}
	}
	function	close_sel_groups_direct()
	{
		timed_close_sel_groups('Global')
		timed_close_sel_groups('Groups')
		timed_close_sel_groups('Friends')
		timed_close_sel_groups('Search')
	}
	function	close_sel_groups_direct_except(sort_name)
	{
		if(sort_name !== 'Global'){timed_close_sel_groups('Global')}
		if(sort_name !== 'Groups'){timed_close_sel_groups('Groups')}
		if(sort_name !== 'Friends'){timed_close_sel_groups('Friends')}
		if(sort_name !== 'Search'){timed_close_sel_groups('Search')}
	}

	function timed_close_sel_groups(sort_name)
	{	
		if(document.getElementById("details_groups_selection_"+sort_name))
		{
			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)
				details_groups_selection.style.visibility	=	"hidden"
		}
			hide_scroll("standard_targetdiv_Groups")
			hide_scroll("standard_targetdiv_Friends")
			hide_scroll("standard_targetdiv_Search")
	}

	function	open_sel_groups(sort_name)
	{
		clearTimeout(timer_selection_filters)
		
			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)
			details_groups_selection.style.visibility	=	"visible"
	}
	function	fill_sel_groups(sort_name)
	{
			alert("old	function")
	}
function show_sel_groups_Global(sort_name)
{
	var	details_groups_selection	=	document.getElementById("details_groups_selection_Global")
	
	if(document.getElementById("standard_titlebar_"+sort_name))
	{
			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)
				details_groups_selection.style.visibility	=	"visible"
	}
	else
	{
		fill_sel_groups_Global()
	}
}
function show_sel_groups_Groups(sort_name)
{
	var	details_groups_selection	=	document.getElementById("details_groups_selection_Groups")
	
	if(document.getElementById("standard_titlebar_"+sort_name))
	{
			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)
				details_groups_selection.style.visibility	=	"visible"
	}
	else
	{
		fill_sel_groups_Groups()
	}
}
function show_sel_groups_Friends(sort_name)
{
	var	details_groups_selection	=	document.getElementById("details_groups_selection_Friends")
	
	if(document.getElementById("standard_titlebar_"+sort_name))
	{
			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)
				details_groups_selection.style.visibility	=	"visible"
	}
	else
	{
		fill_sel_groups_Friends()
	}
}
function show_sel_groups_Search(sort_name)
{
	var	details_groups_selection	=	document.getElementById("details_groups_selection_Search")
	
	if(document.getElementById("searchresults_titlebar_"+sort_name))
	{
			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)
				details_groups_selection.style.visibility	=	"visible"
	}
	else
	{
		fill_sel_groups_Search()
	}
}
	function	fill_sel_groups_Global()
	{
			set_details_groups_selection("Global",100,	1)
			create_divs_filter_groups("Global")
			display_standard_outer("Global")
			fill_with_Global("Global")
			uncollapse_targetdiv("Global",	"standard")
	}

	function	fill_sel_groups_Groups()
	{
			set_details_groups_selection("Groups",265,	2)
			create_divs_filter_groups("Groups")
			display_standard_outer("Groups")
			fill_with_Groups("Groups")
			uncollapse_targetdiv("Groups",	"standard")
	}

	function	fill_sel_groups_Friends()
	{
			set_details_groups_selection("Friends",265,	3)
			create_divs_filter_groups("Friends")
			display_standard_outer("Friends")
			fill_with_Friends("Friends")
			uncollapse_targetdiv("Friends",	"standard")
	}
	function	fill_sel_groups_Search()
	{
			set_details_groups_selection("Search",297,	4)
			create_divs_filter_groups("Search")
			display_searchresults_outer("Search")
			display_search_input_outer("Search")
			fill_with_Search("Search")
			open_or_close_selected_search_results(true)
			uncollapse_targetdiv("Search",	"searchresults")
	}

	function	set_details_groups_selection(sort_name, set_height,	nr_from_top)
	{
			
			var	details_groups_selection_div	=	document.getElementById("details_groups_selection_"+sort_name)
			details_groups_selection_div.style.height	=	set_height

			var	groups_selection_div	=	document.getElementById("groups_selection")
			var	select_button_div_group_Global_div	=	document.getElementById("select_button_div_group_Global")
			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)
			details_groups_selection.style.visibility	=	"visible"
			details_groups_selection.innerHTML	=	""

			var bodyH = document.body.offsetHeight;


			var	T_groups_selection_div	=	groups_selection_div.offsetTop
			var	H_groups_selection_div	=	groups_selection_div.offsetHeight
			var	H_details_groups_selection	=	details_groups_selection.offsetHeight

			var one_button = select_button_div_group_Global_div.offsetHeight + 2

			var	H_select_button_div_group_Global_div	=	nr_from_top	* (one_button)
			H_details_groups_selection	=	details_groups_selection.offsetHeight
			
			var details_groups_selection_top_to_be = T_groups_selection_div	-	H_details_groups_selection	+	H_select_button_div_group_Global_div + 8
			var details_groups_selection_top_to_be_floris = T_groups_selection_div	+	H_select_button_div_group_Global_div + 8 - one_button
			
			if(details_groups_selection_top_to_be > 0)
			{
				details_groups_selection.style.top	=	details_groups_selection_top_to_be
			}
			else
			{
				var heights_together = H_details_groups_selection + T_groups_selection_div + 80 
				if(bodyH < heights_together)
				{
					details_groups_selection.style.top	=	8
				}
				else
				{
					details_groups_selection.style.top	=	details_groups_selection_top_to_be_floris
				}
			}
			
	//		alert(details_groups_selection.offsetTop)
	}


	function	global_select_all_checkbox(thecheckbox)
	{
			if(thecheckbox.checked)
			{
					turn_on_all_global_groups(function(x)
					{
							fill_sel_groups_Global()
							select_button_sel_groups("Global")
					}
					)
					;
			}
			else
			{
					turn_off_all_global_groups(function(x)
					{
							fill_sel_groups_Global()
							filter_get_some_areselected_general(function(are_selected) 
							{
								if(are_selected == false)
								{
									deselect_button_sel_groups("Global")
							
								}
							} 
							);
					}
					)
					;
			}
	}

	function filter_do_all_current_usergroups_viacheckbox(thecheckbox)
	{
	//debug(thecheckbox.checked)
	
	    if(thecheckbox.checked)
			{
					//turn_on_user_groups(treelzsystem.treelersocial.userid)
					//var usr = treelzsystem.treelersocial.basegroups
					var	b_grp	=	treelzsystem.treelersocial.basegroups
					mapsystem.globalfilter.setGroupFilter(b_grp.friends,true,true)
					mapsystem.globalfilter.setGroupFilter(b_grp.private,true,true)
					mapsystem.globalfilter.setGroupFilter(b_grp.public,true)
					
					
			}
			else
			{
					//turn_off_user_groups(treelzsystem.treelersocial.userid)
					var	b_grp	=	treelzsystem.treelersocial.basegroups
					mapsystem.globalfilter.setGroupFilter(b_grp.friends,false,true)
					mapsystem.globalfilter.setGroupFilter(b_grp.private,false,true)
					mapsystem.globalfilter.setGroupFilter(b_grp.public,false)
					
			}
			
	}
	
			
	function	fill_with_Global(sort_name)
	{
			filter_get_out_of_count_global(function(aantal,outof)
			{
				if(treelzsystem.treelersocial)
				{
					outof = 2
				}
				else
				{
					outof = 1
				}

					var	standard_titlebar	=	document.getElementById("standard_titlebar_"+sort_name)
					standard_titlebar.innerHTML	=	'global filters	(<span	id="group_selected_aantaldiv_'+sort_name+'">'+aantal+'</span>/<span	id="group_selectedoutof_aantaldiv_'+sort_name+'">'+outof+'</span>)'
					var	inputcheckbox	=	createElement(null,null,null,'input')
					inputcheckbox.setAttribute("type","checkbox");
					inputcheckbox.setAttribute("onClick","global_select_all_checkbox(this)");
					//						debug('check	of	inputbox	check	oet	zijn')
					standard_titlebar.appendChild(inputcheckbox)
					if(aantal	>=	outof)
					{
							//								debug('check'	+	aantal	+	outof);
							inputcheckbox.checked=true
							inputcheckbox.setAttribute('checked',true);
							//inputcheckbox.setAttribute('checked'=true
					}
					standard_titlebar.innerHTML	+=	'all'

					var	standard_targetdiv	=	document.getElementById("standard_targetdiv_"+sort_name)
					standard_targetdiv.style.height	=	100

					var	str	=	''
					//	1.	global
					str	+=	'<input	type="checkbox"	'
					if(mapsystem.globalfilter.getGroupFilter(1))str	+=	'	checked	';
					str	+=	'	onClick="selected_or_unselected_group(1,this, \'global_ref\')"/>'
					str	+=	"<a	href=\"javascript:Screen_ShowGroupDetails(1)\">	GLOBAL</a><br>"

					//	2.	wiki
	//				str	+=	'<input	type="checkbox"	'
	//				if(mapsystem.globalfilter.getGroupFilter(2))	str	+=	'	checked	';
	//				str	+=	'	onClick="selected_or_unselected_group(2,this, \'global_ref\')"/>'
	//				str	+=	" WIKIPEDIA <br>"

					//	3.	indien	ingelogt	my	base	groups	treelzsystem.treelersocial.basegroups.[friends	private	public]
					if(treelzsystem	&&	treelzsystem.treelersocial)
					{
					str	+=	'<input	type="checkbox"	'
							
					    if(mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.public) || mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.friends) || mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.private))	str	+=	'	checked	';
           str	+=	'	onClick="filter_do_all_current_usergroups_viacheckbox(this)"/>'
//							str	+=	"<a	href=\"javascript:Screen_ShowGroupDetails("+treelzsystem.treelersocial.basegroups.public+")\">	MY	MSGS</a><br>"
								str	+=	" MY MSGS<br>"
						
							
							/*
							
							
							str	+=	'<input	type="checkbox"	'
							if(mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.public))	str	+=	'	checked	';
							str	+=	'	onClick="selected_or_unselected_group('+treelzsystem.treelersocial.basegroups.public+',this, \'global_ref\')"/>'
							str	+=	"<a	href=\"javascript:Screen_ShowGroupDetails("+treelzsystem.treelersocial.basegroups.public+")\">	MY	PUBLIC	MSGS</a><br>"

							//						str	+=	'let	op.	volgende	deel	is	oploppend	(dus	friend	msg	altijd	in	private	en	public	msg	altijd	ook	in	friend	group	en	my	private	group)<BR>'
							str	+=	'<input	type="checkbox"	'
							if(mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.friends))	str	+=	'	checked	';
							str	+=	'	onClick="selected_or_unselected_group('+treelzsystem.treelersocial.basegroups.friends+',this, \'global_ref\')"/>'
							str	+=	"<a	href=\"javascript:Screen_ShowGroupDetails("+treelzsystem.treelersocial.basegroups.friends+")\">	MY	FRIEND	MSGS	</a><br>"

							str	+=	'<input	type="checkbox"	'
							if(mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.private))	str	+=	'	checked	';
							str	+=	'	onClick="selected_or_unselected_group('+treelzsystem.treelersocial.basegroups.private+',this, \'global_ref\')"/>'
							str	+=	"<a	href=\"javascript:Screen_ShowGroupDetails("+treelzsystem.treelersocial.basegroups.private+")\">	MY	MSGS	(incl.	private)</a><br>"
							*/
					}


					standard_targetdiv.innerHTML	=	str;
			}
			);
	}
/*
	function	selected_or_unselected_language(langid,thecheckbox,update_type)
	{
			if(thecheckbox.checked)
			{
					mapsystem.globalfilter.setLanguageFilter(langid,true)
					filter_update_allcheckbox_languages()
					select_button_sel_groups("Languages")
			}
			else
			{
					mapsystem.globalfilter.setLanguageFilter(langid,false)
					filter_update_allcheckbox_languages()
					
					filter_get_some_areselected_langs(function(are_selected) 
					{
						if(are_selected == false)
						{
							deselect_button_sel_groups("Languages")
					
						}
					} 
					);
			}
	}
*/
/*
	function	languages_select_all_checkbox(thecheckbox)
	{
			if(thecheckbox.checked)
			{
					treelzsystem.languages.getAllLanguages(function(lngs)
					{
							for(i	in	lngs)
							{
									mapsystem.globalfilter.setLanguageFilter(lngs[i].id,true,true)
							}
							mapsystem.globalfilter.recheckFilter()
							fill_sel_groups_Languages()
							select_button_sel_groups("Languages")
					}
					);
			}
			else
			{
					treelzsystem.languages.getAllLanguages(function(lngs)
					{
							for(i	in	lngs)
							{
									mapsystem.globalfilter.setLanguageFilter(lngs[i].id,false,true)
							}
							mapsystem.globalfilter.recheckFilter()
							fill_sel_groups_Languages()
							filter_get_some_areselected_langs(function(are_selected) 
							{
								if(are_selected == false)
								{
									deselect_button_sel_groups("Languages")
							
								}
							} 
							);
					}
					);
			}
	}
*/
/*
	function	filter_update_allcheckbox_languages()
	{

			treelzsystem.languages.getAllLanguages(function(lngs)
			{
					var	tot=0;
					var	selected	=	0;
					for(i	in	lngs)
					{
							var	lng	=	lngs[i]
							if(mapsystem.globalfilter.getLanguageFilter(lng.id))
							{
									selected	+=	1;
							}
							tot	+=1;
					}

			//		var	checkboxelement	=	document.getElementById('input_checkbox_all_languages_filter')
			//		var	selectedoutof_aantaldiv=	document.getElementById('filterlang_selectedoutof_aantaldiv')
			//		var	selected_aantaldiv=	document.getElementById('filterlang_selected_aantaldiv')
			//		if(selected	>=	tot)
			//		{
			//				checkboxelement.checked=true
			//				checkboxelement.setAttribute('checked',"true");
			//		}
			//		selected_aantaldiv.innerHTML	=	selected

			//		selectedoutof_aantaldiv.innerHTML	=	tot
			}
			);
	}
*/
/*
	function	fill_with_Languages(sort_name)
	{
			var	aantal	=	0;
			var	outof=0;
			var	standard_titlebar	=	document.getElementById("standard_titlebar_"+sort_name)
			standard_titlebar.innerHTML	=	'language	filters	(<span	id="filterlang_selected_aantaldiv">xx</span>/<span	id="filterlang_selectedoutof_aantaldiv">xx</span>)'
			var	inputcheckbox	=	createElement(standard_titlebar,null,'input_checkbox_all_languages_filter','input')
			inputcheckbox.setAttribute('type',"checkbox");
			inputcheckbox.setAttribute('onChange',"languages_select_all_checkbox(this)");

			standard_titlebar.innerHTML	+=	'all'

			treelzsystem.languages.getAllLanguages(function(lngs)
			{
					var	standard_targetdiv	=	document.getElementById("standard_targetdiv_"+sort_name)
					standard_targetdiv.style.height	=	100
					var	str	=	''
					for(i	in	lngs)
					{
							var	lng	=	lngs[i]
							//	1.	English
							str	+=	'<input	type="checkbox"	'
							if(mapsystem.globalfilter.getLanguageFilter(lng.id))
							{
									str	+=	'	checked	';
							}
							str	+=	'	onClick="selected_or_unselected_language('+lng.id+',this)"/>'
							str	+=	"<span>	"+lng.name+"</span><br>"


					}
					standard_targetdiv.innerHTML	=	str;
					filter_update_allcheckbox_languages()
			}
			);
			//	}
			//	);
	}
*/

	function	select_all_checkbox_mygroups(thecheckbox)
	{
			if(thecheckbox.checked)
			{
					turn_on_all_my_groups(function(x)
					{
							fill_sel_groups_Groups()
							select_button_sel_groups("Groups")
					}
					)
					;
			}
			else
			{
					turn_off_all_my_groups(function(x)
					{
							fill_sel_groups_Groups()
							filter_get_some_areselected_groups(function(are_selected) 
							{
								if(are_selected == false)
								{
									deselect_button_sel_groups("Groups")
								}
							} 
							);

					}
					)
					;

			}
	}


	function	select_all_checkbox_selectedgroups(thecheckbox)
	{
			if(thecheckbox.checked)
			{
					turn_on_all_selected_groups(function(x)
					{
							fill_sel_groups_Groups()
							//							alert('arjen:	r	t_filters	updaten	van	alle	vinkjes');
					}
					)
					;
			}
			else
			{
					turn_off_all_selected_groups(function(x)
					{
							fill_sel_groups_Groups()
							//							alert('arjen:	r	t_filters	updaten	van	alle	vinkjes');
					}
					)
					;
			}
	}


	function	fill_with_Groups(sort_name,	targetdiv)
	{
	//		fill_with_Groups_selected(sort_name,	targetdiv)
	//		fill_with_Groups_search(sort_name,	targetdiv)
			fill_with_Groups_mygroups(sort_name,	targetdiv)
	}

	function	fill_with_Groups_search(sort_name,	targetdiv)
	{
			var	searchresults_titlebar	=	document.getElementById("searchresults_titlebar_"+sort_name)
			//	search	results
			searchresults_titlebar.innerHTML	=	'search	results'
	/*		var	inputcheckbox	=	createElement(searchresults_titlebar,null,null,'input')
			inputcheckbox.setAttribute('type',"checkbox");
			inputcheckbox.setAttribute('onChange',"select_all_checkbox_selectedgroups(this)");
			//				debug('check	of	inputbox	check	oet	zijn')
			if(true)
			{
					inputcheckbox.checked=true
			}
			searchresults_titlebar.innerHTML	+=	'all'
	*/
	
			var	search_input_outer	=	document.getElementById("search_input_outer_"+sort_name)
			var	search_in_filter	=	createElement(search_input_outer,"search_in_filter_class",	"search_in_filter_bg",'div')
			set_background_div("search_in_filter_bg",	100,	"images/achtergronden/searchfield.png",	null,sort_name)
			var	search_in_filter	=	createElement(search_input_outer,"search_in_filter_class",	"search_in_filter",'div')
			var	search_in_filter	=	document.getElementById("search_in_filter")
			search_in_filter.innerHTML	+=	'<form	onSubmit="search_groups_submit();	return	false;"><div	id="field_search_in_filter"><input	id="search_groups"	class="input_searchonmap_footer"	type="text"	/></div><div	id="bu_search_in_filter"	title="Search	groups"><input	type="image"	src="images/achtergronden/empty_bu_search.gif"/></div></form>'


	}
	function	filter_update_allcheckbox_selectedgroups()
	{
//			filter_get_out_of_count_selectedgroups(function(aantal,outof)
//			{
			//		var	checkboxthe	=	document.getElementById('filter_all_selectedgroups_checkbox')
//					var	outofspan=	document.getElementById('filter_all_selectedoutof_selected')
//					var	aantalspan	=	document.getElementById('filter_all_selectedaantal_selected')

///					if(outofspan)outofspan.innerHTML	=	outof
//					if(aantalspan)	aantalspan.innerHTML	=	aantal
			/*		if(aantal	>=	outof	&&	checkboxthe)
					{
							checkboxthe.checked=true
							checkboxthe.setAttribute('checked','true');
					}
			*/
//}
//			);

	}


	function	fill_with_Groups_selected(sort_name,	targetdiv)
	{

			filter_get_out_of_count_selectedgroups(function(aantal,outof)
			{
					//debug	('steven'+	aantal	+	'	'	+	outof)
					var	selected_titlebar	=	document.getElementById("selected_titlebar_"+sort_name)
					selected_titlebar.innerHTML	=	'selected	results	(<span	id="filter_all_selectedaantal_selected">X'+aantal+'</span>/<span	id="filter_all_selectedoutof_selected">'+outof+'</span>)'
					
			/*		var	inputcheckbox	=	createElement(selected_titlebar,null,'filter_all_selectedgroups_checkbox','input')
					inputcheckbox.setAttribute('type',"checkbox");
					selected_titlebar.innerHTML	+=	'all'
					if(aantal	>=	outof)
					{
							inputcheckbox.checked=true
							inputcheckbox.setAttribute('checked','true');
					}
			*/
			}
			);
	}

	//function	fill_with_Groups_mygroups(sort_name,	targetdiv)
	function	fill_with_Groups_mygroups(sort_name)
	{
			//var	sort_name	=	'Groups';
			//				debug('fill_with_Groups_mygroups'+	sort_name)
			var	aantal=0;
			var	outof=0;

			var	standard_titlebar	=	document.getElementById("standard_titlebar_"+sort_name)
			standard_titlebar.innerHTML	=	'my	groups	(<span	id="group_selected_aantaldiv_'+sort_name+'">'+aantal+'</span>/<span	id="group_selectedoutof_aantaldiv_'+sort_name+'">'+outof+'</span>)'
			var	inputcheckbox	=	createElement(null,null,'demooiegroupsallcheckbox','input')
			inputcheckbox.setAttribute("type","checkbox");
			inputcheckbox.setAttribute('onClick',"select_all_checkbox_mygroups(this)");
			standard_titlebar.appendChild(inputcheckbox)
			//debug('check	of	inputbox	check	oet	zijn')
			/*
			filter_get_out_of_count_mygroups(function(aantal,outof)
			{
			var	inputcheckbox	=	document.getElementById('demooiegroupsallcheckbox')
			debug(aantal	+	'	'	+	outof)
			if(aantal	>=	outof)
			{
			debug('checked	groups')
			inputcheckbox.checked=true
			inputcheckbox.setAttribute('checked','true');
			}
			}
			);
			*/
			standard_titlebar.innerHTML	+=	'all'


			
			//var	standard_targetdiv	=	document.getElementById("standard_targetdiv_"+sort_name)
			var	standard_targetdiv	=	document.getElementById("standard_targetdiv_Groups")

			if(treelzsystem	&&	treelzsystem.treelersocial)
			{
					//						debug('sortname'	+	sort_name	+	standard_targetdiv	+	treelzsystem.treelersocial.userid)
					show_these_groups(treelzsystem.treelersocial.userid,	sort_name,	"0",	standard_targetdiv,null,'mygroups_ref')
			}
			else
			{
					standard_targetdiv.innerHTML	=	'you	have	to	be	logged-in	to	have	groups	here,	but	you	can	search	for	groups	below';
					uncollapse_targetdiv('Groups',	'searchresults')
			}
			screen_groups_set_total_filter(sort_name)
	}

	function	screen_groups_set_total_filter(sort_name)
	{
			//		debug("DIT	zit	niet	goed")
			filter_get_out_of_count_mygroups(function(aantal,outof)
			{
					document.getElementById("group_selectedoutof_aantaldiv_"+sort_name).innerHTML	=	outof;
					document.getElementById("group_selected_aantaldiv_"+sort_name).innerHTML	=	aantal;
				if(document.getElementById('demooiegroupsallcheckbox'))	
				{
					
					var	inputcheckbox	=	document.getElementById('demooiegroupsallcheckbox')
						
						//alert(aantal + ' ' + outof)
						if(aantal	>=	outof)
						{
						//alert('tr')
								inputcheckbox.checked=true
								inputcheckbox.setAttribute('checked',true);
						}
						else
						{
						//alert('fl')
								inputcheckbox.checked=false
								inputcheckbox.setAttribute('checked',false);
	
						}
				}
												//alert(inputcheckbox.checked)
			}
			);
	}


	function	screen_myfriends_set_total_filter(sort_name)
	{
			//		debug("DIT	zit	niet	goed")
			filter_get_out_of_count_myfriends(function(aantal,outof)
			{
					document.getElementById("group_selectedoutof_aantaldiv_"+sort_name).innerHTML	=	outof;
					document.getElementById("group_selected_aantaldiv_"+sort_name).innerHTML	=	aantal;
					var	inputcheckbox	=	document.getElementById('demooiegroupsallcheckbox')
					if(aantal	>=	outof)
					{
							inputcheckbox.checked=true
							inputcheckbox.setAttribute('checked',true);
					}
					else
					{
							inputcheckbox.checked=false
							inputcheckbox.setAttribute('checked',false);
					}
			}
			);
	}

	function	display_standard_outer(sort_name){document.getElementById("standard_outer_"+sort_name).style.display	=	""}
	function	display_searchresults_outer(sort_name){document.getElementById("searchresults_outer_"+sort_name).style.display	=	""}
	function	display_selected_outer(sort_name)
	{
			document.getElementById("selected_outer_"+sort_name).style.display	=	""
	if(sort_name	==	"Groups"){filter_update_allcheckbox_selectedgroups()}
	if(sort_name	==	"Friends"){filter_update_allcheckbox_selectedtreelerz()}

	}
	function	display_search_input_outer(sort_name){document.getElementById("search_input_outer_"+sort_name).style.display	=	""}

	function	none_display_standard_outer(sort_name){document.getElementById("standard_outer_"+sort_name).style.display	=	"none"}
	function	none_display_searchresults_outer(sort_name){document.getElementById("searchresults_outer_"+sort_name).style.display	=	"none"}
	function	none_display_selected_outer(sort_name){document.getElementById("selected_outer_"+sort_name).style.display	=	"none"}
	function	none_display_search_input_outer(sort_name){document.getElementById("search_input_outer_"+sort_name).style.display	=	"none"}

	function	create_divs_filter_groups(sort_name)
	{
			var	details_groups_selection	=	document.getElementById("details_groups_selection_"+sort_name)

			var	standard_outer	=	createElement(details_groups_selection,"sel_groups_outer",	"standard_outer_"+sort_name,'div')
	//		set_background_div("standard_outer_"+sort_name,	75,	null,	"black")
			set_background_div_sel("standard_outer_"+sort_name,	85,	"black", "top_and_bottom", sort_name)
			
			
			var	standard_titlebar	=	createElement(standard_outer,"titlebar_in_groupfilter",	"standard_titlebar_"+sort_name,'div')
			set_mouse_down("standard_titlebar_"+sort_name,	"uncollapse_targetdiv('"+sort_name+"',	'standard')")
			var	standard_targetdiv	=	createElement(standard_outer,"targetdiv_in_groupfilter",	"standard_targetdiv_"+sort_name,'div')
			
				
		//		show_usergen_groups_not_member_but_selected(selected_targetdiv)
			
			var	searchresults_outer	=	createElement(details_groups_selection,"sel_groups_outer",	"searchresults_outer_"+sort_name,'div')
			set_background_div_sel("searchresults_outer_"+sort_name,	85,	"black", "top", sort_name)
			var	searchresults_titlebar	=	createElement(searchresults_outer,"titlebar_in_groupfilter",	"searchresults_titlebar_"+sort_name,'div')
			set_mouse_down("searchresults_titlebar_"+sort_name,	"uncollapse_targetdiv('"+sort_name+"',	'searchresults')")
			var	searchresults_targetdiv	=	createElement(searchresults_outer,"targetdiv_in_groupfilter_search",	"searchresults_targetdiv_"+sort_name,'div')
				var	group_searchresults_targetdiv	=	createElement(searchresults_targetdiv,"targetdiv_in_groupfilter_inner",	"group_searchresults_targetdiv_"+sort_name,'div')
				var	user_searchresults_targetdiv	=	createElement(searchresults_targetdiv,"targetdiv_in_groupfilter_inner",	"user_searchresults_targetdiv_"+sort_name,'div')
				
					group_searchresults_targetdiv.innerHTML	=	"<span	class=\"grey\"><strong>Groups:</strong> <br/>No Groups found...</span>"
					user_searchresults_targetdiv.innerHTML	=	"<span	class=\"grey\"><strong>Treelerz:</strong> <br/>No Treelerz found...</span>"


			
			var	selected_outer	=	createElement(details_groups_selection,"sel_groups_outer",	"selected_outer_"+sort_name,'div')
			set_background_div("selected_outer_"+sort_name,	85,	null,	"black", sort_name)
			var	selected_titlebar	=	createElement(selected_outer,"titlebar_in_groupfilter",	"selected_titlebar_"+sort_name,'div')
			set_mouse_down("selected_titlebar_"+sort_name,	"uncollapse_targetdiv('"+sort_name+"',	'selected')")
			var	selected_targetdiv	=	createElement(selected_outer,"targetdiv_in_groupfilter_search",	"selected_targetdiv_"+sort_name,'div')
				var	group_selected_targetdiv	=	createElement(selected_targetdiv,"targetdiv_in_groupfilter_inner",	"group_selected_targetdiv_"+sort_name,'div')
				var	user_selected_targetdiv	=	createElement(selected_targetdiv,"targetdiv_in_groupfilter_inner",	"user_selected_targetdiv_"+sort_name,'div')
			
			var	search_input_outer	=	createElement(details_groups_selection,"sel_groups_outer_field",	"search_input_outer_"+sort_name,'div')
			
			set_background_div_sel("search_input_outer_"+sort_name,	85,	"black", "bottom", sort_name)

			standard_outer.style.display	=	"none"
			searchresults_outer.style.display	=	"none"
			selected_outer.style.display	=	"none"
			search_input_outer.style.display	=	"none"

		if(sort_name == 'Search')
		{
					add_close_button("details_groups_selection_Search",	"javascript:timed_close_sel_groups('Search')")
		}
	}



	function	uncollapse_targetdiv(sort_name,	target, onsubmit)
	{
		

			var	height_outer_filters_groups	=	""
			var	height_targetdiv_filters_groups	=	""
			if(sort_name	==	"Global"	||	sort_name	==	"Languages")
			{
					height_outer_filters_groups	=	"100px"
					height_targetdiv_filters_groups	=	"70px"
			}
			else
			{
					if(document.getElementById("selected_outer_"+sort_name).style.display	==	"none")
					{
							height_outer_filters_groups	=	"265px"
							height_targetdiv_filters_groups	=	"217px"
					}
					else
					{
							height_outer_filters_groups	=	"238px"
							height_targetdiv_filters_groups	=	"208px"
					}
			}

			collapse_all_filters(sort_name)
			var	targetdiv	=	document.getElementById(target+"_outer_"+sort_name)
			targetdiv.style.height	=	height_outer_filters_groups
			var	targetdiv_2	=	document.getElementById(target+"_targetdiv_"+sort_name)
			targetdiv_2.style.height	=	height_targetdiv_filters_groups
	}
	function	collapse_all_filters(sort_name)
	{
			if(document.getElementById("standard_outer_"+sort_name))
			{
					collapse_targetdiv("standard_outer_"+sort_name,	25)
					collapse_targetdiv("standard_targetdiv_"+sort_name,	1)
			}
			if(document.getElementById("searchresults_outer_"+sort_name))
			{
					collapse_targetdiv("searchresults_outer_"+sort_name,	25)
					collapse_targetdiv("searchresults_targetdiv_"+sort_name,	1)
			}
			if(document.getElementById("selected_targetdiv_"+sort_name))
			{
					collapse_targetdiv("selected_outer_"+sort_name,	25)
					collapse_targetdiv("selected_targetdiv_"+sort_name,	1)
			}
	}
	function	collapse_targetdiv(target,	height)
	{
			var	targetdiv	=	document.getElementById(target)
			targetdiv.style.height	=	height
	}

	/*	function	fill_with_Settings(sort_name,	targetdiv)
	{
	show_these_groups(loggedin_id,	sort_name,	"4",	targetdiv)
	}
	*/








	function	select_all_checkbox_usersearch(thecheckbox)
	{
			if(thecheckbox.checked)
			{
					turn_on_all_selected_treelerz(function(x)
					{
							fill_sel_groups_Friends()
							//							alert('arjen:	r	t_filters	updaten	van	alle	vinkjes');
					}
					)
					;
			}
			else
			{
					turn_off_all_selected_treelerz(function(x)
					{
							fill_sel_groups_Friends()
							//							alert('arjen:	r	t_filters	updaten	van	alle	vinkjes');
					}
					)
					;
			}
	}


	function	select_all_checkbox_myfriends(thecheckbox)
	{
			if(thecheckbox.checked)
			{
					turn_on_all_my_friends(function(x)
					{
							fill_sel_groups_Friends()
							select_button_sel_groups("Friends")
					}
					)
					;
			}
			else
			{
					turn_off_all_my_friends(function(x)
					{
							
							filter_get_some_areselected_users(function(are_selected) 
							{
							fill_sel_groups_Friends()
								if(are_selected == false)
								{
									deselect_button_sel_groups("Friends")
								}
							} 
							);

					}
					)
					;
			}
	}

	function	fill_with_Friends(sort_name)
	{
			fill_with_Friends_myfriends(sort_name)
	//		fill_with_Friends_selected(sort_name)
	//		fill_with_Friends_search(sort_name)
	}
	function	fill_with_Search(sort_name)
	{
			fill_with_Search_selected(sort_name)
			fill_with_Search_search(sort_name)
	}
	function	fill_with_Friends_myfriends(sort_name)
	{
			var	standard_titlebar	=	document.getElementById("standard_titlebar_"+sort_name)


			standard_titlebar.innerHTML	=	'my	friends	(<span	id="group_selected_aantaldiv_'+sort_name+'">0</span>/<span	id="group_selectedoutof_aantaldiv_'+sort_name+'">0</span>)'
			var	inputcheckbox	=	createElement(null,null,'demooiegroupsallcheckbox','input')
			inputcheckbox.setAttribute('type',"checkbox");
			inputcheckbox.setAttribute('onClick',"select_all_checkbox_myfriends(this)");
			standard_titlebar.appendChild(inputcheckbox)
			//				debug('check	of	inputbox	check	oet	zijn')
			//	door	arjen				var	checkmoetzijn	=true
			//	door	arjen				if(checkmoetzijn)
			//	door	arjen				{
			inputcheckbox.checked=true
			//	door	arjen				}
			standard_titlebar.innerHTML	+=	'all'


			screen_myfriends_set_total_filter(sort_name)
			var	standard_targetdiv	=	document.getElementById("standard_targetdiv_"+sort_name)

			if(treelzsystem	&&	treelzsystem.treelersocial)
			{
					//	show_these_groups_friends(loggedin_id,	sort_name,	"3",	targetdiv2,false)
					var	refreshname	=	'myfriends_ref';
					show_these_groups_friends(treelzsystem.treelersocial.userid,	standard_targetdiv,refreshname)
			}
			else
			{
					standard_targetdiv.innerHTML	+=	'Need	to	be	logged	in	to	see	friends';
			}
/*			var	search_input_outer	=	document.getElementById("search_input_outer_"+sort_name)
			var	search_in_filter	=	createElement(search_input_outer,"search_in_filter_class",	"search_in_filter_bg",'div')
			set_background_div("search_in_filter_bg",	100,	"images/achtergronden/searchfield.png",	null, sort_name)
			var	search_in_filter	=	createElement(search_input_outer,"search_in_filter_class",	"search_in_filter",'div')
			var	search_in_filter	=	document.getElementById("search_in_filter")
			search_in_filter.innerHTML	+=	'<form	onSubmit="search_users_submit();	return	false;"><div	id="field_search_in_filter"><input	id="search_users"	class="input_searchonmap_footer"	type="text"	/></div><div	id="bu_search_in_filter"	title="Search	groups"><input	type="image"	src="images/achtergronden/empty_bu_search.gif"/></div></form>'
*/
	}
	function	fill_with_Friends_selected(sort_name,	targetdiv)
	{
			filter_get_out_of_count_selectedtreelerz(function(aantal,outof)
			{

					var	selected_titlebar	=	document.getElementById("selected_titlebar_"+sort_name)
					selected_titlebar.innerHTML	=	'selected	results	(<span	id="filter_all_selectedaantal_selected_treelerz">'+aantal+'</span>/<span	id="filter_all_selectedoutof_selected_treelerz">'+outof+'</span>)'
/*
					var	inputcheckbox	=	createElement(selected_titlebar,null,'filter_all_selectedtreelerz_checkbox','input')
					inputcheckbox.setAttribute('type',"checkbox");
					selected_titlebar.innerHTML	+=	'all'
					if(aantal	>=	outof)
					{
							inputcheckbox.checked=true
							inputcheckbox.setAttribute('checked','true');
					}
	*/		}
			);



	}
	function	fill_with_Search_selected(sort_name)
	{
			filter_get_out_of_count_selectedtreelerz(function(aantal,outof)
			{
					var	selected_titlebar	=	document.getElementById("selected_titlebar_"+sort_name)
					selected_titlebar.innerHTML	=	'selected	results	(<span	id="filter_all_selectedaantal_selected_treelerz">'+aantal+'</span>)'
			}
			);
	}

		function	fill_with_Search_search(sort_name,	targetdiv)
	{
			var	searchresults_titlebar	=	document.getElementById("searchresults_titlebar_"+sort_name)
			searchresults_titlebar.innerHTML	=	'search	results'
			var	search_input_outer	=	document.getElementById("search_input_outer_"+sort_name)
			var	search_in_filter	=	createElement(search_input_outer,"search_in_filter_class",	"search_in_filter_bg",'div')
			set_background_div("search_in_filter_bg",	100,	"images/achtergronden/searchfield.png",	null, sort_name)
			var	search_in_filter	=	createElement(search_input_outer,"search_in_filter_class",	"search_in_filter",'div')
			var	search_in_filter	=	document.getElementById("search_in_filter")
			search_in_filter.innerHTML	+=	'<form	onSubmit="search_submit();	return	false;"><div	id="field_search_in_filter"><input	id="search_groups"	class="input_searchonmap_footer"	type="text"	/></div><div	id="bu_search_in_filter"	title="Search	groups"><input	type="image"	src="images/achtergronden/empty_bu_search.gif"/></div></form>'


	}
	function search_submit(start_search)
	{
		search_groups_submit()
		search_users_submit()
		if(start_search !== false)
		{
		count_search_results()
		}
	}

	function	search_groups_submit()
	{
			display_searchresults_outer("Search")
			uncollapse_targetdiv("Search",	"searchresults", true)

			var	string	=	document.getElementById("search_groups").value
			var	searchresults_targetdiv	=	document.getElementById("group_searchresults_targetdiv_Search");
				searchresults_targetdiv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'


			var	nameofflex	=	"details_groups_selection_inner_Search"
			search_for_groups_into_targetdiv(searchresults_targetdiv,string,nameofflex)

	}

	function	search_for_groups_into_targetdiv(targetdiv,string,nameofflex)
	{
	//		var	searchresults_titlebar_Search	=	document.getElementById("searchresults_titlebar_Search");

			//	TODO	zapbaar	maken
			var	aantal	=	10;
			var	start	=	0;

			var	extraoptions	=	[]
			extraoptions.start	=	start;
			extraoptions.aantal	=	aantal;
			mapsystem.groups.searchGroupByString(string,	function(grps,aantal)
			{

		//			searchresults_titlebar_Search.innerHTML	=	'search	results	('	+	aantal	+	')<br>';

					targetdiv.innerHTML	=	'<span	class=\"grey\"><strong>Groups: </strong>('+aantal+')</span><br/>'
					var	none	=	true
					for(i	in	grps)
					{
							var	none	=	false
							var	grp	=	grps[i];
							//targetdiv.innerHTML	+=	'Group:	'	+	grp.id	+	'	'+	grp.name	+'<br>';
							add_group_to_targetdiv(grp.id,targetdiv,nameofflex)
					}
					if(none)	targetdiv.innerHTML	=	'<span	class=\"grey\"><strong>Groups:</strong> (0)<br/>No Groups found...</span>'
					if(nameofflex)
					{
							//debug('search:'+nameofflex);
		//					CSBfleXcroll(nameofflex);
					}
			}
			,extraoptions);

	}

	function	search_users_submit()
	{
			var	nameofflex	=	"details_groups_selection_inner_Search"
			display_searchresults_outer("Search")
			uncollapse_targetdiv("Search",	"searchresults")

			var	string	=	document.getElementById("search_groups").value
			var	searchresults_targetdiv	=	document.getElementById("user_searchresults_targetdiv_Search");
				searchresults_targetdiv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
			search_for_users_into_targetdiv(searchresults_targetdiv,string,nameofflex)
	}
	function	search_for_users_into_targetdiv(searchresults_targetdiv,string,nameofflex)
	{
	//		var	searchresults_titlebar_Friends	=	document.getElementById("searchresults_titlebar_Friends");

			var	string	=	document.getElementById("search_groups").value

			//	TODO	zapbaar	maken
			var	aantal	=	10;
			var	start	=	0;

			var	extraoptions	=	[]
			extraoptions.start	=	start;
			extraoptions.amount	=	aantal;

			treelzsystem.users.searchPerson(string,	function(users,aantal)
			{

					var	targetdiv	=		document.getElementById("user_searchresults_targetdiv_Search");
					searchresults_targetdiv.innerHTML	=	'<span	class=\"grey\"><strong>Treelerz: </strong>('+aantal+')</span><br/>'
	//				searchresults_titlebar_Friends.innerHTML	=	'search	results	('	+	aantal	+	')<br>'

					var	none	=	true;
					for(i	in	users)
					{
							var	usr	=	users[i];
							none	=	false
							add_usergroup_to_targetdiv(usr.b_grp.public,targetdiv,nameofflex)
					}
					if(none)	searchresults_targetdiv.innerHTML	=	'<span	class=\"grey\"><strong>Treelerz:</strong> (0)<br/>No Treelerz found...</span>';
			}
			,extraoptions);
	}
	
	function count_search_results()
	{
		var	string	=	document.getElementById("search_groups").value
		
			mapsystem.groups.searchGroupByString(string,function(grps,aantal_grps)
			{
				treelzsystem.users.searchPerson(string,function(users,aantal_users)
				{
					var aantal_grps_nr = aantal_grps - 0
					var aantal_users_nr = aantal_users - 0
					var nr_search_results = aantal_grps_nr + aantal_users_nr
					
						document.getElementById("searchresults_titlebar_Search").innerHTML	=	'search	results	('	+	nr_search_results	+	')<br>';
				}
				);
			}
			);
	}
	
	function	filter_update_allcheckbox_selectedtreelerz()
	{
			filter_get_out_of_count_selectedtreelerz(function(aantal,outof)
			{
			//		var	checkboxthe	=	document.getElementById('filter_all_selectedtreelerz_checkbox')
					var	outofspan=	document.getElementById('filter_all_selectedoutof_selected_treelerz')
					var	aantalspan	=	document.getElementById('filter_all_selectedaantal_selected_treelerz')
					outofspan.innerHTML	=	outof
					aantalspan.innerHTML	=	aantal
		/*			if(aantal	>=	outof)
					{
							checkboxthe.checked=true
							checkboxthe.setAttribute('checked','true');
					}
		*/	}
			);
	}

	function	show_usergen_users_not_member_but_selected(targetdiv,nameofflex)
	{
			if(treelzsystem	&&	treelzsystem.treelersocial)
			{

					var	eoptions	=	[];
					/*eoptions['type']	=	'0';*/
					mapsystem.groups.getGroupUsersMemberOf(treelzsystem.treelersocial.userid,	function(grps)
					{
							__show_usergen_users_not_member_but_selected(targetdiv,grps,nameofflex)
					}
					,eoptions);
			}
			else
			{
					var	grps	=	[]
					__show_usergen_users_not_member_but_selected(targetdiv,grps,nameofflex)
			}
	}

	function	__show_usergen_users_not_member_but_selected(targetdiv,grps,nameofflex)
	{

			//	also	get	all	selected:
			var	selected_grps	=	mapsystem.globalfilter.getGroupFilters()

			targetdiv.innerHTML	=	''
			var	str	=	''
			for(i	in	selected_grps)
			{
					if(selected_grps[i]	&&	!grps[i])
					{
							mapsystem.groups.getGroup(i,function(grp)
							{
									if(grp.type	==	'3')
									{
											add_usergroup_to_targetdiv(grp.id,targetdiv,nameofflex)
									}
									if(grp.type	==	'2')
									{
											add_usergroup_to_targetdiv(grp.id,targetdiv,nameofflex)
									}
									if(grp.type	==	'4')
									{
											add_usergroup_to_targetdiv(grp.id,targetdiv,nameofflex)
									}
							}
							);
					}
			}

	//		CSBfleXcroll(nameofflex)

	}

	function	update_myfriends_ding(x)
	{
	}

	function	unselect_all_friends(targetvalue)
	{
			if(targetvalue)
			{
					turn_on_all_my_friends(update_myfriends_ding)
			}
			else
			{
					turn_off_all_my_friends(update_myfriends_ding)
			}
			/*
			select_all_friends(targetvalue,function(x)
			{
			//	UPDATE
			//										alert('na	unselecten	nog	ff	updaten	scherm')
			}
			)*/

	}

	function	doselect_all_members(targetvalue)
	{
			if(targetvalue)
			{
					turn_on_all_my_groups(update_myfriends_ding)
			}
			else
			{
					turn_off_all_my_groups(update_myfriends_ding)
			}
			/*
			select_all_member(targetvalue,function(x)
			{
			//	UPDATE
			//									alert('na	unselecten	nog	ff	updaten	scherm')

			}
			)*/
	}

	function	doselect_all_othersgroups(targetvalue)
	{
			select_all_selected_groups_not_member_of(targetvalue,function(x)
			{
					//	UPDATE
					//									alert('na	unselecten	nog	ff	updaten	scherm')

			}
			)
	}

	function	doselect_all_groups_of_type_zero(targetvalue)
	{

			select_all_member(targetvalue,function(x)
			{
					select_all_selected_groups_not_member_of(targetvalue,function(y)
					{

							//	UPDATE
							//													alert('na	unselecten	nog	ff	updaten	scherm')
					}
					)
			}
			)
	}
	function	select_deselect_sel_groups(sort_name)
	{
			if(sort_name	==	"Global")
			{
					filter_get_out_of_count_global(function(aantal,outof)
					{
						if(aantal !== 0)	
						{
							turn_off_all_global_groups(function(x){});
							deselect_button_sel_groups(sort_name)
							change_title_filter_to_select(sort_name)
							if(document.getElementById('standard_titlebar_Global'))
							{if(document.getElementById('details_groups_selection_Global').style.visibility == 'visible'){fill_sel_groups_Global()}}
						}
					
						else
						{
							turn_on_all_global_groups(function(x){});
							select_button_sel_groups(sort_name)
							change_title_filter_to_deselect(sort_name)
							if(document.getElementById('standard_titlebar_Global'))
							{if(document.getElementById('details_groups_selection_Global').style.visibility == 'visible'){fill_sel_groups_Global()}}
						}
					}
					);
			}
			if(sort_name	==	"Groups")
			{
					filter_get_out_of_count_mygroups(function(aantal,outof)
					{
						if(aantal !== 0)	
						{
							turn_off_all_my_groups(function(x){});
							turn_off_all_selected_groups(function(x){});
							deselect_button_sel_groups(sort_name)
							change_title_filter_to_select(sort_name)
							if(document.getElementById('standard_titlebar_Groups'))
							{if(document.getElementById('details_groups_selection_Groups').style.visibility == 'visible'){fill_sel_groups_Groups()}}
						}
						else
						{
							turn_on_all_my_groups(function(x){});
							turn_on_all_selected_groups(function(x){});
							select_button_sel_groups(sort_name)
							change_title_filter_to_deselect(sort_name)
							if(document.getElementById('standard_titlebar_Groups'))
							{if(document.getElementById('details_groups_selection_Groups').style.visibility == 'visible'){fill_sel_groups_Groups()}}
						}
					}
					);
			}
			if(sort_name	==	"Friends")
			{
					filter_get_out_of_count_myfriends(function(aantal,outof)
					{
						if(aantal !== 0)	
						{
							users_groups_all_selected	=	false
							turn_off_all_my_friends(function(x){});
							turn_off_all_selected_treelerz(function(x){});
							deselect_button_sel_groups(sort_name)
							change_title_filter_to_select(sort_name)
							if(document.getElementById('standard_titlebar_Friends'))
							{if(document.getElementById('details_groups_selection_Friends').style.visibility == 'visible'){fill_sel_groups_Friends()}}
						}
						else
						{
							users_groups_all_selected	=	true
							turn_on_all_selected_treelerz(function(x){});
							turn_on_all_my_friends(function(x){});
							select_button_sel_groups(sort_name)
							change_title_filter_to_deselect(sort_name)
							if(document.getElementById('standard_titlebar_Friends'))
							{if(document.getElementById('details_groups_selection_Friends').style.visibility == 'visible'){fill_sel_groups_Friends()}}
						}
					}
					);
			}
	}
	function change_title_filter_to_deselect(sort_name)
	{
			var	select_sel_groups_button	=	document.getElementById("select_sel_groups_"+sort_name)//GEVONDEN
if(sort_name !== 'Search')
{				
			select_sel_groups_button.title = getTrans.Translate("title_deselect_filter",	"%FIL%="	+	sort_name)
}
	}

	function change_title_filter_to_select(sort_name)
	{
			var	select_sel_groups_button	=	document.getElementById("select_sel_groups_"+sort_name)//GEVONDEN
			select_sel_groups_button.title = getTrans.Translate("title_select_filter",	"%FIL%="	+	sort_name)
	}

	function	select_button_sel_groups(sort_name)
	{
	//		set_background_div("open_sel_groups_button_"+sort_name,	70,	null,	"grey")
	//		set_background_div("select_sel_groups_"+sort_name,	90,	null,	"black")
			
	//		var	targetdiv	=		document.getElementById("select_button_div_group_"+sort_name);
			
			
			change_opacity_id("select_button_div_group_"+sort_name, 100)
	}
	function	deselect_button_sel_groups(sort_name)
	{
	//		set_background_div("open_sel_groups_button_"+sort_name,	option_f_o,	null,	"grey")
	//		set_background_div("select_sel_groups_"+sort_name,	option_f_o,	null,	"black")

		//	var	targetdiv	=	document.getElementById("select_button_div_group_"+sort_name);


			change_opacity_id("select_button_div_group_"+sort_name, option_f_o)
	}

	function	show_usergen_users_not_friends_but_selected(targetdiv)
	{
		
	    targetdiv.innerHTML= '<img src="images/indicator.gif" alt="">'
			get_list_of_possible_groups_selected_treelerz(function(grp_ids)
			{
            mapsystem.groups.getMultiple(grp_ids,function(grps)
            {
				filter_get_out_of_count_selectedtreelerz(function(aantal_friends,outof_friends)
				{	
						targetdiv.innerHTML = '<span class="grey"><strong>Treelerz:</strong> ('+aantal_friends+')</span><br/>'
				}
				);
            var starters = [];
                for(i in grps)
                {
                    var grp = grps[i]
                    if(starters[grp.starter] == true)
                    {
                    }
                    else
                    {
                      if(grp.type	==	'3'	||	grp.type	==	'4')
                      {
                          add_usergroup_to_targetdiv(grp.id,targetdiv)
                          starters[grp.starter] = true
                      }
                    }
                }
            }            
            );
			}			
			);
			/*
					for(i	in	grp_ids)
					{
							mapsystem.groups.getGroup(grp_ids[i],function(grp)
							{
									if(grp.type	==	'3'	||	grp.type	==	'4')
									{
											add_usergroup_to_targetdiv(grp.id,targetdiv)
									}
							}
							);

					}
				//	CSBfleXcroll("details_groups_selection_inner_groups")
			}
			);
			*/
			/*
			//debug('show_usergen_groups_not_member_but_selected'	+	targetdiv);
			if(treelzsystem	&&	treelzsystem.treelersxocial)
			{
			//debug('loggedin')
			var	eoptions	=	[];
			eoptions['type']	=	'0';
			mapsystem.groups.getGroupUsersMemberOf(treelzsystem.treelersocial.userid,	function(grps)
			{
			__show_usergen_groups_not_member_but_selected(targetdiv,grps)
			}
			,eoptions);
			}
			else
			{
			//debug('not	logged	in')
			var	grps	=	[]
			__show_usergen_groups_not_member_but_selected(targetdiv,grps)
			}
			*/
	}



	function	show_usergen_groups_not_member_but_selected(targetdiv)
	{
			//debug('show_usergen_groups_not_member_but_selected'	+	targetdiv);
			if(treelzsystem	&&	treelzsystem.treelersocial)
			{
					//debug('loggedin')
					var	eoptions	=	[];
					eoptions['type']	=	'0';
					mapsystem.groups.getGroupUsersMemberOf(treelzsystem.treelersocial.userid,	function(grps)
					{

							__show_usergen_groups_not_member_but_selected(targetdiv,grps)
					}
					,eoptions);
			}
			else
			{
					//debug('not	logged	in')
					var	grps	=	[]
					__show_usergen_groups_not_member_but_selected(targetdiv,grps)
			}
	}

	function	__show_usergen_groups_not_member_but_selected(targetdiv,grps)
	{
			//debug('__show_usergen_groups_not_member_but_selected	'	+	targetdiv	+	'	'	+	grps.length)
			//	also	get	all	selected:
			var	selected_grps	=	mapsystem.globalfilter.getGroupFilters()
			
			filter_get_out_of_count_selectedgroups(function(aantal_groups,outof_groups)
			{
				targetdiv.innerHTML	=	'<span class="grey"><strong>Groups:</strong> ('+aantal_groups+')</span><br/>'
			
			
			var	str	=	''
			for(i	in	selected_grps)
			{
					if(selected_grps[i]	&&	!grps[i])
					{
							mapsystem.groups.getGroup(i,function(grp)
							{
									if(grp.type	==	'0')
									{
											add_group_to_targetdiv(grp.id,targetdiv)
									}
							}
							);
					}
			}
			}
			);
	//		CSBfleXcroll("details_groups_selection_inner_groups")

	}

	function	add_group_to_targetdiv(groupid,targetdiv,nameofflex)
	{
			mapsystem.groups.getGroup(groupid,function(grp)
			{
					var	inputcheckbox	=	createElement(null,null,null,'input')
					inputcheckbox.setAttribute('type',"checkbox");
					targetdiv.appendChild(inputcheckbox) 
					if(mapsystem.globalfilter.getGroupFilter(grp.id))
					{
							inputcheckbox.checked	=	true
					}
					
					if (BrowserDetect.browser == "Explorer")
					{
							var str = "inputcheckbox.setAttribute('onclick',function anonymous(){selected_or_unselected_group("+groupid+",this,'"+nameofflex+"')})";
							eval(str)
					}
					else
					{
					inputcheckbox.setAttribute('onClick',"selected_or_unselected_group("+groupid+",this,'"+nameofflex+"')");
					}

					var	naamenclikje	=	createElement(targetdiv,null,null,'a')
	//				naamenclikje.innerHTML	=	grp.name	+	'	|	'	+	grp.title
					naamenclikje.innerHTML	=	grp.title
					
					if(grp.title == '')
					{
					naamenclikje.innerHTML	=	grp.name
					}
					
					naamenclikje.setAttribute('href',"javascript:Screen_ShowGroupDetails("+groupid+")")

					targetdiv.innerHTML += "<br>"
			//		createElement(targetdiv,null,null,'br')
					if(nameofflex)
					{
							//debug('add	to	target:'+nameofflex);
			//				CSBfleXcroll(nameofflex);
					}
			}
			);
	}

	function	add_usergroup_to_targetdiv(groupid,targetdiv,nameofflex)
	{
			mapsystem.groups.getGroup(groupid,function(grp)
			{
					treelzsystem.users.getUser(grp.starter,true,function(usr)
					{
							var	inputcheckbox	=	createElement(null,null,null,'input')
							inputcheckbox.setAttribute('type',"checkbox");
							targetdiv.appendChild(inputcheckbox)
							//if(mapsystem.globalfilter.getGroupFilter(grp.id))
							if(mapsystem.globalfilter.getGroupFilter(usr.b_grp.friends) || mapsystem.globalfilter.getGroupFilter(usr.b_grp.public))
							{
									inputcheckbox.checked	=	true
							}
						if (BrowserDetect.browser == "Explorer")
						{
								var str = "inputcheckbox.setAttribute('onclick',function anonymous(){selected_or_unselected_usergroup("+groupid+","+usr.id+",this,'"+nameofflex+"')})";
								eval(str)
						}
						else
						{
							inputcheckbox.setAttribute('onClick',"selected_or_unselected_usergroup("+groupid+","+usr.id+",this,'"+nameofflex+"')");
						}

							var	naamenclikje	=	createElement(targetdiv,null,null,'a')
							naamenclikje.innerHTML	=	usr.firstname		+	'	'	+	usr.lastname
							naamenclikje.setAttribute('href',"javascript:Screen_InitSideBarUserProfile("+usr.id+")")
							
							targetdiv.innerHTML += "<br>"
			//				createElement(targetdiv,null,null,'<br>')
							if(nameofflex)
							{
									//debug('add	to	target:'+nameofflex);
			//						CSBfleXcroll(nameofflex);
							}
					}
					);
					
			}
			);
	}
	function	show_these_groups(gebruikuid,	sort_name,	type,	targetdiv,noreset,refreshname)
	{
			//				debug('show_these_groups:'+gebruikuid	+	'	'	+sort_name	+	'	'	+type+	'	'	+targetdiv+	'	'	+noreset+	'	'	+refreshname)
			var	eoptions	=	[];
			eoptions['type']	=	type;
			//targetdiv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
			//				debug('show_these_groups	MEMBER	OF');
			/*
			get_list_of_possible_groups_my_groups(function(thegroups)
			{
			debug('toevoegen')
			for(i	in	thegroups)
			{
			//debug('toe'+i)
			var	grp	=	thegroups[i]
			add_group_to_targetdiv(grp.id,targetdiv,refreshname)
			}
			debug('einde	toevoegen')
		//	CSBfleXcroll("details_groups_selection_inner_"+sort_name)
			}
			);
			*/

			var	theid	=	treelzsystem.treelersocial.userid
			mapsystem.groups.getGroupUsersMemberOf(theid,	function(grps,aantal)
			{
					//debug('homo');
					//	debug(grps.length)
					if(noreset	==	true)
					{
							//debug('no	reset')
					}
					else
					{
							//debug('no	')
							targetdiv.innerHTML	=	''
					}

					var	grps	=	getSortedGroupsList(grps);//grps.sort(function_sortGroupObjectsByName)
					for(var	i=0;i<	grps.length;i++)
					{
							if(grps[i])
							{

									//						debug('toevoegen')
									//for(i	in	grps)
									//{
									//debug('toe'+i)
									var	grp	=	grps[i]
									add_group_to_targetdiv(grp.id,targetdiv,refreshname)
							}
					}
					//						debug('einde	toevoegen')
		//			CSBfleXcroll(targetdiv)
			}
			,eoptions);

	}

	function	show_these_groups_friends(gebruikuid,	targetdiv,refreshname)
	{
		
		
			var	noreset	=	true;
			var	sort_name='Friends';
			treelzsystem.treelersocial.user.getFriends(function(friends)
			{
					if(noreset	==	true)
					{
					}
					else
					{
							targetdiv.innerHTML	=	''
					}

					var	friends	=	getSortedFriendsList(friends)//	friends.sort(function_sortUserObjects)
					for(var	i=0;i<	friends.length;i++)
					{
							if(friends[i])
							{
									var	friend	=	friends[i]
									var	b_grp	=	friend.b_grp
									//ids[b_grp.friends]	=b_grp.friends
									//ids[b_grp.public]	=b_grp.public
									add_usergroup_to_targetdiv(b_grp.friends,targetdiv,refreshname)
							}
							
					}
							
		//		CSBfleXcroll(targetdiv)

			}
			);

			/*
			var	type	=	'3';
			var	eoptions	=	[];
			eoptions['type']	=	type;
			//targetdiv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
			mapsystem.groups.getGroupUsersMemberOf(gebruikuid,	function(grps)
			{

			if(noreset	==	true)
			{
			}
			else
			{
			targetdiv.innerHTML	=	''
			}

			for(i	in	grps)
			{
			var	grp	=	grps[i]
			add_usergroup_to_targetdiv(grp.id,targetdiv,refreshname)
			}

		//	CSBfleXcroll("details_groups_selection_inner_"+sort_name)
			}
			,eoptions);
			*/
	}


	

function	selected_or_unselected_usergroup(grpid,userid,thecheckbox,update_type)
	{
			if(thecheckbox.checked)
			{
					turn_on_user_groups(userid)
			}
			else
			{
					turn_off_user_groups(userid)
			}
			if(document.getElementById("searchresults_outer_Search"))
			{
				open_or_close_selected_search_results()
			}

	}

	function	selected_or_unselected_group(grpid,thecheckbox,update_type)
	{
			if(thecheckbox.checked)
			{
				mapsystem.globalfilter.setGroupFilter(grpid,true)
			}
			else
			{
				mapsystem.globalfilter.setGroupFilter(grpid,false)
			}
			
			if(document.getElementById("searchresults_outer_Search"))
			{
				open_or_close_selected_search_results()
			}
		
		check_all_filters_if_some_on()
	}
	
	function open_or_close_selected_search_results(begin)
	{
			var group_selected_targetdiv_Search = document.getElementById("group_selected_targetdiv_Search")
			var user_selected_targetdiv_Search = document.getElementById("user_selected_targetdiv_Search")

					group_selected_targetdiv_Search.innerHTML	=	"<span	class=\"grey\"><strong>Groups:</strong> <br/>No results selected...</span>"
					user_selected_targetdiv_Search.innerHTML	=	"<span	class=\"grey\"><strong>Treelerz:</strong> <br/>No results selected...</span>"

			filter_get_out_of_count_selectedgroups(function(aantal_groups,outof_groups)
			{
				filter_get_out_of_count_selectedtreelerz(function(aantal_friends,outof_friends)
				{	
					if(outof_groups !== 0)
					{
						display_selected_outer("Search")
						show_usergen_groups_not_member_but_selected(group_selected_targetdiv_Search)
					
						if(document.getElementById("searchresults_outer_Search").style.height	!==	"25px")	
						{
		//					alert("en?")
							var	targetdiv	=	document.getElementById("searchresults_outer_Search")
								targetdiv.style.height	=	"238px"
						}
					}
					if(outof_friends !== 0)
					{
						display_selected_outer("Search")
						show_usergen_users_not_friends_but_selected(user_selected_targetdiv_Search)
						
						if(document.getElementById("searchresults_outer_Search").style.height	!==	"25px")	
						{
		//					alert("en?")
							var	targetdiv	=	document.getElementById("searchresults_outer_Search")
								targetdiv.style.height	=	"238px"
						}
					}
					if(outof_friends == 0 && outof_groups == 0)
					{
						none_display_selected_outer("Search")
						display_searchresults_outer("Search")
						uncollapse_targetdiv("Search",	"searchresults")
						
						search_submit(false)
						
						var	targetdiv	=	document.getElementById("searchresults_outer_Search")
							targetdiv.style.height	=	"265px"
					}
					var aantal_groups_nr = aantal_groups - 0
					var aantal_friends_nr = aantal_friends - 0
					var bij_elkaar = 0 + aantal_groups_nr + aantal_friends_nr
					
					var	selected_titlebar	=	document.getElementById("selected_titlebar_Search")
						selected_titlebar.innerHTML	=	'selected	results	(<span	id="filter_all_selectedaantal_selected_treelerz">'+bij_elkaar+'</span>)'



				}
				);		
			}
			);

	}


	function set_heights_sel_groups(amount_off)
	{
		var	selected_titlebar	=	document.getElementById("selected_titlebar_Search")
		
		
	}
	






	/*
	how	to	use?

	AANZETTEN	ALLE	FRIENDEN:
	select_all_friends(true,function(x)
	{
	//	UPDATE
	}
	)

	UITETTEN	ALLE	FRIENDEN:
	select_all_friends(false,function(x)
	{
	//	UPDATE
	}
	)

	AANZETTEN	ALLE	NORMALE	MEMBER	GROUPS:
	select_all_member(true,function(x)
	{
	//	UPDATE
	}
	)

	UITzETTEN	ALLE	NORMALE	MEMBER	GROUPS:
	select_all_member(false,function(x)
	{
	//	UPDATE
	}
	)


	UITzETTEN	ALLE	"ANDERE"	GROUPS	(DWZ	niet	lid	van	of	niet	friends,	of	global	of	zo):
	select_all_selected_groups_not_member_of(false,function(x)
	{
	//	UPDATE
	}
	)

	AANZETTEN	ALLE	"ANDERE"	GROUPS	(DWZ	niet	lid	van	of	niet	friends,	of	global	of	zo):
	BESTAAT	NOG	NIET.	MOET	TZT	SHIT	VOOR	WORDEN	OPGESLAGEN	:)
	*/
	/*
	function	select_all_friends(valueset,callback)
	{
	var	eoptions	=	[];
	eoptions['type']	=	3;

	mapsystem.groups.getGroupUsersMemberOf(loggedin_id,	function(grps)
	{
	for(i	in	grps)
	{
	var	grp	=	grps[i]
	mapsystem.globalfilter.setGroupFilter(grp.id,valueset,true)

	}
	//	now	refresh	filter
	mapsystem.globalfilter.recheckFilter();
	if(callback)	callback(true)
	}
	,eoptions);
	}
	*/


	function	select_all_member(valueset,callback)
	{
			//				debug('t_filters:select_all_member	is	an	old	function,	replaced,	but	newer!!');
			if(valueset)	turn_on_all_my_groups(callback);
			else	turn_off_all_my_groups(callback);
			/*
			var	eoptions	=	[];
			eoptions['type']	=	'0';

			mapsystem.groups.getGroupUsersMemberOf(loggedin_id,	function(grps)
			{
			for(i	in	grps)
			{
			var	grp	=	grps[i]
			mapsystem.globalfilter.setGroupFilter(grp.id,valueset,true)

			}
			//	now	refresh	filter
			mapsystem.globalfilter.recheckFilter();
			if(callback)	callback(true)
			}
			,eoptions);*/
	}

	function	select_all_selected_groups_not_member_of(valueset,callback)
	{
			//				debug('t_filters:select_all_selected_groups_not_member_of	is	an	old	function,	replaced,	but	newer!!');
			if(valueset)	turn_on_all_selected_groups(callback);
			else	turn_off_all_selected_groups(callback);
			/*
			__acquire_all_groups_not_member_of(function(grps)
			{
			for(i	in	grps)
			{
			var	grp	=	grps[i]
			if(grp.type	==	'0')
			{
			mapsystem.globalfilter.setGroupFilter(grp.id,valueset,true)
			}
			}
			//	now	refresh	filter
			mapsystem.globalfilter.recheckFilter();
			if(callback)	callback(true)
			}
			)
			*/
	}

	function	__acquire_all_groups_not_member_of(callback)
	{
			if(treelzsystem	&&	treelzsystem.treelersocial)
			{
					var	eoptions	=	[];
					eoptions['type']	=	'0';
					mapsystem.groups.getGroupUsersMemberOf(treelzsystem.treelersocial.userid,	function(grps)
					{
							__get_select_all_groups_not_member_of(grps,callback)
					}
					,eoptions);
			}
			else
			{
					var	grps	=	[]
					__get_select_all_groups_not_member_of(grps,callback)
			}

	}

	function	__get_select_all_groups_not_member_of(grps,callback)
	{
			var	selected_grps	=	mapsystem.globalfilter.getGroupFilters()
			var	theids	=	[]
			for(i	in	selected_grps)
			{
					if(selected_grps[i]	&&	!grps[i])
					{
							theids[i]	=	i
							//debug(i)
					}
			}
			//debug(theids.length)
			mapsystem.groups.getMultiple(theids,callback)
	}

	//	===============	TURN	ON	/	OFF	GROUPS	=====================

	function	do_the_off_all(callback,donotupdate)
	{
			do_on_all_groups_filter(do_the_off_groups,callback,donotupdate)
	}

	function	do_the_on_all(callback,donotupdate)
	{
			do_on_all_groups_filter(do_the_on_groups,callback,donotupdate)
	}

	function	do_on_all_groups_filter(func,callback,donotupdate)
	{
			func('global',get_list_of_possible_groups_global,function(x)
			{
					//debug('a')
					func('selected_groups',get_list_of_possible_groups_selected_groups,function(y)
					{
							//	debug('b')
							func('my_groups',get_list_of_possible_groups_my_groups,function(z)
							{
									//debug('c')
									func('selected_treelerz',get_list_of_possible_groups_selected_treelerz,function(a)
									{
											//debug('d')
											func('my_friends',get_list_of_possible_groups_my_friends,function(b)
											{
													callback(true)
											}
											,donotupdate);
									}
									,donotupdate);
							}
							,donotupdate);
					}
					,donotupdate);
			}
			,donotupdate)

	}

	function	get_list_of_selected_from_possible(possibles)
	{
			var	ids	=	[];
			for(	i	in	possibles)
			{
					var	theid	=	possibles[i];
					if(mapsystem.globalfilter.getGroupFilter(theid))	ids[theid]	=	theid;
			}
			return	ids;
	}

	function	do_the_off_groups(remembertype,get_list_function,callback,donotupdate)
	{
			//				debug('into	list');
			get_list_function(function(possibles)
			{
					//						debug('back	from	get	list')
					var	ids	=	removeNullsFromArray(get_list_of_selected_from_possible(possibles));
					if(ids.length	>	0)
					{
							remember_groups[remembertype]	=	ids
					}
					else
					{
							remember_groups[remembertype]	=	null
					}
					mapsystem.globalfilter.setMultipleGroupFilter(ids,false,donotupdate)
					callback(true);
			}
			);
	}

	function	do_the_on_groups(remembertype,get_list_function,jcallback,donotupdate)
	{
			//	only	turn	on	those	that	were	selected	before	turning	off
			if(remember_groups[remembertype])
			{
					mapsystem.globalfilter.setMultipleGroupFilter(remember_groups[remembertype],true,donotupdate)
					remember_groups[remembertype]	=	null
					jcallback(true);
			}
			else
			{
					get_list_function(function(ids)
					{
							//debug('nu	kom	ik	uit	mijn	getlistfunction'+ids.length)
							mapsystem.globalfilter.setMultipleGroupFilter(ids,true,donotupdate)
							jcallback(true);
					}
					);
			}
	}


	function	count_the_selected_out_of(get_list_function,callback)
	{
			get_list_function(function(ids)
			{
					var	totaal=0;
					var	aantal=0;
					for(i	in	ids)
					{
							var	gid	=	i;
							totaal	=	totaal	+	1
							if(mapsystem.globalfilter.getGroupFilter(i))
							{
									aantal	=	aantal	+	1;
							}
					}
					callback(aantal,totaal);
			}
			);

	}

	var	remember_groups	=	{}
	remember_groups['global']=null;
	remember_groups['my_groups']=null;
	remember_groups['selected_groups']=null;
	remember_groups['my_friends']=null;
	remember_groups['selected_treelerz']=null;

	//	====	GLOBAL	===
	function	get_list_of_possible_groups_global(callback)
	{
			var	ids	=	[]
			ids[1]=1;
			ids[2]=2;
			if(treelzsystem.treelersocial)
			{
					ids[treelzsystem.treelersocial.basegroups.public]	=	treelzsystem.treelersocial.basegroups.public;
					ids[treelzsystem.treelersocial.basegroups.friends]	=	treelzsystem.treelersocial.basegroups.friends;
					ids[treelzsystem.treelersocial.basegroups.private]	=	treelzsystem.treelersocial.basegroups.private;
			}
			callback(ids);
	}
	function	turn_off_all_global_groups(callback)
	{
			do_the_off_groups('global',get_list_of_possible_groups_global,callback)
	}
	function	turn_on_all_global_groups(callback)
	{
			do_the_on_groups('global',get_list_of_possible_groups_global,callback)
	}

	function	filter_get_out_of_count_global(callback)
	{
			//count_the_selected_out_of(get_list_of_possible_groups_global,callback);
			
			//tel: group 1, group 2, min 1 vd private grp
			var aantal = 0;
				if(mapsystem.globalfilter.getGroupFilter(1))aantal +=1;
					if(mapsystem.globalfilter.getGroupFilter(2))	aantal +=1;
					if(treelzsystem	&&	treelzsystem.treelersocial)
					{							
					    if(mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.public) || mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.friends) || mapsystem.globalfilter.getGroupFilter(treelzsystem.treelersocial.basegroups.private))	aantal += 1;
					}
					
					callback(aantal,3);		
	}

	//	====	MY	GROUPS	(MEMBER	AND	OF	TYPE	0)	===
	function	get_list_of_possible_groups_my_groups(callback)
	{
			//debug("C:	get_list_of_possible_groups_my_groups")
			if(treelzsystem.treelersocial)
			{
					//				debug('is	dit	zo?')
					var	eoptions	=	[];
					eoptions['type']	=	'0';
					mapsystem.groups.getGroupUsersMemberOf(treelzsystem.treelersocial.userid,	function(grps,x)
					{
							//								debug('further	get_list_of_possible_groups_my_groups')
							var	ids	=	[];
							for(i	in	grps)
							{
									ids[i]	=	i
							}
							callback(ids)
					}
					,eoptions);
			}
			else
			{
					//								debug('is	fsd?')
					var	ids	=	[];
					callback(ids)
			}
	}

	function	turn_off_all_my_groups(callback)
	{
			do_the_off_groups('my_groups',get_list_of_possible_groups_my_groups,callback);
	}
	function	turn_on_all_my_groups(callback)
	{
			do_the_on_groups('my_groups',get_list_of_possible_groups_my_groups,callback);
	}

	function	filter_get_out_of_count_mygroups(callback)
	{
			count_the_selected_out_of(get_list_of_possible_groups_my_groups,callback);
	}

	//		==============	selected	groups	(type	0	and	selected	but	NOT	member!)
	function	get_list_of_possible_groups_selected_groups(callback)
	{
			if(treelzsystem.treelersocial)
			{
					var	eoptions	=	[];
					eoptions['type']	=	'0';
					mapsystem.groups.getGroupUsersMemberOf(treelzsystem.treelersocial.userid,	function(grps)
					{
							var	selected_grps	=	mapsystem.globalfilter.getGroupFilters()
							var	to_test_ids	=	[]
							for(i	in	selected_grps)
							{
									if(selected_grps[i]	&&	!grps[i])
									{
											to_test_ids[i]	=	i;
									}
							}

							if(to_test_ids.length	==	0)
							{
									callback(to_test_ids);
							}
							else
							{
									mapsystem.groups.getMultiple(to_test_ids,function(testgrps)
									{
											var	ids	=	[]
											for(i	in	testgrps)
											{
													var	grp	=	testgrps[i];
													if(grp.type	==	0	||	grp.type	==	'0')
													{
															ids[grp.id]=grp.id
															//																debug(grp.id);
													}
											}
											callback(ids);
									}
									);
							}
					}
					,eoptions);

			}
			else
			{
					var	selected_grps	=	mapsystem.globalfilter.getGroupFilters()
					var	to_test_ids	=	[]
					for(i	in	selected_grps)
					{

							to_test_ids[i]	=	i;

					}

					mapsystem.groups.getMultiple(to_test_ids,function(testgrps)
					{
							var	ids	=	[]
							for(i	in	testgrps)
							{
									var	grp	=	testgrps[i];
									if(grp.type	==	0	||	grp.type	==	'0')
									{
											ids[grp.id]=grp.id
											//debug(grp.id);
									}
							}
							callback(ids);
					}
					);
			}
	}
	function	turn_off_all_selected_groups(callback)
	{
			do_the_off_groups('selected_groups',get_list_of_possible_groups_selected_groups,callback);
	}
	function	turn_on_all_selected_groups(callback)
	{
			do_the_on_groups('selected_groups',get_list_of_possible_groups_selected_groups,callback);
	}
	function	filter_get_out_of_count_selectedgroups(callback)
	{
			count_the_selected_out_of(get_list_of_possible_groups_selected_groups,callback);
	}

	//	==========	my	friends	(het	betreft	hier	dan	zowel	de	public	als	de	friends	groupen	van
	//		groupen	van	waar	je	lid	bent	van	friends	type..	dus	pak	alle	groups	van	type	3	waar	je	lid	van	bent
	//	en	voeg	daar	gerelateerde	groupen	van	type	4	aan	toe....
	//	of	wel	pak	alle	frienden	en	pak	dan	alle	public	&	friends	groupen
	function	get_list_of_possible_groups_my_friends(callback)
	{
			if(treelzsystem.treelersocial)
			{
					treelzsystem.treelersocial.user.getFriends(function(friends)
					{
							var	ids	=	[]
							for(i	in	friends)
							{
									var	friend	=	friends[i]
									var	b_grp	=	friend.b_grp
									ids[b_grp.friends]	=b_grp.friends
									ids[b_grp.public]	=b_grp.public
							}
							callback(ids)
					}
					);
			}
			else
			{
					var	ids	=	[];
					callback(ids)
			}
	}

	function	turn_off_all_my_friends(callback)
	{
			do_the_off_groups('my_friends',get_list_of_possible_groups_my_friends,callback);
	}
	function	turn_on_all_my_friends(callback)
	{
			do_the_on_groups('my_friends',get_list_of_possible_groups_my_friends,callback);
	}
	function	filter_get_out_of_count_myfriends(callback)
	{
			//count_the_selected_out_of(get_list_of_possible_groups_my_friends,callback);
       if(treelzsystem.treelersocial) {}
			 else 
			 {
			  callback(0,0)
				return
			 }
			//	uitzondering
			//	pak	alle	friends,	tel,	dat	is	outof	-	param	2
			//	tel	alle	.b_grp.friends	.b_grp.public	die	sel	are	(min	1)

			treelzsystem.treelersocial.user.getFriends(function(friends)
			{
					var	outof	=	0;
					var	aantal	=	0;
					for(i	in	friends)
					{

							var	friend	=	friends[i]
							if(friend)
							{
									outof	+=	1;
									var	pub_grp	=	friend.b_grp.public
									var	fri_grp	=	friend.b_grp.friends
									if(mapsystem.globalfilter.getGroupFilter(pub_grp)	||	mapsystem.globalfilter.getGroupFilter(fri_grp))
									{
											aantal	+=	1;
									}
							}
					}

					callback(aantal,outof)
			}
			);



	}


	//	========	selected	treelerz
	//	(all	selected	of	type	4,	but	not	where	starters	is	among	starters	of	type	3
	//	of	which	one	is	member.	ANDERS	GEZEGT:	alle	groepen	van	type	4	die	aanstaan
	//	behalve	die	waarvan	de	eigenaar	zit	tussen	die	van	eigenaren	van	groepen	met	type	3[friends]
	//	,	het	eindresultaat	betreft	hier	dus	enkel	groupen	van	type	4)
	//
	function	get_list_of_possible_groups_selected_treelerz(callback)
	{
			if(treelzsystem.treelersocial)
			{
					var	selected_grps	=	mapsystem.globalfilter.getGroupFilters()
					var	to_test_ids	=	[]
					for(i	in	selected_grps)
					{
							to_test_ids[i]	=	i;
					}
					mapsystem.groups.getMultiple(to_test_ids,function(testgrps)
					{
							treelzsystem.treelersocial.user.getFriends(function(friends)
							{
									var	ids	=	[];
									for(i	in	testgrps)
									{

											var	tgrp	=	testgrps[i]

											//debug(i+	'is	of	type	3	4')
											if(friends[tgrp.starter])
											{
													//debug('is	WELL	in	friends	list');
											}
											else
											{
													//debug(i+'is	not	in	friends	list');
													if(tgrp.type	==	'3'	||		tgrp.type	==	'4')
													{
															ids[tgrp.id]	=	tgrp.id
													}
											}

									}
									callback(ids);
							}
							);

					}
					);
					/*
					//	get	all	of	type	of	which	i'm	member
					var	eoptions	=	[];
					eoptions['type']	=	3;
					mapsystem.groups.getGroupUsersMemberOf(treelzsystem.treelersocial.userid,	function(friend_grps)
					{
					//	verzamel	all	owners	(aka	friends)
					var	owners	=	[]
					for(i	in	friend_grps)
					{
					var	f_grp	=	friend_grps[i]
					var	starter	=	f_grp.starter
					owners[starter]	=	starter
					}

					//	get	all	selected
					var	selected_grps	=	mapsystem.globalfilter.getGroupFilters()
					var	to_test_ids	=	[]
					for(i	in	selected_grps)
					{
					to_test_ids[i]	=	i;
					}
					mapsystem.groups.getMultiple(to_test_ids,function(testgrps)
					{
					//	filter	op:	type	4	and	not	owner	in	owners
					var	ids	=	[]
					for(i	in	testgrps)
					{
					var	grp	=	testgrps[i];

					if(owners[grp.starter])
					{
					}
					else
					{
					if(grp.type	==	'4')
					{
					ids[grp.id]=grp.id
					}
					}

					}

					//	add	those
					callback(ids);
					}
					);
					}
					,eoptions);
					*/
			}
			else
			{
					//	niet	ingelogt
					var	selected_grps	=	mapsystem.globalfilter.getGroupFilters()
					var	to_test_ids	=	[]
					for(i	in	selected_grps)
					{
							to_test_ids[i]	=	i;
					}
					mapsystem.groups.getMultiple(to_test_ids,function(testgrps)
					{
							//	filter	op:	type	4	and	not	owner	in	owners
							var	ids	=	[]
							for(i	in	testgrps)
							{
									var	grp	=	testgrps[i];
									if(grp.type	==	'4'	||	grp.type	==	'3'	||	grp.type	==	'2')
									{
											ids[grp.id]=grp.id
									}
							}

							//	add	those
							callback(ids);
					}
					);
			}

	}

	function	turn_off_all_selected_treelerz(callback)
	{
			do_the_off_groups('selected_treelerz',get_list_of_possible_groups_selected_treelerz,callback);
	}
	function	turn_on_all_selected_treelerz(callback)
	{
			do_the_on_groups('selected_treelerz',get_list_of_possible_groups_selected_treelerz,callback);
	}
	function	filter_get_out_of_count_selectedtreelerz(callback)
	{
			//count_the_selected_out_of(get_list_of_possible_groups_selected_treelerz,callback);
			
			get_list_of_possible_groups_selected_treelerz(function(grp_ids)
			{
			  mapsystem.groups.getMultiple(grp_ids,function(grps)
				{
    			  var starters = []
    				var aantal =0
    				
    				for (i in grps)
    				{
    				  
    				  var grp = grps[i]
    					//debug('counting tr. ' + grp.name)
    				  if(starters[grp.starter])
    					{					
    					}
    					else
    					{
    					 starters[grp.starter]=true
    					 aantal++;
    					}
    				}
				
						 callback(aantal,aantal);
				}
				);		 
			}
			);
	}



	//	turn	on	for	one	user
	function	turn_on_user_groups(userid,callback)
	{
			treelzsystem.users.getUser(userid,true,function(usr)
			{
					var	b_grp	=	usr.b_grp
					mapsystem.globalfilter.setGroupFilter(b_grp.friends,true,true)
					mapsystem.globalfilter.setGroupFilter(b_grp.public,true)
					if(callback)	callback(true)
			}
			);
	}

	//	turn	of	the	groups	of	1	user
	function	turn_off_user_groups(userid,callback)
	{
			treelzsystem.users.getUser(userid,true,function(usr)
			{
					var	b_grp	=	usr.b_grp
					mapsystem.globalfilter.setGroupFilter(b_grp.friends,false,true)
					mapsystem.globalfilter.setGroupFilter(b_grp.public,false)
					if(callback)	callback(true)
			}
			);
	}

	//	========	selected	langauges
	//	Tsja...	deze	moeten	denk	ik	nog	gemaakt	worden:

	function	filter_lang_get_selected_outof(callback)
	{
			treelzsystem.languages.getAllLanguages(function(lngs)
			{
					var	tot=0;
					var	selected	=	0;
					for(i	in	lngs)
					{
							var	lng	=	lngs[i]
							if(mapsystem.globalfilter.getLanguageFilter(lng.id))
							{
									selected	+=	1;
							}
							tot	+=1;
					}

					callback(selected,tot)
			}
			);
	}


	function	get_list_of_possible_groups_selected_languages(callback)
	{
	}
	function	turn_off_all_selected_languages(callback)
	{
	}
	function	turn_on_all_selected_languages(callback)
	{
	}

	/*

	///	de	totaal	call	functies	om	te	kijken	of	hoofd	selectie	dingen	(general,	groups,	users,	languages)	aan	moeten	of	uit
	//	steeds	functie(callback)	waarbij	callback	true	of	false	geeft
	function	filter_get_all_areselected_groups(callback)
	{

	filter_get_out_of_count_mygroups(function(aantal,outof)
	{
	if(outof	<=	aantal)
	{
	filter_get_out_of_count_selectedgroups(function(aantal,outof)
	{
	if(outof	<=	aantal)	callback(true)
	else	callback(false)
	}
	);
	}	//callback(true)
	else
	{
	callback(false)
	}
	}
	);




	}


	function	filter_get_all_areselected_general(callback)
	{
	filter_get_out_of_count_global(function(aantal,outof)
	{
	//debug(aantal	+			'	'	+	outof)
	if(outof	<=	aantal)	callback(true)
	else	callback(false)
	}
	);
	}

	function	filter_get_all_areselected_users(callback)
	{
	filter_get_out_of_count_myfriends(function(aantal,outof)
	{
	if(outof	<=	aantal)
	{
	filter_get_out_of_count_selectedtreelerz(function(aantal,outof)
	{
	if(outof	<=	aantal)	callback(true)
	else	callback(false)
	}
	);
	}	//callback(true)
	else
	{
	callback(false)
	}
	}
	);
	}

	function	filter_get_all_areselected_langs(callback)
	{
	filter_lang_get_selected_outof(function(aantal,outof)
	{
	if(outof	<=	aantal)	callback(true)
	else	callback(false)
	}
	);
	}
	*/

	//	kijkt	of	er	tenminste	1	van	deze	4	"grote"	groupen	geselected	is
	function	filter_get_some_areselected_groups(callback)
	{

			filter_get_out_of_count_mygroups(function(aantal,outof)
			{
					if(	aantal	>=	1)
					{
							callback(true)
					}
					else
					{
							filter_get_out_of_count_selectedgroups(function(aantal,outof)
							{
									if(aantal	>=	1)	callback(true)
									else	callback(false)
							}
							);
					}
			}
			);




	}


	function	filter_get_some_areselected_general(callback)
	{
			filter_get_out_of_count_global(function(aantal,outof)
			{
					//debug(aantal	+			'	'	+	outof)
					if(aantal	>=	1)	callback(true)
					else	callback(false)
			}
			);
	}

	function	filter_get_some_areselected_users(callback)
	{
			filter_get_out_of_count_myfriends(function(aantal,outof)
			{

					if(aantal	>=	1)
					{
							callback(true)
					}
					else
					{
							filter_get_out_of_count_selectedtreelerz(function(aantal,outof)
							{
									if(	aantal	>=	1)	callback(true)
									else	callback(false)
							}
							);
					}

			}
			);
	}

	function	filter_get_some_areselected_langs(callback)
	{
			filter_lang_get_selected_outof(function(aantal,outof)
			{
					if(	aantal	>=	1)	callback(true)
					else	callback(false)
			}
			);
	}

	function	getSortedFriendsList(origianllist)
	{

			var	newlist	=	[]
			var	nr=0;
			for(var	i=0;i<origianllist.length;i++)
			{
					if(origianllist[i])
					{
							newlist[nr]=origianllist[i]
							nr++;
					}
			}
			newlist	=	newlist.sort(function_sortUserObjects)
			return	newlist
			/*var	new_friends	=	friends.sort(function_sortUserObjects)
			for(i	in	friends)
			{
			var	friend	=	friends[i]
			*/
	}

	function	function_sortUserObjects(a,b)
	{
			var	x	=	a.firstname.toLowerCase();
			var	y	=	b.firstname.toLowerCase();
			return	((x	<	y)	?	-1	:	((x	>	y)	?	1	:	0));
	}

	function	getSortedGroupsList(origianllist)
	{

			var	newlist	=	[]
			var	nr=0;
			for(var	i=0;i<origianllist.length;i++)
			{
					if(origianllist[i])
					{
							newlist[nr]=origianllist[i]
							nr++;
					}
			}
			newlist	=	newlist.sort(function_sortGroupObjectsByName)
			return	newlist
			/*var	new_friends	=	friends.sort(function_sortUserObjects)
			for(i	in	friends)
			{
			var	friend	=	friends[i]
			*/
	}

	function	function_sortGroupObjectsByName(a,b)
	{
			var	x	=	a.name.toLowerCase();
			var	y	=	b.name.toLowerCase();
			return	((x	<	y)	?	-1	:	((x	>	y)	?	1	:	0));
	}
	function check_all_filters_if_some_on()
	{
		check_global_if_some_on()
		check_mygroups_if_some_on()
		check_myfriends_if_some_on()
		check_search_if_some_on()
	}
	function check_global_if_some_on()
	{
		filter_get_out_of_count_global(function(aantal,outof)
		{
			if(aantal == 0)	
			{
				deselect_button_sel_groups("Global")
			}
			else
			{
				select_button_sel_groups("Global")
			}
		}
		);
	}
	function check_mygroups_if_some_on()
	{
		filter_get_out_of_count_mygroups(function(aantal,outof)
		{
			if(aantal == 0)	
			{
				deselect_button_sel_groups("Groups")
			}
			else
			{
				select_button_sel_groups("Groups")
			}
		}
		);
	}
	function check_myfriends_if_some_on()
	{
		filter_get_out_of_count_myfriends(function(aantal,outof)
		{
			if(aantal == 0)	
			{
				deselect_button_sel_groups("Friends")
			}
			else
			{
				select_button_sel_groups("Friends")
			}
		}
		);
	}
	function check_search_if_some_on()
	{
		
	}

/*t_functions.js*/

var icon_number = 1
var option_f_o = 40
var option_h_o = 75
var option_b_o = 100
var footer_f_o = 75
var footer_b_o = 100

var slideshow_f_o = 55
var slideshow_b_o = 100


var global_timer = 500

var timer_selection_filters = ''
var timer_category_filters = ''
var timer_hide_tooltip = ''

var timer_selection_filters_onmouseover = ''

function create_error()
{
		var created_img = createElement(preloaden_images, created_id+"_img", null,'img')
			created_img.src = full_image_URL+".png"
}

function create_clickable_icon(target_id, created_id, image_URL, on_click,  title, position, float, margin, op_in, op_out, double_button, option)
{
	if(double_button == true){document.getElementById(target_id).innerHTML = ''}
	if(image_URL){var full_image_URL = "images/1_knoppen/"+image_URL}
		
		var preloaden_images = document.getElementById("preloaden_images");
		var created_img = createElement(preloaden_images, created_id+"_img", null,'img')
			created_img.src = full_image_URL+".png"
	
	__create_div_with_background(target_id, created_id, full_image_URL, position, float, margin, op_out, created_img, double_button, option)
	
	if(float){set_float_and_margin_to_div(created_id, float, margin)}
	
	if(on_click)
	{
		set_onclick(created_id, on_click)
		set_mouse_over_in_and_out_opacity(created_id, op_in, op_out, full_image_URL)
	}
	
	if(title){document.getElementById(created_id).title = getTrans.Translate(title)}
}
function __create_div_with_background(target_id, created_id, full_image_URL,position, float, margin, op_out, created_img, double_button, option)
{
	var target_element = document.getElementById(target_id);
		var created_div = createElement(target_element, "black", created_id,'div')
			
			if(position){created_div.style.position = position}
			
			if (BrowserDetect.browser == "Explorer"){__adjust_sizes_for_clickable_icon(target_id,created_div, created_img, double_button, margin, option)}
			else{created_img.onload = function(){__adjust_sizes_for_clickable_icon(target_id,created_div, created_img, double_button, margin, option)}}
			
			if(full_image_URL)
			{
					if (BrowserDetect.browser == "Explorer"){set_background_image(created_div, full_image_URL+"_faded.png")}
					else{set_background_image(created_div, full_image_URL+".png")
						if(op_out){change_opacity_id(created_id, op_out)}}
			}
			else{set_background_color(created_div_bg, "black")}
}
function __adjust_sizes_for_clickable_icon(target_id,created_div, created_img, double_button, margin, option)
{					
	
	var target_element = document.getElementById(target_id);
					
					var img_height = created_img.offsetHeight
					var img_width = created_img.offsetWidth
					var img_height_real = img_height + 0
					var img_width_real = img_width + 0
					var img_height_px = img_height_real+"px"
					var img_width_px = img_width_real+"px"
					var target_width = target_element.offsetWidth

					if(double_button !== true && double_button !== "zoom" && double_button !== "footer" )
					{
						
		//				alert (target_width+" + "+img_width_real+" +"+margin+" + 2")
		//				debug(target_width+" + "+img_width_real+" +"+margin+" + 2")
						
				//		if(target_id != "footer_map")
				//		{
							target_element.style.width = target_width + img_width_real + margin + 2
				//		}
					}
					
					created_div.style.width = img_width_px
					created_div.style.height = img_height_px
					
					if(option != "not_empty")
					{
						created_div.innerHTML = "<img src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\" width='"+img_width_px+"' height='"+img_height_px+"'>"
					}
}
function set_float_and_margin_to_div(target_id, float, margin)
{
	var target_element = document.getElementById(target_id);
	
			if(float == "left")
			{
				target_element.style.marginLeft = margin
				target_element.setAttribute('class','float_left');
				target_element.setAttribute('className','float_left');
			}
			
			if(float == "right")
			{
				target_element.style.marginRight = margin
				target_element.setAttribute('class','float_right');
				target_element.setAttribute('className','float_right');
			}
}
function set_mouse_down(div_id, javascript)
{
	var thediv = document.getElementById(div_id)		
		thediv.style.cursor = "pointer"
			if (BrowserDetect.browser == "Explorer")
				{
						var str = "thediv.setAttribute('onmousedown',function anonymous(){"+javascript+"})";
						eval(str)
				}
				else
				{
						thediv.setAttribute('onmousedown',javascript)
				}
}
function set_onclick(div_id, javascript)
{
	var thediv = document.getElementById(div_id)		
		thediv.style.cursor = "pointer"
			if (BrowserDetect.browser == "Explorer")
				{
						var str = "thediv.setAttribute('onclick',function anonymous(){"+javascript+"})";
						eval(str)
				}
				else
				{
						thediv.setAttribute('onclick',javascript)
				}
}


	


function change_opacity_id(div_id, opacity)
{
//	alert(BrowserDetect.browser)
	//alert(div_id)

var target_element = document.getElementById(div_id);
	if (BrowserDetect.browser == "Explorer")
	{target_element.style.filter = 'alpha(opacity='+opacity+')'}
	else if (BrowserDetect.browser == "Firefox")
	{target_element.style.MozOpacity = opacity/100}
	else if (BrowserDetect.browser == "Safari")
	{target_element.style.KhtmlOpacity = opacity/100;}
	else
	{target_element.style.opacity = opacity/100}
}
function set_background_image(target_element, URL)
{
		if (BrowserDetect.browser == "Explorer")
		{target_element.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+URL+")";}
		else{target_element.style.backgroundImage = "url("+URL+")"}
}
function set_mouse_over_in_and_out_opacity(div_id, op_in, op_out, image_URL)
{
	var thediv = document.getElementById(div_id)		
			if (BrowserDetect.browser == "Explorer")
				{
						var str = "thediv.setAttribute('onmouseover',function anonymous(){change_button('"+div_id+"', 'over', '"+image_URL+"')})";
						eval(str)
						var	str2 = "thediv.setAttribute('onmouseout',function anonymous(){change_button('"+div_id+"', 'out', '"+image_URL+"')})";
						eval(str2)
				}
				else
				{
						thediv.setAttribute('onmouseover',"change_opacity_id('"+div_id+"', "+op_in+")")
						thediv.setAttribute('onmouseout',"change_opacity_id('"+div_id+"', "+op_out+")")
				}
}
function change_button(div_id, over_or_out, image_URL)
{
	var created_div_bg = document.getElementById(div_id)
	if(over_or_out == 'over')
	{
		set_background_image(created_div_bg, image_URL+".png")
	}
	if(over_or_out == 'out')
	{
		set_background_image(created_div_bg, image_URL+"_faded.png")
	}
}
function preload_img(image_URL)
{
	var target_element = document.getElementById("preloaden_images");
		target_element.innerHTML += '<img src="'+image_URL+'"></img>'
}
function preload_img_1_knoppen(image_URL)
{
	var target_element = document.getElementById("preloaden_images");
		target_element.innerHTML += '<img src="images/1_knoppen/'+image_URL+'.png"></img>'
}
function adjust_size_to_image(target_element, URL)
{
		var preloaden_images = document.getElementById("preloaden_images");
		var created_img = createElement(preloaden_images, null, null,'img')
			created_img.src = URL
			if(BrowserDetect.browser == "Explorer")
			{
					var created_img_H = created_img.offsetHeight
					var created_img_W = created_img.offsetWidth
					target_element.style.height = created_img_H
					target_element.style.width = created_img_W
			}
			else
			{
				created_img.onload = function() 
				{
					var created_img_H = created_img.offsetHeight
					var created_img_W = created_img.offsetWidth
					target_element.style.height = created_img_H
					target_element.style.width = created_img_W
				}
			}
}
function add_size_to_element(target_element, URL, margin)
{
		var preloaden_images = document.getElementById("preloaden_images");
		var created_img = createElement(preloaden_images, null, null,'img')
			created_img.src = URL
			if(BrowserDetect.browser == "Explorer")
			{
					var created_img_W = created_img.offsetWidth
					var target_element_W = target_element.offsetWidth
				if(margin)		
				{
					target_element.style.width = created_img_W + target_element_W + margin
				}
				else
				{
					target_element.style.width = created_img_W + target_element_W
				}
				
			}
			else
			{
				created_img.onload = function() 
				{
					var created_img_W = created_img.offsetWidth
					var target_element_W = target_element.offsetWidth
					
					if(margin)		
					{
						target_element.style.width = created_img_W + target_element_W + margin
					}
					else
					{
						target_element.style.width = created_img_W + target_element_W
					}
				}
			}
}
function show_mysettings()
{
	show_global_intro("mysettings")
}
function show_searchfriends()
{
	show_global_intro("searchfriends")
}
function show_invitefriends()
{
	show_global_intro("invitefriends")
}
function get_text(target_id, text,targetdiv)
{
	if(target_id) 
	{
		var target_div = document.getElementById(target_id)
	}
	else if(targetdiv)
	{
		// hier heb je 
		var target_div = targetdiv
	}
	else
	{
	// kan niet ERROR
	}
	
		target_div.innerHTML = ''
		target_div.style.visibility = "inherit"
		var target_div_H = target_div.offsetHeight
		var target_div_W = target_div.offsetWidth
		
//		if(targetdiv)
//		{		
//			var	target_div_inner =	createElement(targetdiv,"target_div_inner","target_div_inner",'div')
//		}
//		else
//		{
			var	target_div_inner =	createElement(target_div,"target_div_inner","target_div_inner",'div')
//		}
			
			if(BrowserDetect.browser == "Explorer")
				{
				target_div_inner.style.height = target_div_H
				target_div_inner.style.width = target_div_W
				}
				else
				{
				target_div_inner.style.height = target_div_H - 20
				target_div_inner.style.width = target_div_W - 20
				}
				target_div_inner.style.position = 'absolute'
				target_div_inner.style.padding = "10px"
	
	treelzsystem.languages.getTranslationOf(text,getTrans.Translate("language_selected"),function(vertaling)
	{
				target_div_inner.innerHTML = vertaling
	//			target_div_inner.style.backgroundColor = 'black'
				CSBfleXcroll(target_div_inner) 
	}
	);
}
function get_text_terms_of_use(target_id, text,targetdiv)
{
		targetdiv.innerHTML = ''
		targetdiv.style.visibility = "inherit"
	
	treelzsystem.languages.getTranslationOf(text,getTrans.Translate("language_selected"),function(vertaling)
	{
				targetdiv.innerHTML = vertaling
	}
	);
}
function get_terms_of_use_inner(targetdiv_out)
{
  if(targetdiv_out)
  {
	get_text(null, 'terms_of_use',targetdiv_out)
  }
  else
  {
   		var targetdiv = document.getElementById('terms_or_privacy')	
			targetdiv.style.display = ''
	get_text(null, 'terms_of_use',targetdiv)
  }
}
function make_div_inherit(targetdiv_id)
{
		var targetdiv = document.getElementById(targetdiv_id)		
			targetdiv.style.visibility = "inherit"
}
function make_div_hidden(targetdiv_id)
{
		var targetdiv = document.getElementById(targetdiv_id)		
			targetdiv.style.visibility = "hidden"
}
function equalize_with_parent(parent_id, child_id)
{
	var parent_div = document.getElementById(parent_id)
	var child_div = document.getElementById(child_id)		

		var W_element = parent_div.offsetWidth
		var H_element = parent_div.offsetHeight

			child_div.style.position = "absolute"
			child_div.style.width = W_element
			child_div.style.height = H_element
			child_div.style.left = 0
			child_div.style.top = 0
}
function set_mouse_over_out_div(div_id, opacity)
{
	var thediv = document.getElementById(div_id)		
			if (BrowserDetect.browser == "Explorer")
				{
						var str = "thediv.setAttribute('onmouseover',function anonymous(){fade_div('"+div_id+"', "+opacity+")})";
						eval(str)
						var	str2 = "thediv.setAttribute('onmouseout',function anonymous(){lightup_div('"+div_id+"')})";
						eval(str2)
				}
				else
				{
					
						thediv.setAttribute('onmouseover',"change_opacity_id('"+div_id+"', "+opacity+")")
						thediv.setAttribute('onmouseout',"change_opacity_id('"+div_id+"', 100)")
				}
}
function lightup_div(div_id)
{
	var select_button_div = document.getElementById(div_id)		
		change_opacity(select_button_div, 100)
}
function fade_div(div_id, opacity)
{
	var select_button_div = document.getElementById(div_id)		
		change_opacity(select_button_div, opacity)
}
function set_mouse_over_out_div_filter(div_id, opacity, sort_name)
{
	var thediv = document.getElementById(div_id)		
			if (BrowserDetect.browser == "Explorer")
				{
						var str = "thediv.setAttribute('onmouseover',function anonymous(){lightup_div_filter('"+div_id+"', 100, '"+sort_name+"')})";
						eval(str)
						var	str2 = "thediv.setAttribute('onmouseout',function anonymous(){fade_div_filter('"+div_id+"', "+opacity+", '"+sort_name+"')})";
						eval(str2)
				}
				else
				{
						thediv.setAttribute('onmouseover',"lightup_div_filter('"+div_id+"', 100, '"+sort_name+"')")
						thediv.setAttribute('onmouseout',"fade_div_filter('"+div_id+"', "+opacity+", '"+sort_name+"')")
				}
}
function lightup_div_filter(div_id)
{
		clearTimeout(timer_selection_filters)

		if(div_id == "select_button_div_group_Global")	
		{
			fill_close_sel_groups('Global')
			filter_get_out_of_count_global(function(aantal,outof)
					{
						if(aantal == 0)	
						{
						var select_button_div = document.getElementById(div_id)		
							change_opacity(select_button_div, option_h_o)
						}
					});
		}
		if(div_id == "select_button_div_group_Groups")	
		{
			fill_close_sel_groups('Groups')
			filter_get_out_of_count_mygroups(function(aantal,outof)
					{
						if(aantal == 0)	
						{
						var select_button_div = document.getElementById(div_id)		
							change_opacity(select_button_div, option_h_o)
						}
					});
		}
		if(div_id == "select_button_div_group_Friends")	
		{
			fill_close_sel_groups('Friends')
			filter_get_out_of_count_myfriends(function(aantal,outof)
					{
						if(aantal == 0)	
						{
						var select_button_div = document.getElementById(div_id)		
							change_opacity(select_button_div, option_h_o)
						}
					});
		}
		if(div_id == "select_button_div_group_Search")	
		{
			fill_close_sel_groups('Search')
		}
}
function fade_div_filter(div_id, opacity, sort_name)
{
		
		close_sel_groups(sort_name)
		
		
		if(div_id == "select_button_div_group_Global")	
		{
			filter_get_out_of_count_global(function(aantal,outof)
					{
						if(aantal == 0)	
						{
						var select_button_div = document.getElementById(div_id)		
							change_opacity(select_button_div, opacity)
						}
					});
		}
		if(div_id == "select_button_div_group_Groups")	
		{
			filter_get_out_of_count_mygroups(function(aantal,outof)
					{
						if(aantal == 0)	
						{
						var select_button_div = document.getElementById(div_id)		
							change_opacity(select_button_div, opacity)
						}
					});
		}
		if(div_id == "select_button_div_group_Friends")	
		{
			filter_get_out_of_count_myfriends(function(aantal,outof)
					{
						if(aantal == 0)	
						{
						var select_button_div = document.getElementById(div_id)		
							change_opacity(select_button_div, opacity)
						}
					});
		}
}
function hide_tooltip()
{
	if(document.getElementById("tooltip"))	
	{
		var tooltip = document.getElementById("tooltip");
			tooltip.parentNode.style.visibility = "hidden"
	}
}
function change_opacity(target_element, opacity)
{
	if (BrowserDetect.browser == "Explorer")
	{target_element.style.filter = 'alpha(opacity='+opacity+')'}
	else if (BrowserDetect.browser == "Firefox")
	{target_element.style.MozOpacity = opacity/100}
	else if (BrowserDetect.browser == "Safari")
	{target_element.style.KhtmlOpacity = opacity/100;}
	else
	{target_element.style.opacity = opacity/100}
	
}

function set_background_color(target_element, bgcolor)
{
		target_element.style.backgroundColor = bgcolor
}
function set_background_div(target_element_id, opacity, URL, bgColor, sort_name)
{
	var target_element = document.getElementById(target_element_id);
		target_element.innerHTML = ""
		var W_element = target_element.offsetWidth
		var H_element = target_element.offsetHeight
		
		var target_element_bg_div = createElement(target_element, target_element_id+"_bg_div",target_element_id+"_bg_div","div")
			target_element_bg_div.style.position = "absolute"
//			target_element_bg_div.style.width = W_element
//			target_element_bg_div.style.height = H_element
			target_element_bg_div.style.width = "100%"
			target_element_bg_div.style.height = "100%"
			target_element_bg_div.style.left = 0
			target_element_bg_div.style.top = 0
	if(URL)	
	{
			if (BrowserDetect.browser == "Explorer")
			{target_element_bg_div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+URL+")";}
			else
			{target_element_bg_div.style.backgroundImage = "url("+URL+")"}
	}
	if(bgColor)
	{
//		alert(bgColor)
			target_element_bg_div.style.backgroundColor = "black"
			//target_element_bg_div.style.background = bgColor
			change_opacity(target_element_bg_div, opacity)
	}
}
function set_background_div_sel(target_element_id, opacity, bgColor, type, sort_name)
{
	var details_groups_selection = document.getElementById("details_groups_selection_"+sort_name);

	
	var target_element = document.getElementById(target_element_id);
		target_element.innerHTML = ""
		var W_element = details_groups_selection.offsetWidth
		var H_element = details_groups_selection.offsetHeight
		
		var target_element_bg_div = createElement(target_element, target_element_id+"_bg_div",target_element_id+"_bg_div","div")
			target_element_bg_div.style.position = "absolute"
			target_element_bg_div.style.width = "100%"
			target_element_bg_div.style.left = 0
			target_element_bg_div.style.top = 0
			var target_element_bg_div_middle = createElement(target_element_bg_div, target_element_id+"_bg_div_middle",target_element_id+"_bg_div_middle","div")
				target_element_bg_div_middle.style.position = "absolute"
				
				
				target_element_bg_div_middle.style.width = "100%"
				target_element_bg_div_middle.style.left = 0
				target_element_bg_div_middle.style.backgroundColor = "black"
	if(type == "top" || type == "top_and_bottom")
	{
			target_element_bg_div.style.height = H_element
				target_element_bg_div_middle.style.height = H_element - 26
				target_element_bg_div_middle.style.top = 13
			var selection_t_l_c = createElement(target_element_bg_div, "selection_t_l_c","selection_t_l_c","div")
			var selection_t_r_c = createElement(target_element_bg_div, "selection_t_r_c","selection_t_r_c","div")
			var selection_t = createElement(target_element_bg_div,+"selection_t","selection_t","div")
				set_background_image(selection_t_l_c, "images/3_selection/corners/corner_t_l.png")
				set_background_image(selection_t_r_c, "images/3_selection/corners/corner_t_r.png")
	}
	if(type == "bottom" || type == "top_and_bottom")
	{
			var selection_b_l_c = createElement(target_element_bg_div, "selection_b_l_c","selection_b_l_c","div")
			var selection_b_r_c = createElement(target_element_bg_div, "selection_b_r_c","selection_b_r_c","div")
			var selection_b = createElement(target_element_bg_div,+"selection_b","selection_b","div")
				set_background_image(selection_b_l_c, "images/3_selection/corners/corner_b_l.png")
				set_background_image(selection_b_r_c, "images/3_selection/corners/corner_b_r.png")
	}
	if(type == "bottom")
	{
			target_element_bg_div.style.height = 30
				target_element_bg_div_middle.style.height = 17
				target_element_bg_div_middle.style.top = 0
	}
	change_opacity(target_element_bg_div, opacity)
}
function show_wiki()
{
mapsystem.globalfilter.setGroupFilter(2,true)
}
function show_debug_new()
{
	var debug_window = document.getElementById("debug_window");
		debug_window.style.visibility = 'visible'
}
function clear_debug()
{
	var debug_window = document.getElementById("debug_window");
		debug_window.innerHTML = '<div id="close_intro" class="close_div" classname="close_div"><a id="closebutton_intro" class="closebutton_a" classname="closebutton_a" href="javascript:close_debug()" title="Close window"><img width="16" height="16" alt="" src="images/knoppen-titels/empty_icons/empty_1x1.gif"/></a></div><a class="clear_debug_button" href="javascript:clear_debug()">Clear</a>'
}
function close_debug()
{
	var debug_window = document.getElementById("debug_window");
		debug_window.style.visibility = 'hidden'
}
function add_to_debug(content)
{
	var debug_window = document.getElementById("debug_window");
	debug_window.innerHTML = content + debug_window.innerHTML
}
function show_group_window()
{
	var debug_window = document.getElementById("group_window");
		debug_window.style.visibility = 'visible'

}
function clear_group_window()
{
	var debug_window = document.getElementById("group_window");
		debug_window.innerHTML = '<div id="close_intro" class="close_div" classname="close_div"><a id="closebutton_intro" class="closebutton_a" classname="closebutton_a" href="javascript:close_group_window()" title="Close window"><img width="16" height="16" alt="" src="images/knoppen-titels/empty_icons/empty_1x1.gif"/></a></div><a class="clear_debug_button" href="javascript:clear_debug()">Clear</a>'
}
function close_group_window()
{
	var group_window = document.getElementById("group_window");
		group_window.style.visibility = 'hidden'
		
		hide_scroll("group_window")
}
function add_to_group_window(content)
{
	var debug_window = document.getElementById("group_window");
		debug_window.innerHTML += content
}
function show_loading_status_on(number_requests_in_queue)
{
var loading_div = document.getElementById("loading_div");
	loading_div.style.visibility = 'visible'
}
function show_loading_status_off()
{
var loading_div = document.getElementById("loading_div");
	loading_div.style.visibility = 'hidden'
}
function updated_num_active_requests(number,queue)
{
  var scroll_left = document.getElementById("search");
  if(number >0)
  {
	   show_loading_status_on(number+queue)
  }
  else
  {
  	show_loading_status_off()
  }
}
function create_scroll_targetdivs(parentdiv, type)
{
	var parentdiv_target = document.getElementById(parentdiv)
	
	var scroll_left = createElement(parentdiv_target,"scroll_left"+type,"scroll_left"+type,'div');
	var scroll_numbers = createElement(parentdiv_target,"scroll_numbers"+type,"scroll_numbers"+type,'div');
	var scroll_right = createElement(parentdiv_target,"scroll_right"+type,"scroll_right"+type,'div');
}
function	alert_browser()
	{
			var	thediv	=	document.getElementById("treelz_alert_div")

			thediv.innerHTML	=	'<br	/>navigator.appCodeName	=	'+navigator.appCodeName
			thediv.innerHTML	+=	'<br	/>navigator.appName	=	'+navigator.appName
			thediv.innerHTML	+=	'<br	/>navigator.appMinorVersion	=	'+navigator.appMinorVersion
			thediv.innerHTML	+=	'<br	/>navigator.cpuClass	=	'+navigator.cpuClass
			thediv.innerHTML	+=	'<br	/>navigator.platform	=	'+navigator.platform
			thediv.innerHTML	+=	'<br	/>navigator.plugins	=	'+navigator.plugins
			thediv.innerHTML	+=	'<br	/>navigator.opsProfile	=	'+navigator.opsProfile
			thediv.innerHTML	+=	'<br	/>navigator.userProfile	=	'+navigator.userProfile
			thediv.innerHTML	+=	'<br	/>navigator.systemLanguage	=	'+navigator.systemLanguage
			thediv.innerHTML	+=	'<br	/>navigator.userLanguage	=	'+navigator.userLanguage
			thediv.innerHTML	+=	'<br	/>navigator.appVersion	=	'+navigator.appVersion
			thediv.innerHTML	+=	'<br	/>navigator.userAgent	=	'+navigator.userAgent
			thediv.innerHTML	+=	'<br	/>navigator.onLine	=	'+navigator.onLine
			thediv.innerHTML	+=	'<br	/>navigator.cookieEnabled	=	'+navigator.cookieEnabled
			thediv.innerHTML	+=	'<br	/>navigator.mimeTypes	=	'+navigator.mimeTypes
			thediv.innerHTML	+=	'<br	/>You\'re	using	'	+	BrowserDetect.browser	+	'	'	+	BrowserDetect.version	+	'	on	'	+	BrowserDetect.OS	+	'!'
	show_treelz_alert() 
	}
function	alert_browser_log()
	{
			var	thediv	=	document.getElementById("treelz_log_div")
			thediv.innerHTML	+=	'<br	/>'+navigator.platform
			thediv.innerHTML	+=	'<br	/><br	/>'+navigator.userAgent
			thediv.innerHTML	+=	'<br	/><br	/>You\'re	using	'	+	BrowserDetect.browser	+	'	'	+	BrowserDetect.version	+	'	on	'	+	BrowserDetect.OS	+	'!'
	}
	function	show_showlevel()
	{
			var	map_showlevel	=	document.getElementById("map_showlevel")
			map_showlevel.style.visibility	=	"inherit"
	}
	function	hide_showlevel()
	{
			var	map_showlevel	=	document.getElementById("map_showlevel")
			map_showlevel.style.visibility	=	"hidden"
	}
	function	look_around()
	{
			hide_container_onscreen("_intro")
			show_help_container()
	}
function change_darkness_bg(opacity, type)
	{
		if(document.getElementById('titlebar'+type))
		{
			document.getElementById('titlebar'+type).setAttribute('class',"titlebar_"+opacity)
			document.getElementById('titlebar'+type).setAttribute('className',"titlebar_"+opacity)
			document.getElementById('footer'+type).setAttribute('class',"footer_"+opacity)
			document.getElementById('footer'+type).setAttribute('className',"footer_"+opacity)
			document.getElementById('background'+type).setAttribute('class',"background_"+opacity)
			document.getElementById('background'+type).setAttribute('className',"background_"+opacity)
			document.getElementById('corner_t_l'+type).setAttribute('class',"corner_t_l_"+opacity)
			document.getElementById('corner_t_l'+type).setAttribute('className',"corner_t_l_"+opacity)
			document.getElementById('corner_t_r'+type).setAttribute('class',"corner_t_r_"+opacity)
			document.getElementById('corner_t_r'+type).setAttribute('className',"corner_t_r_"+opacity)
			document.getElementById('corner_b_l'+type).setAttribute('class',"corner_b_l_"+opacity)
			document.getElementById('corner_b_l'+type).setAttribute('className',"corner_b_l_"+opacity)
			document.getElementById('corner_b_r'+type).setAttribute('class',"corner_b_r_"+opacity)
			document.getElementById('corner_b_r'+type).setAttribute('className',"corner_b_r_"+opacity)
			document.getElementById('extra_t_l'+type).setAttribute('class',"extra_t_l_"+opacity)
			document.getElementById('extra_t_l'+type).setAttribute('className',"extra_t_l_"+opacity)
			document.getElementById('extra_t_r'+type).setAttribute('class',"extra_t_r_"+opacity)
			document.getElementById('extra_t_r'+type).setAttribute('className',"extra_t_r_"+opacity)
			document.getElementById('extra_b_l'+type).setAttribute('class',"extra_b_l_"+opacity)
			document.getElementById('extra_b_l'+type).setAttribute('className',"extra_b_l_"+opacity)
			document.getElementById('extra_b_r'+type).setAttribute('class',"extra_b_r_"+opacity)
			document.getElementById('extra_b_r'+type).setAttribute('className',"extra_b_r_"+opacity)
		}
}
function show_treelz_alert(content, content2)
{
	var treelz_alert_div = document.getElementById('treelz_alert_div')
		treelz_alert_div.style.visibility = "inherit"
		
		if(content)
		{
		treelz_alert_div.innerHTML = '<img	src="images/1_knoppen/icon_alert.jpg" width=\"48\"	height=\"43\"><br/><br/>'+getTrans.Translate(content)
		}
		if(content2)
		{
			treelz_alert_div.innerHTML = getTrans.Translate(content)+" "+getTrans.Translate(content2)
		}
		
	
		var treelz_alert_a_close = createElement(treelz_alert_div,"treelz_alert_a_close",null,'a');
		treelz_alert_a_close.href = "javascript:close_treelz_alert()"
	
	var bodyW = document.body.offsetWidth;
	var alert_divW = document.getElementById('treelz_alert_div').offsetWidth;

	treelz_alert_div.style.left = (bodyW/2) - (alert_divW/2)
}
function show_treelz_alert_URL_normal(content, URL)
{
	var treelz_alert_div = document.getElementById('treelz_alert_div')
		treelz_alert_div.style.visibility = "inherit"
		
		if(content)
		{
			treelz_alert_div.innerHTML = '<img	src="images/1_knoppen/icon_alert.jpg" width=\"48\"	height=\"43\"><br/><br/>'+getTrans.Translate(content)+'<br/><br/><a class="greylink" href="http://'+URL+'">'+URL+'</a>'
		}
		
	
		var treelz_alert_a_close = createElement(treelz_alert_div,"treelz_alert_a_close",null,'a');
		treelz_alert_a_close.href = "javascript:close_treelz_alert()"
	
	var bodyW = document.body.offsetWidth;
	var alert_divW = document.getElementById('treelz_alert_div').offsetWidth;

	treelz_alert_div.style.left = (bodyW/2) - (alert_divW/2)
}

function show_treelz_alert_URL(content,content2,  URL)
{
	var treelz_alert_div = document.getElementById('treelz_alert_div')
		treelz_alert_div.style.visibility = "inherit"
		
		
		treelz_alert_div.innerHTML = '<img	src="images/1_knoppen/icon_alert.jpg" width=\"48\"	height=\"43\"><br/><br/>'+getTrans.Translate(content)+": <br /> <br /><a target='_blank' href='"+URL+"' class='greylink'>www.treelz.com/"+URL+"</a><br /> <br />"+getTrans.Translate(content2)+"<br /> <br /><input type='text' name='link' class='input_general_link' value='www.treelz.com/"+URL+"' onFocus=\"this.focus(); this.select()\" onClick=\"this.focus(); this.select()\">";
		
	
		var treelz_alert_a_close = createElement(treelz_alert_div,"treelz_alert_a_close",null,'a');
		treelz_alert_a_close.href = "javascript:close_treelz_alert()"
	
	
	
	var bodyW = document.body.offsetWidth;
	var alert_divW = document.getElementById('treelz_alert_div').offsetWidth;

	treelz_alert_div.style.left = (bodyW/2) - (alert_divW/2)
}
function show_treelz_alert_URL_RSS(content,content2,  URL)
{
	var treelz_alert_div = document.getElementById('treelz_alert_div')
		treelz_alert_div.style.visibility = "inherit"
		
		
		treelz_alert_div.innerHTML = getTrans.Translate(content)+": <br /> <br /><a target='_blank' href='"+URL+"' class='greylink'>www.treelz.com/"+URL+"</a><br /> <br />"+getTrans.Translate(content2)+"<br /> <br /><input type='text' name='link' class='input_general_link' value='www.treelz.com/"+URL+"' onFocus=\"this.focus(); this.select()\" onClick=\"this.focus(); this.select()\">";
		
	
		var treelz_alert_a_close = createElement(treelz_alert_div,"treelz_alert_a_close",null,'a');
		treelz_alert_a_close.href = "javascript:close_treelz_alert()"
	
	
	
	var bodyW = document.body.offsetWidth;
	var alert_divW = document.getElementById('treelz_alert_div').offsetWidth;

	treelz_alert_div.style.left = (bodyW/2) - (alert_divW/2)
}



function close_treelz_alert()
{
	
	var treelz_alert_div = document.getElementById('treelz_alert_div')
		treelz_alert_div.style.visibility = "hidden"
		treelz_alert_div.innerHTML = ""
}
function load_content_link()
{
	clickedon_link()

var mail_link_div = document.getElementById('mail_link_div')

	var mail_link_div_inner = document.getElementById('clientarea_inner_link')
		mail_link_div_inner.innerHTML = ""

		var mail_link_div_inner_target = createElement(mail_link_div_inner,"mail_link_div_inner_target","mail_link_div_inner_target",'div');
			mail_link_div_inner_target.innerHTML = ""
		
		var mail_link_div_close = createElement(mail_link_div,"treelz_alert_a_close","treelz_alert_a_close",'a');
			mail_link_div_close.href = "javascript:close_mail_link_div()"
	
			var mailHTML = "<form name='linkForm' action=\"\">";

				mailHTML += "<br>";
				mailHTML += getTrans.Translate("past_link");
				mailHTML += "<br>";
				mailHTML += "<input type='text' name='link' class='input_general_link' value="+urls.returnURL()+" onFocus=\"this.focus(); this.select()\" onClick=\"this.focus(); this.select()\">";
				mailHTML += "<br>";
				mailHTML += getTrans.Translate("this_link");

			if(treelzsystem.treelersocial)
			{
				mailHTML += "<br>";
				mailHTML += "<br>";
				mailHTML += getTrans.Translate("or_mail");
				mailHTML += "<br>";
				mailHTML += "Aan:";
				mailHTML += "<br>";
				mailHTML += "<input type='text' name='to' class='input_general_email' >";  //value='email address' onfocus='if (this.value == \"email address\"){this.value = \"\";}'
				mailHTML += "<br>";
				mailHTML += "<span class=\"grey\">";
				mailHTML += getTrans.Translate("seperate_comma");
				mailHTML += "</span>";
				mailHTML += "<br>";
				mailHTML += "<br>";
				mailHTML += getTrans.Translate("Personal_message")+":";
				mailHTML += "<br>";
				mailHTML += "<textarea name='message' class='input_general_text_100' rows='4' ></textarea>";//onfocus='if (this.value == \"Persoonlijk bericht\"){this.value = \"\";}'
				mailHTML += "<br>";
				mailHTML += "<a href='javascript:email_link(linkForm.link.value, linkForm.message.value, linkForm.to.value)'>"+getTrans.Translate("send")+"</a>";			
				mailHTML += "</form>";
				mailHTML += "<br>";
				
				mail_link_div_inner_target.innerHTML = mailHTML;
				
				
			}
			else
			{
				mailHTML += "<br>";
				mailHTML += "<br>";
				mailHTML += getTrans.Translate("mail_direct_only_login");
				
				mail_link_div_inner_target.innerHTML = mailHTML;
				
				collapse_container("_link", "85px")
				
			}
show_container("_link")
fill_titel_link()
center_container("_link")
}
function close_mail_link_div()
{
	
	var treelz_alert_div = document.getElementById('mail_link_div')
		treelz_alert_div.style.visibility = "hidden"
		treelz_alert_div.innerHTML = ""
}
function center_container_hor(container_id)
	{
//		alert("center_container_hor: "+container_id)
		
		var winW = document.body.offsetWidth;
		var containerW = document.getElementById(container_id).offsetWidth;
		document.getElementById(container_id).style.left = winW/2 - containerW/2
	}

function center_container_type(type)
	{
		var bodyH = document.body.offsetHeight;
		var bodyW = document.body.offsetWidth;
		
		var innerH = document.getElementById('clientarea_inner'+type).offsetHeight;
		var frameW = document.getElementById('frame'+type).offsetWidth;
		
		var top = (bodyH/2) - (innerH/2)
		var left = (bodyW/2) - (frameW/2)
		
		move_or_resize(type, top, left, null, null)
	}

function center_container(type, extra)
	{
		var bodyH = document.body.offsetHeight;
		var bodyW = document.body.offsetWidth;
		
		var innerH = document.getElementById('clientarea_inner'+type).offsetHeight;
		var frameW = document.getElementById('frame'+type).offsetWidth;
		var frameT = document.getElementById('frame'+type).offsetTop;
		
		
		var left = (bodyW/2) - (frameW/2)
		
		var	frame_h_center = innerH + statusbar_h + statusbar_extra_2 + titlebar_h + 9
		

			if(frame_h_center > bodyH - 160)
			{
					var top = 84
			}
			else
			{		
				if(extra){var top = (bodyH) - (innerH) - 163 - extra}
				else{var top = (bodyH) - (innerH) - 163}
			}
		
		move_or_resize(type, top, left, null, null)
		
		
		
		my_own_BuildFunc(type)
	}
function move_or_resize(type, top, left, width, height, move_top, move_left)
	{
		var frame = document.getElementById('frame'+type);
			
			if(top){frame_t = top}else{frame_t = frame.offsetTop}
			if(left){frame_l = left}else{frame_l = frame.offsetLeft}
			if(move_top){frame_t =  frame.offsetTop + move_top + 60}
			if(move_left){frame_l = frame.offsetLeft + move_left}
			if(width){frame_w = width}else{frame_w = frame.offsetWidth}
			if(height){frame_h = height}else{frame_h = frame.offsetHeight}

			dd.elements['frame'+type].resizeTo(frame_w,frame_h);
			dd.elements['frame'+type].moveTo(frame_l, frame_t);
			
			dd.elements['titlebar'+type].moveTo(frame_l+10+frame_padding, frame_t+2+frame_padding);
			dd.elements['titlebar'+type].resizeTo(frame_w-20-(frame_padding<<1), titlebar_h);
		
			dd.elements['clientarea'+type].moveTo(frame_l+0+frame_padding+clientarea_margin, dd.elements['titlebar'+type].y+titlebar_h+toolbar_h+clientarea_margin);
			dd.elements['clientarea'+type].resizeTo(frame_w-0-(frame_padding<<1)-(clientarea_margin<<1)-5,frame_h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);

			dd.elements['background'+type].moveTo(frame_l+0+frame_padding+clientarea_margin, dd.elements['titlebar'+type].y+titlebar_h+toolbar_h+clientarea_margin);
			dd.elements['background'+type].resizeTo(frame_w-0-(frame_padding<<1)-(clientarea_margin<<1),frame_h-titlebar_h-toolbar_h-statusbar_h - statusbar_extra_2 -(frame_padding<<1)-clientarea_margin);

			dd.elements['footer'+type].resizeTo(frame_w-0-(frame_padding<<1)-(clientarea_margin<<1)-20,footer_h + footer_extra_2);
			dd.elements['footer'+type].moveTo(frame_l+10, frame_t+frame_h-dd.elements['footer'+type].h );

			dd.elements['corner_t_l'+type].moveTo(frame_l, frame_t+2);
			dd.elements['corner_t_r'+type].moveTo(frame_l+ frame_w-dd.elements['corner_t_r'+type].w, frame_t+2);
			dd.elements['corner_b_l'+type].moveTo(frame_l, frame_t+frame_h-dd.elements['corner_b_l'+type].h);
			dd.elements['corner_b_r'+type].moveTo(frame_l+ frame_w-dd.elements['corner_b_r'+type].w, frame_t+frame_h-dd.elements['corner_b_r'+type].h);


			dd.elements['resizehandle'+type].moveTo(frame_l+frame_w-dd.elements['resizehandle'+type].w-2, frame_t+frame_h-dd.elements['resizehandle'+type].h-2 );

	cleanTestDiv(type)
	}
function clear_middle_div()
{
		var middle_div = document.getElementById('middle');				
			middle_div.innerHTML = '';
}
function set_middle_overflow_auto()
{
	var middle_div = document.getElementById('middle');				
		middle_div.style.overflow = 'auto';
}
function set_middle_overflow_hidden()
{
	var middle_div = document.getElementById('middle');				
		middle_div.style.overflow = 'hidden';
}

function set_middle_margin()
{
	var middle_div = document.getElementById('middle');				
		middle_div.style.margin = 50;
}
function set_middle_nomargin()
{
	var middle_div = document.getElementById('middle');				
		middle_div.style.margin = ''
}



//adjust width and height of an element
function adjust_h_w(idnaam, height, width)
	{
		 var element = document.getElementById(idnaam)
			
			if(height){element.style.height = height}
			if(width){element.style.width = width}
	}
//set style of a div
function adjustDivStyle(idnaam, position, visibility, overflow, height, width)
	{
		 var thediv = document.getElementById(idnaam)
		 if(position) {thediv.style.position = position}
		 if(height) {thediv.style.height = height}
		 if(width) {thediv.style.width = width}
		 if(visibility) {thediv.style.visibility = visibility}
		 if(overflow) {thediv.style.overflow = overflow}
	}
//create an image
function createimageshowUrl(imageid,thumb,height,width)
	{
		var url = ''+baseurl +'imageshow.php?'
		if(thumb) url = url + 'thumb=true &h='+height+' &w='+width+''
		url = url + '&imageid='+imageid+'';
		return url
		
	}
	
//create a new element
function createElement(parentdiv,classname,id,type)
	{
			var new_element = document.createElement(type);
			if(parentdiv) parentdiv.appendChild(new_element);
			if(classname)
	{
				new_element.setAttribute('class',classname);
				new_element.setAttribute('className',classname);
	}
			if(id) new_element.id = id
			return new_element
	}

function fill_titel_intro()
{
	var titel_div = document.getElementById("frame_intro")
		var menu_intro = createElement(titel_div,"menu_intro","menu_intro",'div');
				menu_intro.innerHTML	=	'<a	href="javascript:show_inintro_intro()">'+getTrans.Translate("Intro")+'</a> | <a	href="javascript:show_inintro_extra_info()">'+getTrans.Translate("Extra_info")+'</a> |  <a	href="javascript:all_news_intro()">'+getTrans.Translate("News")+'</a> | <a	href="javascript:show_inintro_contact()">'+getTrans.Translate("Contact")+'</a> | <a	href="javascript:show_inintro_terms_of_use()">'+getTrans.Translate("Terms_of_use")+'</a> | <a	href="javascript:show_inintro_links()">'+getTrans.Translate("Links")+'</a>'
}
function fill_titel_link()
{
	
		var titel_div = document.getElementById("titlebar_link")
			titel_div.innerHTML = ""
		
			var link_a = createElement(titel_div,"class_h5",null,'a')
				link_a.innerHTML = getTrans.Translate("send_a_link")
}
function fill_titel_treel(treelid, userid)
	{
		var titel_div = document.getElementById("titlebar_treel")
			titel_div.innerHTML = ""
					
		
		mapsystem.treelz.getTreel(treelid,function(treel)
			{
			var name = treel.name
			
			var treel_a = createElement(titel_div,"class_h5",null,'a')
				treel_a.innerHTML = name
			}
			);
	}
function fill_titel_userprofile(gevondenuser)
	{
				var titel_div = document.getElementById("titlebar_user")
					titel_div.innerHTML = ""
					
				
					var username_a = createElement(titel_div,"class_h5",null,'a')
						username_a.innerHTML = gevondenuser.firstname+" "+gevondenuser.lastname

					var username_br = createElement(titel_div,null,null,'br')
				
				


	}
function fill_titel_groupprofile(gevondengroup)
	{
				var titel_div = document.getElementById("titlebar_group")
					titel_div.innerHTML = ""
					
				
					var username_a = createElement(titel_div,"class_h5",null,'a')
			  	 //	 	username_a.href = "javascript:minmax_container_user()"
						username_a.innerHTML = gevondengroup.title
	}

function fill_titel_message(msg)
	{
				var titel_div = document.getElementById("titlebar_msg")
					titel_div.innerHTML = ""

				
				
				var titel_msg_a = createElement(titel_div,"class_h5",null,'a')
			//		titel_msg__a.href = "javascript:minmax_container_msg()"
					msg.getTitle(function(title)
				{
					if(title)
					{titel_msg_a.innerHTML =  title}
					else
					{titel_msg_a.innerHTML = ''}
				}
				);
	}
function fill_titel_intro_groups(group_id)
{
				var frame_intro = document.getElementById("frame_intro")
	//			frame_intro.innerHTML = ''
				
				var titel_div = document.getElementById("titlebar_intro")
					titel_div.innerHTML = ""

			mapsystem.groups.getGroup(group_id,function(group)
				{	
				
				var titel_msg_span = createElement(titel_div,"title_big_intro",null,'span')
					titel_msg_span.innerHTML =  group.title

				var sub_title_intro_a = createElement(frame_intro,"sub_title_intro_a","sub_title_intro_a",'a')
					sub_title_intro_a.innerHTML =  group.name+".treelz.com"
					
					sub_title_intro_a.target="_blank"
					
					sub_title_intro_a.href = "http://"+group.name+".treelz.com"
				}
				);
}
function fill_titel_edit_group(group_id)
{
	mapsystem.groups.getGroup(group_id,function(group)
			{
				fill_titel_data("_set", "Edit: " + group.name+".treelz.com")
			}
			);
}
function fill_titel_overview_group(group_id)
{
	mapsystem.groups.getGroup(group_id,function(group)
			{
				fill_titel_data("_view", "Overview: " + group.name+".treelz.com")
			}
			);
}
function fill_titel(type, content)	
	{
				var titel_div = document.getElementById("titlebar"+type)
					titel_div.innerHTML = ""
				
					var general_a = createElement(titel_div,"class_h5",null,'a')
						general_a.innerHTML = getTrans.Translate(content)
	}	
function fill_titel_data(type, content)	
	{
				var titel_div = document.getElementById("titlebar"+type)
					titel_div.innerHTML = ""
				
					var general_a = createElement(titel_div,"class_h5",null,'a')
						general_a.innerHTML = content
	}	
function setmaptypeonsatellite()
	{
		urls.AddVariable("MA", "s");
		urls.UpdateURL();
	//	change_darkness_bg_allcontainers(75)
		setcolormaptypes("satellite")
		mapsystem.map.setMapType(G_SATELLITE_MAP);
	}
function setmaptypeonhybrid()
	{
		urls.AddVariable("MA", "h");
		urls.UpdateURL();	
	//	change_darkness_bg_allcontainers(75)
		setcolormaptypes("hybrid")
		mapsystem.map.setMapType(G_HYBRID_MAP);
	}
function setmaptypeonmap()
	{
		urls.AddVariable("MA", "m");
		urls.UpdateURL();
	//	change_darkness_bg_allcontainers(85)
		setcolormaptypes("map")
		mapsystem.map.setMapType(G_NORMAL_MAP);
	}
function setmaptypeonterrain()
	{
		urls.AddVariable("MA", "t");
		urls.UpdateURL();
	//	change_darkness_bg_allcontainers(85)
		setcolormaptypes("terrain")
		mapsystem.map.setMapType(G_PHYSICAL_MAP);
	}

function setmaptypeonsatellite_pref()
	{
	//	change_darkness_bg_allcontainers(75)
		setcolormaptypes("satellite")
		mapsystem.map.setMapType(G_SATELLITE_MAP);
	}
function setmaptypeonhybrid_pref()
	{
	//	change_darkness_bg_allcontainers(75)
		setcolormaptypes("hybrid")
		mapsystem.map.setMapType(G_HYBRID_MAP);
	}
function setmaptypeonmap_pref()
	{
	//	change_darkness_bg_allcontainers(85)
		setcolormaptypes("map")
		mapsystem.map.setMapType(G_NORMAL_MAP);
	}
function setmaptypeonterrain_pref()
	{
	//	change_darkness_bg_allcontainers(85)
		setcolormaptypes("terrain")
		mapsystem.map.setMapType(G_PHYSICAL_MAP);
	}
function setcolormaptypes(type)
{
	var button_hybrid = document.getElementById("button_satellite")
		button_hybrid.style.color = ''
	var button_hybrid = document.getElementById("button_map")
		button_hybrid.style.color = ''
	var button_hybrid = document.getElementById("button_hybrid")
		button_hybrid.style.color = ''
	var button_hybrid = document.getElementById("button_terrain")
		button_hybrid.style.color = ''

	var button_hybrid = document.getElementById("button_"+type)
		button_hybrid.style.color = "white"
}
function zoomin(){mapsystem.map.zoomIn();}				
function zoomout(){mapsystem.map.zoomOut();}	
function setzoom_1(){mapsystem.map.setZoom(1);}				
function setzoom_2(){mapsystem.map.setZoom(2);}				
function setzoom_3(){mapsystem.map.setZoom(3);}				
function setzoom_4(){mapsystem.map.setZoom(4);}	
function setzoom_5(){mapsystem.map.setZoom(5);}	
function setzoom_6(){mapsystem.map.setZoom(6);}	
function setzoom_7(){mapsystem.map.setZoom(7);}	
function setzoom_8(){mapsystem.map.setZoom(8);}	
function setzoom_9(){mapsystem.map.setZoom(9);}	
function setzoom_10(){mapsystem.map.setZoom(10);}	
function setzoom_11(){mapsystem.map.setZoom(11);}	
function setzoom_12(){mapsystem.map.setZoom(12);}	
function setzoom_13(){mapsystem.map.setZoom(13);}	
function setzoom_14(){mapsystem.map.setZoom(14);}	
function setzoom_15(){mapsystem.map.setZoom(15);}	
function setzoom_16(){mapsystem.map.setZoom(16);}	
function setzoom_17(){mapsystem.map.setZoom(17);}	
function setzoom_18(){mapsystem.map.setZoom(18);}	
function setzoom_19(){mapsystem.map.setZoom(19);}	
function setzoom_20(){mapsystem.map.setZoom(20);}	
function setzoom_21(){mapsystem.map.setZoom(21);}	
function setzoom_22(){mapsystem.map.setZoom(22);}	
	
	function setzoom_x(x){mapsystem.map.setZoom(x);}
	
function clickedonprivate()
	{
		var checkbox = document.getElementById("checkbox_private")
		
		 if(checkbox.style.color == 'rgb(152, 152, 152)') 
			{
			 checkbox.style.color = "rgb(255, 255, 255)"
			}
		 else
			{
			checkbox.style.color = "rgb(152, 152, 152)"
			}
	}
function clickedonfriends()
	{
		var checkbox = document.getElementById("checkbox_friends")
		
		 if(checkbox.style.color == 'rgb(152, 152, 152)') 
			{
			 checkbox.style.color = "rgb(255, 255, 255)"
			}
		 else
			{
			checkbox.style.color = "rgb(152, 152, 152)"
			}
	}
function clickedonpublic()
	{
		var checkbox = document.getElementById("checkbox_public")
		
		 if(checkbox.style.color == 'rgb(152, 152, 152)') 
			{
			 checkbox.style.color = "rgb(255, 255, 255)"
			}
		 else
			{
			checkbox.style.color = "rgb(152, 152, 152)"
			}
	}
function setotherbackground()
	{	
	var outer = document.getElementById("container_userprofile_inner_outer")
		outer.setAttribute('classname',"setotherbackground")
	}
function test_show_height(type)
	{
		var frame_msg = document.getElementById('frame'+type);
		var clientarea_inner_msg = document.getElementById('clientarea_inner'+type);
		var middle = document.getElementById('middle');
		var zoombalk = document.getElementById('zoombalk');
		
		var debug_window = document.getElementById('debug_window')
			
			debug_window.innerHTML = ''
			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> top frame:<br />'+ frame_msg.offsetTop;
			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> height frame:<br />'+ frame_msg.offsetHeight;

			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> top inner:<br />'+ clientarea_inner_msg.offsetTop;
			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> height inner:<br />'+ clientarea_inner_msg.offsetHeight;

			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> top middle:<br />'+ middle.offsetTop;
			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> height middle:<br />'+ middle.offsetHeight;

			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> top zoombalk:<br />'+ zoombalk.offsetTop;
			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> height zoombalk:<br />'+ zoombalk.offsetHeight;

			debug_window.innerHTML = debug_window.innerHTML +'<br /><br /> height body:<br />'+ document.body.offsetHeight;
	}
	function detectVertScrollBar() 
		{
				if (document.body.clientHeight < document.body.offsetHeight) {
						return true;
				}
				return true;
		}

	function detectHorScrollBar() 
		{
				if (document.body.clientWidth < document.body.offsetWidth) {
						return true;
				}
				return true;
		}
		
	function collapse_container(type, height)
	{
		var clientarea_inner = document.getElementById('clientarea_inner'+type)
			clientarea_inner.style.height = height
		my_own_BuildFunc(type)
	}
	function collapse_container_intro()
	{
		collapse_container("_intro")
		
	}
	
	function email_link (link, message, to) {
		mapsystem.EmailLink(link, message, to, function(result){
			if (result == "ok") 
			{
			var mail_link_div_inner_target = document.getElementById("mail_link_div_inner_target");
				mail_link_div_inner_target.innerHTML = getTrans.Translate("sending_email_succesfull")
				
				collapse_container("_link", "10")
			}
			else {
			var mail_link_div_inner_target = document.getElementById("mail_link_div_inner_target");
				mail_link_div_inner_target.innerHTML = getTrans.Translate("sending_email_failed")
				
				collapse_container("_link", "10")
			}
		});
	}
	
	function center_div(div)
	{
		var bodyH = document.body.offsetHeight;
		var bodyW = document.body.offsetWidth;
		var div_element = document.getElementById(div)
		var divH = div_element.offsetHeight;
		var divW = div_element.offsetWidth;
		var top = (bodyH/2) - (divH/2)
		var left = (bodyW/2) - (divW/2)
		
		div_element.style.left = left
		div_element.style.top = top
	}
	
	function fill_intro_screen(div)
	{
		var div_element = document.getElementById(div)
		var intro_pic = createElement(div_element,"intro_pic","intro_pic_"+div,'div');
	}

	function close_intro_screen()
	{
		var div_element = document.getElementById("first_steps")
			div_element.style.visibility = "hidden"
	}
	function fill_signup_screen()
	{
		var intro_message = document.getElementById("intro_message")
		var intro_signup = createElement(intro_message,"intro_signup","intro_signup",'div');
			intro_signup.innerHTML	=	'<IFRAME	src="'+baseurl+'?page=register"		id="iframe_signup"		width="300"	height="150">	</IFRAME>'
	}
	function load_user_presets(user) 
	{
			alert("Loading the presets of users:" +user);
			Screen_Clicked_ShowUserOnly(1, true)
    }
	function nothing(){}//wordt dus wel gebruikt (is daar een andere manier voor?)
function open_close_sel_groups_Languages()
{
	open_close_sel_groups('Languages')
}
function load_languages_menu()
{
					var	standard_targetdiv	=	document.getElementById("select_languages_on_map")
					
		if(standard_targetdiv.style.visibility == "inherit")
		{
			close_lang_sel_menu()
			
			standard_targetdiv.innerHTML = ''
		}
		else
		{			
					standard_targetdiv.style.visibility = "inherit"
			//		standard_targetdiv.style.height	=	100

			treelzsystem.languages.getAllLanguages(function(lngs)
			{
					var	str	=	''
					for(i	in	lngs)
					{
							var	lng	=	lngs[i]
							//	1.	English
							str	+=	'<input	type="checkbox"	'
							if(mapsystem.globalfilter.getLanguageFilter(lng.id))
							{
									str	+=	'	checked	';
							}
							str	+=	'	onClick="selected_or_unselected_language('+lng.id+',this)"/>'
							str	+=	"<span>	"+lng.name+"</span><br>"


					}
					standard_targetdiv.innerHTML	=	str;
					filter_update_allcheckbox_languages()
			}
			);
		}
		
		add_close_button("select_languages_on_map", "javascript:close_lang_sel_menu()")
		
}
function close_lang_sel_menu()
{
	var	standard_targetdiv	=	document.getElementById("select_languages_on_map")
	standard_targetdiv.style.visibility = "hidden"

}
function open_lang_sel_menu()
{
	var	standard_targetdiv	=	document.getElementById("select_languages_on_map")
	standard_targetdiv.style.visibility = "inherit"

}
function	filter_update_allcheckbox_languages()
	{

			treelzsystem.languages.getAllLanguages(function(lngs)
			{
					var	tot=0;
					var	selected	=	0;
					for(i	in	lngs)
					{
							var	lng	=	lngs[i]
							if(mapsystem.globalfilter.getLanguageFilter(lng.id))
							{
									selected	+=	1;
							}
							tot	+=1;
					}
			}
			);
	}
	function	selected_or_unselected_language(langid,thecheckbox,update_type)
	{
			if(thecheckbox.checked)
			{
					mapsystem.globalfilter.setLanguageFilter(langid,true)
					filter_update_allcheckbox_languages()
			}
			else
			{
					mapsystem.globalfilter.setLanguageFilter(langid,false)
					filter_update_allcheckbox_languages()
			}
	}
	function hide_tools_on_map()
	{
	var	count_and_loading_div_outer	=	document.getElementById("count_and_loading_div_outer")
		count_and_loading_div_outer.style.display = "none"
	
	var	footer_map	=	document.getElementById("footer_map")
		footer_map.style.display = "none"
		
	}
	function	add_close_button(target_id,	href)
	{
			var	target_div	=	document.getElementById(target_id)

			var	close_details_groups	=	createElement(target_div,"close_div","close_details_groups",'div');

			var	closebutton_a	=	createElement(close_details_groups,	"closebutton_a",	null,	'a');
			closebutton_a.href	=	href
			closebutton_a.title	=	getTrans.Translate("title_close_window")
			closebutton_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="16"	height="16"		alt="">'
	}
	function	add_close_button_tooltip(target_id,	href)
	{
			var	target_div	=	document.getElementById(target_id)

			var	close_details_groups	=	createElement(target_div,"close_div_tooltip","close_details_groups",'div');

			var	closebutton_a	=	createElement(close_details_groups,	"closebutton_a_tooltip",	null,	'a');
			closebutton_a.href	=	href
			closebutton_a.title	=	getTrans.Translate("title_close_window")
			closebutton_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="10"	height="10"		alt="">'
	}
	function close_tooltip()
		{
	//		alert("close_tooltip")
	//	var	thisinstance	=	this;
	//		thisinstance.tooltip.style.visibility="hidden";
			var	tooltip	=	document.getElementById("tooltip")
				tooltip.parentNode.style.visibility = "hidden"
		
		}
	function open_close_sel_groups_Search()
	{
			open_close_sel_groups('Search')
	}
	function centeron_home()
	{
			if(treelzsystem.getTreelerSocial)
			{
					treelzsystem.getTreelerSocial(function(treelersocial)
					{
							userhome = treelersocial.user.home
							centreOn('',userhome,13)
					}
					);
			}
			else
			{
					show_treelz_alert("not_loggedin_home")
			}
	}
	
	function preload_images_at_start()
	{
		var	preloaden_images	=	document.getElementById("preloaden_images_2")
			if(getTrans.Translate("language_selected") == "NL")
			{
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_maplog.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_register.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_skip.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_groups.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_travel.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_pages_groups_1.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_pages_travel_1.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_pages_maplog_1.png"/>';
			}
			else
			{
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_register.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_skip.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_travel.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_groups.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_maplog.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_pages_groups_1.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_pages_travel_1.png"/>';
					preloaden_images.innerHTML += '<img src="images/4_intro/intro_pages_maplog_1.png"/>';
			}

			preloaden_images.innerHTML += '<img src="images/achtergronden/logo_treelz.png"/>';
			preloaden_images.innerHTML += '<img src="images/intro_global/black_corner_t_l.png"/>';
			preloaden_images.innerHTML += '<img src="images/intro_global/black_corner_t_r.png"/>';
			preloaden_images.innerHTML += '<img src="images/loaders/ajax-loader_1.gif"/>';

	}
	function preload_image(URL)
	{
		var	preloaden_images	=	document.getElementById("preloaden_images_2")
			preloaden_images.innerHTML += '<img src="'+URL+'"/>';
	}
	
	function oops_an_error_alert()
	{
		if(domain_uid != -1)
		{
			treelzsystem.users.getUser(domain_uid,null,function(gevondenuser)
			{
				show_treelz_alert_URL_normal("error_reload_page", gevondenuser.nickname+".treelz.com")
			}
			);
		}
		else if(domain_gid != -1)
		{
			mapsystem.groups.getGroup(domain_gid,function(gevondengroup)
			{
				show_treelz_alert_URL_normal("error_reload_page", gevondengroup.name+".treelz.com")
			}
			);
		}
		else
		{
				show_treelz_alert_URL_normal("error_reload_page", "www.treelz.com")
		}
	}
function open_groups_intro()
{
	show_global_intro()
	show_more_details('groups', 1)
	
}

function clear_timer_tooltip()
{
	clearTimeout(timer_hide_tooltip)	
}
function functie_timer_hide_tooltip()
{
	timer_hide_tooltip = setTimeout("hide_tooltip()",global_timer);
}/*t_groupprofile.js*/

var	groupprofile_notes	=	100
var	groupprofile_photos	=	100

var	thetags2	
var	groupselect_divs	=	[];

var only_group_var = false


/*Groupsprofile*/	

function load_content_groupprofile(groupid)
{
var value_if_member_group = ''
	
	urls.AddVariable("G", "i");
	urls.AddVariable("Gid", groupid);
	urls.UpdateURL();
	
	mapsystem.groups.getGroup(groupid,function(gevondengroup)
	{
		clickedon_group(gevondengroup)
		var	containerdiv	=		document.getElementById("clientarea_inner_group")
			containerdiv.innerHTML	=	'';
		var	containerdiv_outer	=		document.getElementById("frame_group")
			containerdiv_outer.innerHTML	=	'';
		create_scroll_targetdivs("frame_group", "_groupprofile")
		var	tabs_div	=	createElement(containerdiv_outer,"tabs_div","tabs_group",'div')
		fill_tabs_groupprofile_div(tabs_div,gevondengroup)
		
		var username_a_2 = createElement(containerdiv_outer,"greylink direct_link",null,'a')
			username_a_2.innerHTML = gevondengroup.name+".treelz.com"
			username_a_2.href = "http://"+gevondengroup.name+".treelz.com"
			username_a_2.target = "_blank"

		
		var	containerdiv_info_group	=	createElement(containerdiv,"containerdiv_info","containerdiv_info_group",'div')
//			var	userpicture_div	=	createElement(containerdiv_info_group,"userpicture_div","userpicture_div",'div')
//			fill_userpicture(userpicture_div,	gevondengroup)
		var	details_div_groupprofile	=	createElement(containerdiv_info_group,'details_div_groupprofile','details_div_groupprofile','div')
		show_groupinfo_groupprofile(groupid,value_if_member_group)
		show_container("_group")
		var	resizehandle_group	=		document.getElementById("resizehandle_group") 
			resizehandle_group.style.visibility	=	"hidden"
		
			gevondengroup.getUserIsMember(loggedin_id,function(value_if_member)
			{
				if(value_if_member == true)
				{value_if_member_group = true
				debug("value_if_member_group = true")
				}
				else
				{value_if_member_group = false
				debug("value_if_member_group = false")
				}
		fill_buttons_groupprofile(gevondengroup, groupid, value_if_member_group)
			}
			);
		
	}
	);
}
function fill_tabs_groupprofile_div(tabs_groupprofile_div,gevondengroup)
{
	var	show_profile_a	=	createElement(tabs_groupprofile_div,null,null,'a')
		show_profile_a.href	=	"javascript:Screen_ShowGroupDetails("+gevondengroup.id+")"
		show_profile_a.innerHTML	=	getTrans.Translate("profile")
		show_profile_a.title	=	getTrans.Translate("title_show_profile_group")
	var	streepje_span	=	createElement(tabs_groupprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_pictures_a	=	createElement(tabs_groupprofile_div,null,null,'a')
		show_pictures_a.href	=	"javascript:show_pictures_groupprofile("+gevondengroup.id+")"
		show_pictures_a.innerHTML	=	getTrans.Translate("pictures")
		show_pictures_a.title	=	getTrans.Translate("title_show_pictures_group")
	var	streepje_span	=	createElement(tabs_groupprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_messages_a	=	createElement(tabs_groupprofile_div,null,null,'a')
		show_messages_a.href	=	"javascript:show_messages_groupprofile("+gevondengroup.id+")"
		show_messages_a.innerHTML	=	getTrans.Translate("messages")
		show_messages_a.title	=	getTrans.Translate("title_show_messages_group")
	var	streepje_span	=	createElement(tabs_groupprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_members_a	=	createElement(tabs_groupprofile_div,null,null,'a')
		show_members_a.href	=	"javascript:show_members_groupprofile("+gevondengroup.id+")"
		show_members_a.innerHTML	=	getTrans.Translate("members")
		show_members_a.title	=	getTrans.Translate("title_show_members_group")
}
function fill_buttons_groupprofile(gevondengroup, groupid, value_if_member_group)
{
	var	buttons_group_div	= document.getElementById("buttons_group_div") 
		buttons_group_div.style.visibility = "inherit"
			
			var	groupinfo_showonlythis_div	=	createElement(buttons_group_div,"float_left","groupinfo_showonlythis",'div')
				
				adjust_size_to_image(groupinfo_showonlythis_div, "images/1_knoppen/icon_show_group_only.png")
				add_size_to_element(buttons_group_div, "images/1_knoppen/icon_show_group_only.png")
		
				
				create_clickable_icon("groupinfo_showonlythis", "showonlythis_group", "icon_show_group_only", "javascript:Screen_Clicked_ShowGroupOnly("+groupid+", true)",  "title_show_only_this_group_on_map", null,  "left", 0, option_b_o, option_f_o, true)
		//		preload_img("icon_restore_view_group")
		/*		
				var	showonlythis_a	=	createElement(groupinfo_showonlythis_div,null,"groupinfo_showonlythis_a",'a')
					showonlythis_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="41"	height="31"		alt="">'
					showonlythis_a.title	=	getTrans.Translate("show_only_this_user_on_map")
					showonlythis_a.href	=	"javascript:Screen_Clicked_ShowGroupOnly("+groupid+", true)"
		*/	
			if(BrowserDetect.browser == "Explorer")
			{
				if (BrowserDetect.version == "6")
				{
					create_clickable_icon("buttons_group_div", "rss_feed_group", "icon_rss", "javascript:show_treelz_alert(\'not_in_IE\')",  "title_rss", null,  "left", 6, option_b_o, option_f_o)
					
			//		buttons_group_div.innerHTML += '<a class="rss_a" href="javascript:show_treelz_alert(\'not_in_IE\')"><img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="31"	height="31"		alt=""></a>'
				}
			}
			else
			{																			 
				create_clickable_icon("buttons_group_div", "rss_feed_group", "icon_rss", 'show_treelz_alert_URL_RSS(\'rss_link\',\'past_link_rss\', "feed.php?type=groups.messages&groupname='+gevondengroup.name+'")',  "title_rss", null,  "left", 6, option_b_o, option_f_o)
				
		//		buttons_group_div.innerHTML += '<a class="rss_a" target="_blank" href="feed.php?type=msgs&username='+gevondengroup.nickname+'"><img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="31"	height="31"		alt=""></a>'
			}
			
			if(treelzsystem.treelersocial)
			{					
					if(value_if_member_group)	
					{
						
						create_clickable_icon("buttons_group_div", "group_member", "icon_group_member", null,  "title_group_member", null,  "left", 6, option_b_o, option_b_o)
						gevondengroup.isUserModerator(treelzsystem.treelersocial.userid,function(moderator)
						{
						if(moderator == 1)  
						{
							create_clickable_icon("buttons_group_div", "settings_group", "icon_settings", "javascript:open_screen_edit_group("+gevondengroup.id+")",  "title_groupsettings", null,  "left", 6, option_b_o, option_f_o)
						}
			
						}
						);
					
					}
					else
					{
						create_clickable_icon("buttons_group_div", "addtogroup", "icon_join_group", "javascript:requestAccesToGroup("+gevondengroup.id+")",  "title_ask_permission_group", null,  "left", 6, option_b_o, option_f_o)
					}
			}
				
				create_clickable_icon("buttons_group_div", "intro_group_button", "icon_intro", "javascript:open_screen_intro_group("+gevondengroup.id+")",  "title_intro_group", null,  "left", 6, option_b_o, option_f_o)
		
}
function show_groupinfo_groupprofile(groupid,value_if_member_group)
{
	var	details_div_groupprofile	=		document.getElementById("details_div_groupprofile")
	details_div_groupprofile.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	treelzsystem.users.getUser(groupid,null,function(gevondengroup)
	{
		details_div_groupprofile.innerHTML	=	''
		var	userinfo_pc_up_div	=	createElement(details_div_groupprofile,"userinfo_pc_up","userinfo_pc_up",'div')
	//	var	br_element	=	createElement(userinfo_pc_up_div,null,null,'br')
		var	number_span2	=	createElement(userinfo_pc_up_div,null,null,'span')
		var	br_element	=	createElement(userinfo_pc_up_div,null,null,'br')
		var	br_element	=	createElement(userinfo_pc_up_div,null,null,'br')
		var	number_span	=	createElement(userinfo_pc_up_div,null,null,'span')
		var eoptions = []
		eoptions["type"] = '1';

	mapsystem.groups.getGroup(groupid,function(gevondengroup)
	{
				number_span.innerHTML	=	gevondengroup.description
				
				CSBfleXcroll(details_div_groupprofile);
		
	}
	);

		
		mapsystem.groups.getGroup(groupid,function(fgrp)
		{
			fgrp.getAmountMessages(function(aantalpublic)
			{
				number_span2.innerHTML	=	""+aantalpublic+ "  "+getTrans.Translate("public_messages")
				
				CSBfleXcroll(details_div_groupprofile);
			}
			,eoptions)
		}
		);
	}
	);
}
function addtogroups(groupid)
{
	var treelz_alert_div = document.getElementById('treelz_alert_div')
		treelz_alert_div.style.visibility = "inherit"
		treelz_alert_div.innerHTML	=	"TODO Steven: Add to group"
	show_alert()
}
function invite_user(groupid)
{
	var	msg	=	prompt(getTrans.Translate("Personal_message")+':');
	treelzsystem.treelersocial.addFriend(groupid,msg,function(treelersocial)
	{
		show_treelz_alert("friend_invite_send")
		show_groupinfo_groupprofile(groupid)
	}
	);
}
function clean_invite_user()
{
}
function show_profile_groupprofile()
{
	var	scroll_arrows	=		document.getElementById("scroll_arrows")
		scroll_arrows.innerHTML	=	''
	var	details_div_groupprofile	=		document.getElementById("details_div_groupprofile")
		details_div_groupprofile.innerHTML	=	''
}
function show_groups_groupprofile(groupid)
{
	urls.AddVariable("G", "m");
	urls.AddVariable("Gid", groupid);
	urls.UpdateURL();
	//clear_scroll_targetdivs("_groupprofile")
	treelzsystem.users.getUser(groupid,null,function(gevondengroup)
	{
		bs	=	new	UniversalScroller	(gevondengroup,	"details_div_groupprofile",	"scroll_numbers_groupprofile",	user_steps_usergroups,	"0",	5,user_steps_usergroups_getamount, "scroll_left_groupprofile", "scroll_right_groupprofile", "bs");
		bs.Init("bs");	
	}
	);					
}

/*Show messages in groupprofile*/


function show_messages_groupprofile(groupid)
{
	urls.AddVariable("G", "m");
	urls.AddVariable("Gid", groupid);
	urls.UpdateURL();
	//clear_scroll_targetdivs("_groupprofile")
	mapsystem.groups.getGroup(groupid,function(gevondengroup)
	{
		bs	=	new	UniversalScroller	(gevondengroup,	"details_div_groupprofile",	"scroll_numbers_groupprofile",	groupprofile_messagescroller_usermessages,	"0",	6,groupprofile_messagescroller_usermessages_getamount, "scroll_left_groupprofile", "scroll_right_groupprofile", "bs");
		bs.Init("bs");
	}
	);
}

/*
function groupprofile_messagescroller_message_usergroups_getamount(object,callbackfunc)
{
	var extraoptions = [];
	extraoptions['type']='0';
	extraoptions['start']='0';
	extraoptions['amount']=1;		
	mapsystem.groups.getGroupUsersMemberOf(object.id,	function(grps,amount)
	{
		//debug('aantal is'+amount)
		callbackfunc(amount)
	}
	,extraoptions)
}
function groupprofile_messagescroller_message_usergroups(object,	start, amount,	callbackfunc)
{
	var extraoptions = [];
	extraoptions['type']='0';
	extraoptions['start']=start;
	extraoptions['amount']=amount;		
	mapsystem.groups.getGroupUsersMemberOf(object.id,	function(grps,amount)
	{
		var	thesubsetgrps	=	[]
		for	(i	in	grps)
		{
			if (grps[i].id != null) 
			{
				var	grp	=	grps[i]
				thesubsetgrps[i] = createElement(null,null,null,'a');
				thesubsetgrps[i].setAttribute('href','javascript:open_screen_intro_group('+grp.id+')')
				thesubsetgrps[i].innerHTML = grp.name+'<br />'
			}			
		}
		callbackfunc(thesubsetgrps);
	}
	,extraoptions)
}
*/

function groupprofile_messagescroller_usermessages_getamount(object,callbackfunc)
{
	// verwacht twee parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// callback func. een functie die een aantal terug geeft
	/*
	object.getLatestMessages(groupprofile_notes,1,function(messages)
	{
		var	teller	=	0;
		for(i	in	messages)
		{
			teller	++;
		}
		callbackfunc(teller);
	}
	);*/
	  groupprofile_messagescroller_getamount_of_type(object,1,callbackfunc)
}
function groupprofile_messagescroller_usermessages(object,	start, amount,	callbackfunc)
{
	// verwacht vier parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// start: vanaf welk nummer (eerste is 0)
	// amount: en welk aantal terug te geven
	// callback func. een functie die een 'amount' html elements terug geeft te starten bij 'start' om in the scroll div te gooien
	/*
	object.getMessagesBetween(start,amount,1,function(messages,maxaantal)
	{							
		var	thesubsetmessages	=	[]
		for	(i	in	messages)
		{
			if (messages[i].id != null) 
			{
				var	themessage	=	messages[i]
				thesubsetmessages[i] = createElement(null,null,null,'a');
				thesubsetmessages[i].setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+themessage.id+')')
				thesubsetmessages[i].innerHTML = themessage.title+'<br />'
			}			
		}
		callbackfunc(thesubsetmessages);
	}
	);
	*/
	
	var extraoptions = {}
	extraoptions.type = 1;
	//debug('get msg objects between ' + start  +  '  ' + amount)
	
	object.getMessagesBetween(start,amount,function(messages,maxaantal)
	{
		var	resultingdivs	=	[]
		
		for	(i	in	messages)
		{
			var	msg	=	messages[i]
			if (messages[i].id != null) 
			{ 
			resultingdivs[i] = Screen_getMessageTextElement(messages[i])
				/*	var	themessage	=	messages[i]
				resultingdivs[i] = createElement(null,null,null,'a');
				resultingdivs[i].setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+themessage.id+')')
				resultingdivs[i].innerHTML = themessage.title+'<br />'
				*/
			}
		}
		callbackfunc(resultingdivs,maxaantal);
	}
	,extraoptions);	
}

/*Show pictures in groupprofile*/

function show_pictures_groupprofile(groupid)
{
	urls.AddVariable("G", "p");
	urls.AddVariable("Gid", groupid);
	urls.UpdateURL();
	//clear_scroll_targetdivs("_groupprofile")
	mapsystem.groups.getGroup(groupid,function(gevondengroup)
	{
	// (object, target, scroller, dothis, start, amount,maxamountfunction,scrollleft, scrollright, parent)
		bs	=	new	UniversalScroller	(gevondengroup,	"details_div_groupprofile",	"scroll_numbers_groupprofile",	groupprofile_messagescroller_steps_pictures,	"0",	12,groupprofile_messagescroller_pictures_getamount, "scroll_left_groupprofile", "scroll_right_groupprofile", "bs");
	}
	);
}

function groupprofile_messagescroller_getamount_of_type(object,type,		callbackfunc)
{
 var extraoptions = {}
	extraoptions.type = type;
	object.getAmountMessages(function(aantal)
	{

		callbackfunc(aantal);
	}
	,extraoptions);
}

function groupprofile_messagescroller_pictures_getamount(object,		callbackfunc)
{
  groupprofile_messagescroller_getamount_of_type(object,4,callbackfunc)
}


function groupprofile_messagescroller_steps_pictures(object,	start,	amount,	callbackfunc)
{
var extraoptions = {}
	extraoptions.type = 4;
	//debug('get msg objects between ' + start  +  '  ' + amount)
	
	object.getMessagesBetween(start,amount,function(messages,maxaantal)
	{
		var	resultingdivs	=	[]
		
		for	(i	in	messages)
		{
			var	msg	=	messages[i]
			if (messages[i].id != null) 
			{ 
			resultingdivs[i] = Screen_getMessagePictureElement(messages[i])
			/*
				resultingdivs[i]	=	createElement(null,"smallthumb","smallthumb",'a')
				resultingdivs[i].setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+messages[i].id+')')
				var	theimg	=	createElement(resultingdivs[i],"thumb_img","thumb_img",'img')
					theimg.setAttribute('width','56')
					theimg.setAttribute('height','42')
					theimg.setAttribute('src','imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+messages[i].picture_id)
					*/
			}
		}
		callbackfunc(resultingdivs,maxaantal);
	}
	,extraoptions);
}
 
 
 
 
 
 
 
 
 
 
 
 
 
function show_members_groupprofile(groupid)
{
	urls.AddVariable("G", "f");
	urls.AddVariable("Gid", groupid);
	urls.UpdateURL();
	//clear_scroll_targetdivs("_groupprofile")
	
//	var	details_div_groupprofile	=		document.getElementById("details_div_groupprofile")
//		details_div_groupprofile.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	mapsystem.groups.getGroup(groupid,function(thegroup)
	{
		bs	=	new	UniversalScroller	(thegroup,	"details_div_groupprofile",	"scroll_numbers_groupprofile",	groupprofile_messagescroller_groupmembers,	"0",	12,groupprofile_messagescroller_groupmembers_getamount, "scroll_left_groupprofile", "scroll_right_groupprofile", "bs");
		bs.Init("bs");
	}
	);
}

function groupprofile_messagescroller_groupmembers_getamount(object,callbackfunc)
{
	// verwacht twee parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// callback func. een functie die een aantal terug geeft
	/*
	object.getFriends(function(friends)
	{
		var	teller	=	0;
		for(i	in	friends)
		{
			teller	++;
		}
		callbackfunc(teller);
	}
	);*/
	var extraoptions = {}
	extraoptions.start = 0;
	extraoptions.amount = 1;
	object.getMembersIds(function(ids,aantal)
	{
	   callbackfunc(aantal)
	}
	,extraoptions);
}

function groupprofile_messagescroller_groupmembers(object,	start, amount,	callbackfunc)
{
	// verwacht vier parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// start: vanaf welk nummer (eerste is 0)
	// amount: en welk aantal terug te geven
	// callback func. een functie die een 'amount' html elements terug geeft te starten bij 'start' om in the scroll div te gooien
	var extraoptions = {}
	extraoptions.start = ''+ start;
	extraoptions.amount =''+amount;
	object.getMembersIds(function(ids,aantal)
	{
	  treelzsystem.users.getMultiple(ids,function(users)
		{			
      		/*var	teller	=	0;*/
      		var thesubsetfriends	=	[]
      		
      		//for(var	i =0;i<friends.length;i++)
					for(i in users)
      		{
   					thesubsetfriends[i] = Screen_getUserProfileDiv(users[i])
      			//if(friends[i])
      			//{
      				//var	thefriend	=	users[i];//friends[i]
      				//if(teller	>=	start	&&	teller	<	start+amount)
      				//{
							/*
      					thesubsetfriends[i]	=	createElement(null,'smallthumb',null,'a');
      					thesubsetfriends[i].setAttribute('href','javascript:Screen_ShowGroupDetails('+thefriend.id+')')
      					var thesubsetfriends_img = createElement(thesubsetfriends[i],'thumb_img',null,'img');
      						thesubsetfriends_img.setAttribute('width', '56')
      						thesubsetfriends_img.setAttribute('height', '42')
      						thesubsetfriends_img.setAttribute('title', thefriend.firstname + " " + thefriend.lastname)
      						thesubsetfriends_img.setAttribute('src', 'imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+thefriend.picture_id+'')
									*/
									
      				//}
      				//teller	++;
      			//}
      		}
      		callbackfunc(thesubsetfriends);
		}
		);
	}
	,extraoptions);
}





function Screen_groupprofileAddPicture(thediv,message)
{
	var	thumbdiv	=createElement(thediv,'smallthumb',null,'div')
	var	thea	=	createElement(thumbdiv,null,null,'a')
		thea.href="javascript:Screen_ShowMessageDetails_from_container("+message.id+")"
	var	theimg	=	createElement(thea,"thumb_img",null,'img')
		theimg.src=createimageshowUrl(message.picture_id,true,42,56)
		theimg.width="56"
		theimg.height="42"
		theimg.border="0"
}


function direct_invite_user(groupid)
{
	var answer = confirm("Toevoegen als vriend?")
	if (answer)
	{
		// 
		invite_user(groupid)
	}
	else
	{
		// no
	}
}  //user

function	Screen_Clicked_ShowGroupOnly(groupid, fromgroupprofile)
		{

		//		urls.AddVariable("MM", "s");
		//		urls.AddVariable("MMid", groupid);
		//		urls.UpdateURL();
				//	do	so
				Message_ShowOnlyOfOneGroup(groupid)
				
				only_group_var = true

				//	change	text

				if(fromgroupprofile == true)
				{
						var	groupinfo_showonlythis_div	=	document.getElementById("groupinfo_showonlythis")
						groupinfo_showonlythis_div.innerHTML	=	''
				
				create_clickable_icon("groupinfo_showonlythis", "unshowonlythis_group", "icon_restore_view_group", "javascript:Screen_Clicked_UnShowGroupOnly("+groupid+")",  "tilte_restore_to_normal", null,  "left", 0, option_b_o, option_f_o, true)
/*
						var	showonlythis_a	=	createElement(groupinfo_showonlythis_div,null,"restore_to_normal_a",'a')
						showonlythis_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="41"	height="31"		alt="">'
						showonlythis_a.title	=	getTrans.Translate("restore_to_normal")
						showonlythis_a.href	=	"javascript:Screen_Clicked_UnShowGroupOnly("+groupid+")"
*/				}
		}
		function	Screen_Clicked_UnShowGroupOnly(groupid)
		{
				var	groupinfo_showonlythis_div	=	document.getElementById("groupinfo_showonlythis")
					groupinfo_showonlythis_div.innerHTML	=	''

				create_clickable_icon("groupinfo_showonlythis", "showonlythis_group", "icon_show_group_only", "javascript:Screen_Clicked_ShowGroupOnly("+groupid+", true)",  "title_show_only_this_group_on_map", null,  "left", 0, option_b_o, option_f_o, true)
				
				only_group_var = false
		/*
var	showonlythis_a	=	createElement(groupinfo_showonlythis_div,null,"groupinfo_showonlythis_a",'a')
					showonlythis_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="41"	height="31"		alt="">'
					showonlythis_a.title	=	getTrans.Translate("show_only_this_user_on_map")
					showonlythis_a.href	=	"javascript:Screen_Clicked_ShowGroupOnly("+groupid+", true)"
*/
				Message_Restore_to_Previous_view();
		}


		var	old_who_filters	=	null
		function	Message_ShowOnlyOfOneUser(userid)
		{
						do_the_off_all(function(x)
						{
						 turn_on_user_groups(userid)
						}
						,true)

		}
		
///////////////    STANDARD FUNCTIONS FOR PROFILE SHIT:
		
		function Screen_getUserProfileDiv(user,extraoptions)
    {
        		var pic_w = 56;
        		var pic_h = 42;
        		if(extraoptions)
        		{
        		  if(extraoptions.h) pic_h = extraoptions.h;
        		  if(extraoptions.h) pic_w = extraoptions.w
        		}
                  					var theprofile=	createElement(null,'smallthumb',null,'a');
                  						theprofile.setAttribute('href','javascript:Screen_InitSideBarUserProfile('+user.id+')')
                  					var thesubsetfriends_img = createElement(theprofile,'thumb_img',null,'img');
                  						thesubsetfriends_img.setAttribute('width', pic_w)
                  						thesubsetfriends_img.setAttribute('height', pic_h)
                  						thesubsetfriends_img.setAttribute('title', user.firstname + " " + user.lastname)
                  						thesubsetfriends_img.setAttribute('src', 'imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+user.picture_id+'')
            									return theprofile
    
    }
		
		function Screen_getMessageTextElement(message,extraoptions)
    {
						var theelement  = createElement(null,null,null,'a');
				theelement.setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+message.id+')')
				theelement.innerHTML = message.title+'<br />'
					return theelement;
		}

		function Screen_getMessagePictureElement(message,extraoptions)
    {
		var pic_w = 56;
		var pic_h = 42;
		if(extraoptions)
		{
		  if(extraoptions.h) pic_h = extraoptions.h;
		  if(extraoptions.h) pic_w = extraoptions.w
		}
						var theelement	=	createElement(null,"smallthumb","smallthumb",'a')
				theelement.setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+message.id+')')
				var	theimg	=	createElement(theelement,"thumb_img","thumb_img",'img')
					theimg.setAttribute('width',pic_w)
					theimg.setAttribute('height',pic_h)
					theimg.setAttribute('src','imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+message.picture_id)
					return theelement;
		}
		
function StoreGroupPrefs (group_id, prefs) {
	//alert ("Voer melles code uit - groupid: " + group_id + " prefs: " + prefs["lat"] + "etc.");
	mapsystem.groups.getGroup(group_id, function (gevondengroup) {
		//alert ("Tot aan mapsysten, gevondengroup: " + gevondengroup.id);
		gevondengroup.StorePrefs(prefs, function (feedback) {
			//alert ("Tot aan gevondengroep");
			if (feedback.code == 500) {
				alert(feedback.update);
			}
			//Add your userfeedback here :)
		});
	});
}

function ApplyGroupPrefs (group_id, pref_function) {
		mapsystem.groups.getGroup(group_id, function (gevondengroup) {
		gevondengroup.GetPrefs(function (prefs) {
			/*for (key in prefs) {
				//alert ("key: " + key + " value: " + prefs[key]);
				//Add here whatever it is you want to do with the prefs :^D
			}*/
			pref_function (prefs);
		});
	});
}/*t_groups.js*/

//	JavaScript	Document 

	var	number_make_group	=	1

	function	show_create_group()
	{
			clickedon_set()
			load_content_create_group()
			show_container("_set")
			fill_titel("_set",	"title_create_group")
			center_container("_set")
	}
	function	show_edit_group(group_id)
	{
			clickedon_set()
			load_content_create_group(group_id)
			show_container("_set")
			fill_titel_edit_group(group_id)
			center_container("_set")
			load_existing_content(group_id)
	}
	function	show_overview_group(group_id)
	{
			load_content_overview_group(group_id)
			clickedon_overview()
			show_container("_view")
			fill_titel("_view",	"title_overview_group")
	}
	function	show_intro_group(group_id)
	{
			load_content_intro_group(group_id)
			clickedon_intro()
			show_container("_intro")
			fill_buttons_intro_group(group_id)
			fill_titel_intro_groups(group_id)
			center_container("_intro",	25)
	}
	function	load_content_create_group(edit)
	{

			var	clientarea_inner_set	=	document.getElementById("clientarea_inner_set")
			clientarea_inner_set.innerHTML	=	''

			var	thediv_outer	=	document.getElementById("frame_set")
			thediv_outer.innerHTML	=	''

			var	step_numbers_div	=	createElement(clientarea_inner_set,'step_group_numbers_div','step_group_numbers_div','div')
			var	targetdiv_set	=	createElement(clientarea_inner_set,'targetdiv_set','targetdiv_set','div')
			fill_group_step_numbers(edit)
			fill_group_buttons(thediv_outer, edit)
			fill_group_steps(edit)
			show_group_step(1, edit)
	}

	function	load_content_overview_group(group_id)
	{

			var	clientarea_inner_set	=	document.getElementById("clientarea_inner_view")
			clientarea_inner_set.innerHTML	=	''

			var	thediv_outer	=	document.getElementById("frame_view")
			thediv_outer.innerHTML	=	''

			load_info_group(group_id,null,	clientarea_inner_set)

	}
	function	load_content_intro_group(group_id)
	{
			var	thediv_outer	=	document.getElementById("frame_intro")
			thediv_outer.innerHTML = ''
			
			var	clientarea_inner_intro	=	document.getElementById("clientarea_inner_intro")
			clientarea_inner_intro.innerHTML	=	''

			var	content_description_div_title	=	createElement(clientarea_inner_intro,'content_description_div_title','content_description_div_title','div')
				content_description_div_title.innerHTML	=	"<strong>"+getTrans.Translate("about_this_group")+"	</strong>"
			var	content_description_div	=	createElement(clientarea_inner_intro,'content_description_div','content_description_div','div')
				content_description_div.innerHTML = ''

				var	content_description_div2	=	createElement(content_description_div,'content_description_div2','content_description_div2','div')
			
				var	content_description_div3	=	createElement(clientarea_inner_intro,'content_description_div3','content_description_div3','div')

/*
			var	content_description_div	=	createElement(clientarea_inner_intro,'content_description_div','content_description_div','div')
			content_description_div.innerHTML	=	"<strong>"+getTrans.Translate("about_this_group")+"	[[<a href='javascript:open_screen_edit_group("+group_id+")'>EDIT</a> ]]]</strong>"
*/			

//alert('hier')
load_info_group(group_id, content_description_div, content_description_div2, content_description_div3)

//CSBfleXcroll(content_description_div)

			var	content_pictures_div	=	createElement(clientarea_inner_intro,'content_pictures_div','content_pictures_div','div')
			content_pictures_div.innerHTML	=	"<strong><a href='javascript:Screen_groupprofile_from_pic(null, "+group_id+")'>"+getTrans.Translate("newest_pictures")+"</a>	</strong>"
			load_pic_intro_group(group_id,9,	"0",	content_pictures_div)

			var	content_message_div	=	createElement(clientarea_inner_intro,'content_message_div','content_message_div','div')
			content_message_div.innerHTML	=	"<strong><a href='javascript:Screen_groupprofile_from_msg(null, "+group_id+")'>"+getTrans.Translate("newest_messages")+"</a>	</strong><br />"
			load_msg_intro_group(group_id,9,	"0",	content_message_div)
	//		load_msg_intro_group(group_id,9,	"0",	content_message_div)

			var	content_members_div	=	createElement(clientarea_inner_intro,'content_members_div','content_members_div','div')
			load_members_group(group_id,	6,"0",content_members_div)

			//load_members_group(group_id,	3,"0",content_members_div)


	}







function fill_buttons_intro_group(group_id)
{
/*		var	buttons_intro_div	=	document.getElementById("buttons_intro_div")
			buttons_intro_div.style.visibility	=	"visible"
			buttons_intro_div.innerHTML	=	'<a	href="javascript:requestAccesToGroup('+group_id+')">Become	a	member</a><br>';
*/
	if(treelzsystem.treelersocial)
	{					
		mapsystem.groups.getGroup(group_id,function(gevondengroup)
		{		
			gevondengroup.getUserIsMember(loggedin_id,function(value_if_member)
			{
				if(value_if_member == true)
				{
					create_clickable_icon("buttons_center_intro_div", "intro_group_member", "icon_group_member", null,  "title_group_member", null,  "left", 6, option_b_o, option_b_o)
					gevondengroup.isUserModerator(treelzsystem.treelersocial.userid,function(moderator)
					{
						if(moderator == 1)  
						{
							create_clickable_icon("buttons_center_intro_div", "intro_settings_group", "icon_settings", "javascript:open_screen_edit_group("+gevondengroup.id+")",  "title_groupsettings", null,  "left", 6, option_b_o, option_f_o)
						}
			
					}
					);
				
				}
				else
				{
						create_clickable_icon("buttons_center_intro_div", "join_group", "icon_join_group", "javascript:requestAccesToGroup("+group_id+")",  "title_join_group", null,  "left", 6, option_b_o, option_f_o)
					
				}
			}
			);
		}
		);
	}
	create_clickable_icon("buttons_center_intro_div", "profile_group", "icon_profile_group", "javascript:Screen_ShowGroupDetails("+group_id+")",  "title_profile_group", null,  "left", 6, option_b_o, option_f_o)
}

	function	requestAccesToGroup(group_id)
	{
			mapsystem.groups.getGroup(group_id,function(grp)
			{
					var	extraopts	=	[];
					extraopts['message']	=	prompt("If you want you can add a personal message to the request here:",	"");
					grp.requestAccess(function(response)
					{
							debug('u	lidmaatschap	aanvraag	is	onderweg'+response)
					}
					,extraopts);
			}
			);
	}

	function	load_info_group(group_id,	targetdiv,	targetdiv2, targetdiv3)
	{

			mapsystem.groups.getGroup(group_id,function(group)
			{

					group.getGeneralLevel(function(thelevel)
					{
						if(thelevel	==	"open")
						{
							targetdiv3.innerHTML	=	getTrans.Translate("explanation_open")
						}
						if(thelevel	==	"private")
						{
							targetdiv3.innerHTML	=	getTrans.Translate("explanation_private")
						}
						if(thelevel	==	"closed")
						{
							targetdiv3.innerHTML	=	getTrans.Translate("explanation_closed")
						}
						if(thelevel	==	"custom")
						{
							targetdiv3.innerHTML	=	getTrans.Translate("explanation_custom")
						}
					targetdiv2.innerHTML =	group.description
		//			targetdiv3.innerHTML	+=	'<br><br><strong>Similar groups by messages</strong><div	id="div_similar_by_msgs"></div>'
					targetdiv3.innerHTML	+=	'<br><br><strong>Groups with members from this group:</strong><div	id="div_similar_by_members"></div>'

					CSBfleXcroll(targetdiv)

					var	thememdiv	=	document.getElementById('div_similar_by_members')
	//				var	themsgsdiv	=	document.getElementById('div_similar_by_msgs')
					go_fill_similar_by_members(group_id,thememdiv)
	//				go_fill_similar_by_msgs(group_id,themsgsdiv)
					
					}
					);

			}
			);
	}

	function	go_fill_similar_by_msgs(group_id,thediv)
	{
	var	extraopts	=	{}
			extraopts.type	=	'0';
			extraopts.start	=	'0';
			extraopts.amount	=	3;

			thediv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
			mapsystem.groups.getSimilarOfGroupByMessages(group_id,function(grps)
			{
					thediv.innerHTML	=	''
					for(i	in	grps)
					{
							var	grp	=	grps[i]
					//		thediv.innerHTML	+='<a	href="javascript:open_screen_intro_group('+grp.id+')">'	+		grp.id	+	'	'	+	grp.name		+	'	'	+	grp.rel_sim	+	'</a><br>'
							thediv.innerHTML	+='<a	href="javascript:open_screen_intro_group('+grp.id+')">' + grp.name + '</a><br>'
					}
			}
			,extraopts);
	}

	function	go_fill_similar_by_members(group_id,thediv)
	{
		var	extraopts	=	{}
			extraopts.type	=	'0';
			extraopts.start	=	'0';
			extraopts.amount	=	3;
			thediv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
			mapsystem.groups.getSimilarOfGroupByMembers(group_id,function(grps)
			{
					thediv.innerHTML	=	''
					for(i	in	grps)
					{
							var	grp	=	grps[i]
				//			thediv.innerHTML	+='<a	href="javascript:open_screen_intro_group('+grp.id+')">'	+		grp.id	+	'	'	+	grp.name	+	'	'	+	grp.rel_sim	+'</a><br>'
							thediv.innerHTML	+='<a	href="javascript:open_screen_intro_group('+grp.id+')">'	+	grp.name	+	'</a><br>'
					}
			}
			,extraopts);

	}

	function	load_pic_intro_group(group_id,aantal,	start,	targetdiv)
	{
			var	type	=	4
			//			targetdiv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
			mapsystem.groups.getGroup(group_id,function(group)
			{
					var	extraoptions	=	[];
					extraoptions['type']	=	type;
					group.getMessagesBetween(start,aantal,function(msgs)
					{
							//	targetdiv.innerHTML	=	''
							for(i	in	msgs)
							{
									var	msg	=	msgs[i]
									//debug(msg.id	+	'	'	+	msg.picture_id)
									targetdiv.innerHTML	+=	"<div	class=\"pictures_overview_div\">			<a	class=\"pictures_overview_a\"	href=\"javascript:Screen_groupprofile_from_pic("+msg.id+", "+group_id+")\"><img		height='51'	src='imageshow.php?thumb=true%20&h=51%20&imageid="+msg.picture_id+"'></a></div>";

							}
					}
					,extraoptions);
			});
	}
	function	load_msg_intro_group(group_id,aantal,	start,	targetdiv)
	{
			//debug('load_msg_intro_group')
			var	type	=	1
			//	targetdiv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
			mapsystem.groups.getGroup(group_id,function(group)
			{
		//			alert("group")
					
					var	extraoptions	=	[];
					extraoptions['type']	=	type;
					group.getMessagesBetween(start,aantal,function(msgs)
					{
							//		targetdiv.innerHTML	=	''
							for(i	in	msgs)
							{
									var	msg	=	msgs[i]
			//						alert("message"+msg.id)
									var	tempdiv_user	=	createElement(targetdiv,null,null,'span')
									var	tempdiv	=	createElement(targetdiv,"tempdiv","tempdiv"+msg.id,'span')

									__fill_username_pluspicture(tempdiv_user,msg.userid);
									
					//				treelzsystem.users.getUser(msg.userid,true,function(usr)
					//				{
					//					alert("message title"+msg.id)
					//				var	tempdiv_hierpas	=	document.getElementById("tempdiv"+msg.id)
										
										
					//					tempdiv_hierpas.innerHTML	=	"<a		href=\"javascript:Screen_InitSideBarUserProfile("+msg.userid+")\"><img	class='	height='16'	src='imageshow.php?thumb=true&h=16&imageid="	+	usr.picture_id	+"'>"	+	usr.firstname	+"<a>";
										tempdiv.innerHTML	+=	": <a href=\"javascript:Screen_groupprofile_from_msg("+msg.id+", "+group_id+")\">"+	msg.title +"</a><br>"
					//				}
					//				);
							//		var	tempdiv_text = createElement(targetdiv,"tempdiv_text",null,'span')
							}
					}
					,extraoptions);
			});
	}

	function	__fill_username_pluspicture(thediv,userid)
	{
		
			treelzsystem.users.getUser(userid,true,function(usr)
			{
	//	alert("message title"+msg.id)
					thediv.innerHTML	=	"<a		href=\"javascript:Screen_InitSideBarUserProfile("+userid+")\"><img	class='	height='16'	src='imageshow.php?thumb=true&h=16&imageid="	+	usr.picture_id	+"'>"	+	usr.firstname	+"<a>";
			}
			);
	}
	function	load_members_group(group_id,	aantal,	start,	targetdiv)
	{
	var	extraopts	=	{}
			extraopts.start=start
			extraopts.amount=aantal

			targetdiv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
			mapsystem.groups.getGroup(group_id,function(group)
			{
					//							debug('hier	is	het'+extraopts)
					group.getMembersIds(function(u_ids,status)
					{
							targetdiv.innerHTML	=		"<strong><a href='javascript:show_members_group_from_intro("+group_id+")'>"+getTrans.Translate("members")+"	("+group.number_of_members+")</a></strong><br>"
							
							for(i	in	u_ids)
							{
									treelzsystem.users.getUser(u_ids[i],null,function(usr)
									{
											//												input	+=		usr.id+"	"	+usr.firstname+"	"	+usr.lastname+"<br>"
											targetdiv.innerHTML	+=	"<div	class=\"userpic_overview\"><a	class=\"userpic_overview_a\"	href=\"javascript:Screen_InitSideBarUserProfile("+usr.id+")\"><img	height='50'	src='imageshow.php?thumb=true&h=50&imageid="+usr.picture_id	+	"'	title='"+	usr.nickname	+"'></a><br	/></div>";
									}
									)
							}
							//							targetdiv.innerHTML	+=	input
					}
					,extraopts);
			}
			);
	}
	function	load_existing_content(group_id)
	{
			mapsystem.groups.getGroup(group_id,function(group)
			{
					var	title_group_div	=	document.getElementById("title_group_div")
						title_group_div.innerHTML	=	""
						var	title_div_title	=	createElement(title_group_div,"group_title_div",null,'div')
							title_div_title.innerHTML	=	"Title:"
						var	title_div_form	=	createElement(title_group_div,"group_form_div",null,'div')
							title_div_form.innerHTML	=	"<input	id=\"input_title_group\"		class=\"input_general_text_100\"	value=\""+group.title+"\"	></input><br	/>"
					
					var	domain_group_div	=	document.getElementById("domain_group_div")
						domain_group_div.innerHTML	=	""
						var	domain_div_title	=	createElement(domain_group_div,"group_title_div",null,'div')
							domain_div_title.innerHTML	=	"Domain:"
						var	domain_div_title	=	createElement(domain_group_div,"group_form_div",null,'div')
							domain_div_title.innerHTML	=	group.name+".treelz.com"

					var	group_create_description	=	document.getElementById("group_create_description")
					group_create_description.value	=	group.description.replace(/<br \/>/g,"");
					var	group_create_tags	=	document.getElementById("group_create_tags")
				//	group_create_tags.value	=	'55'
					
					group.getGeneralLevel(function(thelevel)
					{
						if(thelevel	==	"open")
						{
						document.getElementById("kind_of_group_general_open").checked	=	true
						var	explanation_div	=	document.getElementById('explanation_div')
							explanation_div.innerHTML	=	getTrans.Translate("explanation_open")
						}
						if(thelevel	==	"private")
						{
						document.getElementById("kind_of_group_general_private").checked	=	true
						var	explanation_div	=	document.getElementById('explanation_div')
							explanation_div.innerHTML	=	getTrans.Translate("explanation_private")
						}
						if(thelevel	==	"closed")
						{
						document.getElementById("kind_of_group_general_closed").checked	=	true
						var	explanation_div	=	document.getElementById('explanation_div')
							explanation_div.innerHTML	=	getTrans.Translate("explanation_closed")
						}
						if(thelevel	==	"custom")
						{
						document.getElementById("kind_of_group_general_custom").checked	=	true
						var	explanation_div	=	document.getElementById('explanation_div')
							explanation_div.innerHTML	=	getTrans.Translate("explanation_custom")
						}
					}
					);
	
					groups_advanced_level_set_value('create_','add',group.level_add);
					groups_advanced_level_set_value('create_','show',group.level_show);
					groups_advanced_level_set_value('create_','invite',group.level_invite);
					groups_advanced_level_set_value('create_','editinfo',group.level_editinfo);
					groups_advanced_level_set_value('create_','editmsgs',group.level_editmsgs);
					
					group.GetPrefs(function (prefs) {
						for (key in prefs) {
							if (typeof (prefs[key]) != null) {
								//alert ("key: " + key + " value: " + prefs[key]);
								eval("var " + key + " = " + prefs[key]);
							}
							//alert ("key: " + key + " value: " + prefs[key]);
							//Add here whatever it is you want to do with the prefs :^D
						}
						var	input_value_long_group 		= document.getElementById('value_long_group')
						input_value_long_group.value 	= pref_long
						var	input_value_lat_group 		= document.getElementById('value_lat_group')
						input_value_lat_group.value 	= pref_lat
						var	input_value_zoom_group 		= document.getElementById('value_zoom_group')
						input_value_zoom_group.value 	= pref_zoom
					
						if(pref_map == 1)
						{
							setcolormaptypes_groups("_satellite")
							var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input").value = 1
						}
						if(pref_map == 2)
						{
							setcolormaptypes_groups("_map")
							var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input").value = 2
						}
						if(pref_map == 3)
						{
							setcolormaptypes_groups("_hybrid")
							var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input").value = 3
						}
						if(pref_map == 4)
						{
							setcolormaptypes_groups("_terrain")
							var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input").value = 4
						}
						
						
						
						
					
					
					
					
					
					
						
					}
					);
	
					
/*	Melle, kan jij hier de waarden van deze dingen uit de Database halen en in deze variabelen zetten?				
			var long = ''		
			var lat = ''		
			var zoom = ''		
			
			var	input_value_long_group	=	document.getElementById('value_long_group')
				input_value_long_group.value = long
			var	input_value_lat_group	=	document.getElementById('value_lat_group')
				input_value_lat_group.value = lat
			var	input_value_zoom_group	=	document.getElementById('value_zoom_group')
				input_value_zoom_group.value = zoom
*/					
					
			}
			);
			
			
		
			// alert('need	to	update	costum	levels');
	}
	function	fill_group_step_numbers(edit)
	{
			var	step_numbers_div	=	document.getElementById("step_group_numbers_div")
			step_numbers_div.innerHTML	=	"Steps:	"
			step_numbers_div.innerHTML	+=	"<a	class=\"nr_step_normal\"	id=\"nr_step_1\"	href=\"javascript:show_group_step(1, "+edit+")\">1-About</a>	|	"
			step_numbers_div.innerHTML	+=	"<a	class=\"nr_step_normal\"	id=\"nr_step_2\"	href=\"javascript:show_group_step(2, "+edit+")\">2-Type</a>	|	"
			step_numbers_div.innerHTML	+=	"<a	class=\"nr_step_normal\"	id=\"nr_step_3\"	href=\"javascript:show_group_step(3, "+edit+")\">3-Start Location</a> |"
			step_numbers_div.innerHTML	+=	"<a	class=\"nr_step_normal\"	id=\"nr_step_4\"	href=\"javascript:show_group_step(4, "+edit+")\">4-Finish & Invite</a>"
		//	step_numbers_div.innerHTML	+=	"<a	class=\"nr_step_normal\"	id=\"nr_step_4\"	href=\"javascript:show_group_step(4)\">4-Finished</a>,	"

	}


	function	update_name_group(input_name_group)
	{
			var	name_group	=	document.getElementById("name_group")
			name_group.innerHTML	=	document.getElementById('input_name_group').value	+	".treelz.com"
			group_test_new_name()
	}

	function	group_test_new_name()
	{
			var	name_elem	=	document.getElementById('input_name_group');
			var	value	=	name_elem.value


			var	options	=	[]
			options["name"]	=	value

			mapsystem.apisystem.command("GROUP.CREATE.CHECKNAME",options,	function	(jsonData)
			{
					var	check	=	jsonData.check
					var	name_elem	=	document.getElementById('input_name_group');
					var	error_elem	=	document.getElementById("name_group");
					var	value	=	name_elem.value
					if(value	==	jsonData.name)
					{
							if(check	==	0)
							{
									error_elem.innerHTML	=	value	+	".treelz.com	<span id=\"check_ok_span\"	class=\"green_font	bold\">Ok!</span>";
							}
							else	if(check	==	-1	||	check	==	-2)
							{
									error_elem.innerHTML	=	value	+	".treelz.com	<span	class=\"red_font	bold\">Already	exists</span>";
							}
							else	if(check	==	-3	)
							{
									error_elem.innerHTML	=	value	+	".treelz.com	<span	class=\"red_font	bold\">Invalid	characters</span>";
							}
							else	if(check	==	-4	)
							{
									error_elem.innerHTML	=	value	+	".treelz.com	<span	class=\"red_font	bold\">Too	short</span>";
							}
							else
							{
									error_elem.innerHTML	=	value	+	".treelz.com	<span	class=\"red_font	bold\">Invalid</span>";
							}

					}
			}
			);

	}

	function	updated_standard_levels()
	{
		var enorme_advanced_div = document.getElementById('enorme_advanced_div')

		if(document.getElementById('enorme_advanced_div_white'))
		{
					var	enorme_advanced_div_white	=	document.getElementById('enorme_advanced_div_white')
		}
		else
		{
					var	enorme_advanced_div_white	=	createElement(enorme_advanced_div,"enorme_advanced_div_white","enorme_advanced_div_white",'div')
		}

//			enorme_advanced_div.style.visibility = "hidden"
enorme_advanced_div_white.style.display= ""

equalize_with_parent("enorme_advanced_div", "enorme_advanced_div_white")
//change_opacity(enorme_advanced_div, 40)
change_opacity_id("table_type_group", 40)
set_background_div("enorme_advanced_div_white", 10, null, "white")

			var	addlevel	=	1;
			var	showlevel	=	1;
			var	invitelevel	=1;
			var	editinfolevle	=1;
			var	editmsgslevel	=	1;
			
			if(document.getElementById('kind_of_group_general_open').checked)
			{
					var	explanation_div	=	document.getElementById('explanation_div')
						explanation_div.innerHTML	=	getTrans.Translate("explanation_open")

				
					addlevel	=	4;
					showlevel	=	4;
					invitelevel	=	3;
					editinfolevle	=2;
					editmsgslevel	=	2;
			}
			else	if(document.getElementById('kind_of_group_general_private').checked)
			{
					var	explanation_div	=	document.getElementById('explanation_div')
						explanation_div.innerHTML	=	getTrans.Translate("explanation_private")
					addlevel	=	3;
					showlevel	=	3;
					invitelevel	=3;
					editinfolevle	=2;
					editmsgslevel	=	2;
			}
			else	if(document.getElementById('kind_of_group_general_closed').checked)
			{
					var	explanation_div	=	document.getElementById('explanation_div')
						explanation_div.innerHTML	=	getTrans.Translate("explanation_closed")
					addlevel	=	2;
					showlevel	=	3;
					invitelevel	=2;
					editinfolevle	=2;
					editmsgslevel	=	2;
			}
			else	if(document.getElementById('kind_of_group_general_custom').checked)
			{
					var	explanation_div	=	document.getElementById('explanation_div')
						explanation_div.innerHTML	=	getTrans.Translate("explanation_custom")
	//		change_opacity(enorme_advanced_div, 100)
			change_opacity_id("table_type_group", 100)
			enorme_advanced_div_white.style.display="none"
					addlevel	=	1;
					showlevel	=	1;
					invitelevel	=1;
					editinfolevle	=1;
					editmsgslevel	=	1;
			}


			groups_advanced_level_set_value('create_','add',addlevel);
			groups_advanced_level_set_value('create_','show',showlevel);
			groups_advanced_level_set_value('create_','invite',invitelevel);
			groups_advanced_level_set_value('create_','editinfo',editinfolevle);
			groups_advanced_level_set_value('create_','editmsgs',editmsgslevel);

	}

	function	groups_advanced_level_set_value(basename,type,nr)
	{
			document.getElementById(basename	+'level_'	+	type	+	'_'	+	nr).checked	=	true
	}

	function	groups_advanced_level_get_value(basename,type)
	{
			var	level_options	=	[];
			//			level_options[0]	=	"nobody";
			level_options[1]	=	"owner";
			level_options[2]	=	"moderator";
			level_options[3]	=	"member";
			level_options[4]	=	"everybody";

			for(i	in	level_options)
			{
					//	'create_level_add_1'
					if(document.getElementById(basename	+'level_'	+	type	+	'_'	+	i).checked)
					{
							return	i;
					}
			}
			return	-1;
	}
	function	groups_add_advanced_level_shit_to_div(enorme_advanced_div,basename)
	{
			var	level_options	=	[];
			//	level_options[0]	=	"nobody";
			level_options[1]	=	"owner";
			level_options[2]	=	"moderator";
			level_options[3]	=	"member";
			level_options[4]	=	"everybody";

	var	type_levels	=	{}
			type_levels['add']	=	'add messages';
			type_levels['show']	=	'see messages';
			type_levels['invite']	=	'invite users';
			type_levels['editmsgs']	=	'edit messages';
			type_levels['editinfo']	=	'edit info';

			var	str	=	'';

			//	table
			str	=	str	+	'<table id="table_type_group" width="350"	border="1"	cellpadding="2"	cellspacing="2"	summary="">';

			//	name	levels
			str	=	str	+	'<tr>';
			str	=	str	+	'<td width="100"></td>';
			for(optnr	in	level_options)
			{
					str	=	str	+	'<td>'+level_options[optnr]+'</td>';
			}
			str	=	str	+	'</tr>'				;

			//	per	type
			for(typename	in	type_levels)
			{
					//	print	level
					str	=	str	+	'<tr>';
					str	=	str	+	'<td >'+type_levels[typename]+'</td>';
					for(optnr	in	level_options)
					{
							var	name	=	basename	+'level_'	+	typename;
							var	id	=	basename	+'level_'	+	typename	+	'_'	+	optnr
							var	value	=	optnr
							str	=	str	+	'<td align="center"><input	name=\"'+name+'\"	id=\"'+id+'\"	value=\"'+value+'\"	type=\"radio\"></td>';
					}
					str	=	str	+	'</tr>';
			}
			//	eind	table
			str	=	str	+	'</table>';
			enorme_advanced_div.innerHTML	=	str;
	}
	function	fill_group_steps(edit)
	{
			var	targetdiv	=	document.getElementById("targetdiv_set")
			targetdiv.innerHTML	=	''

			var	step_1_group_div	=	createElement(targetdiv,'group_steps','step_1_group_div','div')
				step_1_group_div.innerHTML	=	"<b>Step	1:</b> What is your group about?<br /><br	/>"

						var	title_group_div	=	createElement(step_1_group_div,"outer_div_groups_create","title_group_div",'div')
							var	title_div_title	=	createElement(title_group_div,"group_title_div",null,'div')
							title_div_title.innerHTML	=	"Title:"
							var	title_div_form	=	createElement(title_group_div,"group_form_div",null,'div')
							title_div_form.innerHTML	=	"<input	id=\"input_title_group\"		class=\"input_general_text_100\"	></input><br	/>"
						
						var	domain_group_div	=	createElement(step_1_group_div,"outer_div_groups_create","domain_group_div",'div')
							var	name_div_title	=	createElement(domain_group_div,"group_title_div",null,'div')
							name_div_title.innerHTML	=	"Domain:"
							var	name_div_form	=	createElement(domain_group_div,"group_form_div",null,'div')
							name_div_form.innerHTML	=	"<input	id=\"input_name_group\"	onKeyUp=\"update_name_group()\"	class=\"input_general_text_100\"	onblur=\"group_test_new_name()\"></input><br	/>"
							
							var	name_group_title	=	createElement(domain_group_div,"group_title_div","name_group_title",'div')
							name_group_title.innerHTML	=	""
							var	errorname_div	=	createElement(domain_group_div,"group_errorname_div","group_errorname_div",'div')
							errorname_div.innerHTML	=	""
							var	name_group_form	=	createElement(domain_group_div,"group_form_div","name_group",'div')
							name_group_form.innerHTML	=	".treelz.com"
			
						var	description_div	=	createElement(step_1_group_div,"outer_div_groups_create","description_div",'div')
							var	description_div_title	=	createElement(description_div,"group_title_div",null,'div')
								description_div_title.innerHTML	=	"Description:"
							var	description_div_form	=	createElement(description_div,"group_form_div",null,'div')
							description_div_form.innerHTML	=	"<textarea	rows=\"6\"	id=\"group_create_description\"	class=\"input_general_text_100\"></textarea>"
			
						var	tags_div	=	createElement(step_1_group_div,"outer_div_groups_create","tags_div",'div')
							var	tags_div_title	=	createElement(tags_div,"group_title_div",null,'div')
								tags_div_title.innerHTML	=	"Tags:"
							var	tags_div_form	=	createElement(tags_div,"group_form_div",null,'div')
								tags_div_form.innerHTML	=	"<input	id=\"group_create_tags\"	class=\"input_general_text_100\"></input>"
						/*
						var	picture_div	=	createElement(step_1_group_div,"picture_div","picture_div",'div')
						var	picture_div_title	=	createElement(picture_div,"group_title_div",null,'div')
						picture_div_title.innerHTML	=	"Picture:"
						var	picture_div_form	=	createElement(picture_div,"group_form_div",null,'div')
						//	no	do	here	the	ifrmae
						groupiframecounter	=	groupiframecounter	+	1
						picture_div_form.innerHTML	=	'<IFRAME	src="upload_grouppic.php"	class="iframe_grouppics"	name="iframe_grouppics_'+groupiframecounter+'"	id="iframe_grouppics_'+groupiframecounter+'"		width="300"	height="50">	</IFRAME>'	//	"<input	class=\"input_general_text_100\"	type=\"file\"></input>"
						*/
			var	step_2_group_div	=	createElement(targetdiv,'group_steps','step_2_group_div','div')
				step_2_group_div.innerHTML	=	"<b>Step	2:</b>	What kind of group do you want?<br	/><br	/>"
				
						var	type_div	=	createElement(step_2_group_div,"outer_div_groups_create","type_div",'div')
								var	explanation_div	=	createElement(type_div,"explanation_div","explanation_div",'div')
									explanation_div.innerHTML	=	getTrans.Translate("explanation_open")
			
			
								var	open_div	=	createElement(type_div,"group_form_div",null,'div')
									open_div.innerHTML	=	"Open:	<input	onclick=\"updated_standard_levels()\"		id=\"kind_of_group_general_open\"	name=\"kind_of_group_general\"	type=\"radio\" checked=\"checked\"></input>"
								var	private_div	=	createElement(type_div,"group_form_div",null,'div')
									private_div.innerHTML	=	"Private:	<input	onclick=\"updated_standard_levels()\"	id=\"kind_of_group_general_private\"		name=\"kind_of_group_general\"		type=\"radio\"></input>"
								var	closed_div	=	createElement(type_div,"group_form_div",null,'div')
									closed_div.innerHTML	=	"Closed:	<input	onclick=\"updated_standard_levels()\"	id=\"kind_of_group_general_closed\"	name=\"kind_of_group_general\"	type=\"radio\"></input>"
								var	custom_div	=	createElement(type_div,"group_form_div",null,'div')
									custom_div.innerHTML	=	"Custom:	<input	onclick=\"updated_standard_levels()\"	id=\"kind_of_group_general_custom\"	name=\"kind_of_group_general\"	type=\"radio\"></input>"
			
								var	enorme_advanced_div	=	createElement(type_div,"group_form_div","enorme_advanced_div",'div')
									groups_add_advanced_level_shit_to_div(enorme_advanced_div,"create_")
			
				//		document.getElementById('kind_of_group_general_open').checked	=	true;
						
				//		alert("hier?")
						
						updated_standard_levels();

						
			var	step_3_group_div	=	createElement(targetdiv,'group_steps','step_3_group_div','div')
			if(edit)
			{
				step_3_group_div.innerHTML	=	"<b>Step	3:</b>	"+getTrans.Translate("current_starting_point")+": <br /><span class='grey'>("+getTrans.Translate("Drag_and_zoom_edit")+")</span>"
			}
			else
			{
				step_3_group_div.innerHTML	=	"<b>Step	3:</b>	"+getTrans.Translate("current_starting_point")+": <br /><span class='grey'>("+getTrans.Translate("Drag_and_zoom")+")</span>"
			}
							
				//			submit_div.innerHTML = "test"
				//			var	pref_center_zoom_title	=	createElement(step_3_group_div,"spec_pref_title",null,'div')
				//				pref_center_zoom_title.innerHTML = getTrans.Translate("my_starting_point")+":"
							var	pref_center_zoom_div_groups	=	createElement(step_3_group_div,"spec_pref_div","pref_center_zoom_div_groups",'div')
				//				pref_center_zoom_div.innerHTML	=	getTrans.Translate("current_starting_point")+": "
							var	current_starting_point_div_groups	=	createElement(pref_center_zoom_div_groups,"current_starting_point_div_groups","current_starting_point_div_groups",'div')
								update_values_starting_point_groups("current_starting_point_div_groups")
								pref_center_zoom_div_groups.innerHTML	+=	'<br /><br /><input class="input_general_submit" type="button" value="'+getTrans.Translate("take_current_view_as_starting_point") +'" onclick="javascript:save_new_starting_point_groups()"/>'
												var	submit_div	=	createElement(step_3_group_div,"group_form_div",null,'div')
		
						
			var	step_4_group_div	=	createElement(targetdiv,'group_steps','step_4_group_div','div')
				step_4_group_div.innerHTML	=	"<b>Step	4:</b>	Invite	people	for	your	group.<br	/><br	/>"
			
						var	emailadresses_div	=	createElement(step_4_group_div,"outer_div_groups_create","emailadresses_div",'div')
							var	emailadresses_div_title	=	createElement(emailadresses_div,"group_title_div",null,'div')
								emailadresses_div_title.innerHTML	=	"Email	adresses:"
							var	emailadresses_div	=	createElement(emailadresses_div,"group_form_div",null,'div')
								emailadresses_div.innerHTML	=	"<textarea	rows=\"6\"	id=\"groups_create_email_invite\"	class=\"input_general_text_100\" onFocus=\"if(this.value == 'Separate email addresses with a comma') {this.value = '';}\">Separate email addresses with a comma</textarea>"
			
						var	friends_div	=	createElement(step_4_group_div,"outer_div_groups_create","friends_div",'div')
							var	friends_div_title	=	createElement(friends_div,"group_title_div",null,'div')
								friends_div_title.innerHTML	=	'Treelz friends:<br><input type="checkbox" onChange="fill_create_group_step3_invites_checkuncheck_all(this)"/>(de)select all'
							var	friends_div	=	createElement(friends_div,"group_form_div",null,'div') 
								fill_create_group_step3_invites(friends_div)
			
	}

	function 			fill_create_group_step3_invites_checkuncheck_all(theselect)
	{
	
	treelzsystem.treelersocial.user.getFriends(function(friends)
	 {
	   var friends =  getSortedFriendsList(friends)//friends.sort(function_sortUserObjects)
  	 for(i in friends)
  	 {
		 var friend = friends[i]
		 var	theinput=	document.getElementById('create_group_friend_invite_'+friend.id);
		 theinput.checked= theselect.checked
  	 }
	 }
	 );
	}
	
	function 			fill_create_group_step3_invites(emailadresses_div)
	{
	 treelzsystem.treelersocial.user.getFriends(function(friends)
	 {
	var friends = friends.sort(function_sortUserObjects)
  	 for(var i=0; i< friends.length;i++)
  	 {
		 if(friends[i])
		 {
  		 var friend = friends[i]
    	 var	theinputdiv	=	createElement(emailadresses_div,null,null,'div')
  		 theinputdiv.innerHTML =  '<input type="checkbox" id="create_group_friend_invite_'+friend.id+'" />'+ friend.firstname + ' ' + friend.lastname 
		 }

  	 }
	 }
	 );
	
	}
	
	var	new_group_id_created;
	var	groupiframecounter=0;

		
	function	submitted_group_create()
	{
		if(document.getElementById('input_title_group').value != '')
		{
			if(document.getElementById('check_ok_span') && document.getElementById('check_ok_span').innerHTML	==	"Ok!")
			{
					submitted_group_create_do()
			}
			else
			{
					alert("Subdomain is not accepted.")
			}
		}
		else
		{
					alert("Please fill in a title.")
		}
		

	}
	function	submitted_group_create_do()
	{
			//	read	out	values

			//	step	1:	basic	info
			var	name	=	document.getElementById('input_name_group').value
			var	title	=	document.getElementById('input_title_group').value
			var	extraoptions	=	{}
				extraoptions.title	=	title;
			var	desc	=	document.getElementById('group_create_description').value
			var	tags	=	document.getElementById('group_create_tags').value
			//	picture:	TODO....
			var	long	=	document.getElementById('value_long_group').value
			var	lat	=	document.getElementById('value_lat_group').value
			var	zoom	=	document.getElementById('value_zoom_group').value
			var	mapstyle	=	document.getElementById('group_map_type_buttons_input').value
			
	//		alert(long+" + "+lat+" + "+zoom)

			//	step	2:	levels
			var	levels	=	{}
				levels.add=	groups_advanced_level_get_value('create_','add');
				levels.show=	groups_advanced_level_get_value('create_','show');
				levels.invite=	groups_advanced_level_get_value('create_','invite');
				levels.editinfo=	groups_advanced_level_get_value('create_','editinfo');
				levels.editmsgs	=	groups_advanced_level_get_value('create_','editmsgs');


			//	step	3:	invite
			var	email_invites	=	document.getElementById('groups_create_email_invite').value
			
			mapsystem.groups.createGroup(name,desc,levels,	function(group)
			{
					//	now	do	invites, first by mail
				var	inviteextraoptions	=	{}
					inviteextraoptions.message	=	''
					group.inviteEmails(email_invites,function(x)
					{
							debug('response	from	invite	for	group'+x);
					}
					,inviteextraoptions)

					// then by friends
					 treelzsystem.treelersocial.user.getFriends(function(friends)
					 {
						 for(i in friends)
						 {
							 var friend = friends[i]
							 var	theinput=	document.getElementById('create_group_friend_invite_'+friend.id);
							 if(theinput.checked == true)
									 {
									   group.inviteUser(friend.id)
									 }
						 }
					 }
					 );
        	 
        	 			//	and	other	information	(e.g.	tags)
					group.addTags(tags,function(y)
					{
							debug('response	from	tags	'+y);
					}
					)
					
													
					open_screen_intro_group(group.id)
					/* --- Melle heeft dit er 25/9/2008 19.43 in gezet*/
					var prefs = [];
					prefs["pref_long"] = long;
					prefs["pref_lat"] = lat;
					prefs["pref_zoom"] = zoom;
					prefs["pref_map"] = mapstyle;
					
			if(long != 0)		
			{
					StoreGroupPrefs(group.id, prefs);	
					
					treelzsystem.setDomainSetting(group.name, 'center_lat', lat,function(x){})
					treelzsystem.setDomainSetting(group.name, 'center_lng', long,function(x){})
					treelzsystem.setDomainSetting(group.name, 'zoomlevel', zoom,function(x){})
					treelzsystem.setDomainSetting(group.name, 'pref_map', mapstyle,function(x){})
			}
					/* ------- */


			}
			,extraoptions)




	}

	function	Screen_CreateGroup_SaveImage_After(new_groupid)
	{
			//	show	info	of	new	group
			open_screen_intro_group(new_groupid)
	}

	function	fill_group_buttons(thediv_outer, edit)
	{
	//		var	scroll_arrows_gr	=	createElement(thediv_outer,"scroll_arrows_gr","scroll_arrows_gr",'div')

	//		var	str	="<a	id=\"page_count_gr\"></a><a	id=\"scroll_left_a_bg_gr\"	class=\"scroll_left_a_bg\"></a><a	id=\"scroll_left_a_gt\"	class=\"scroll_left_a\"><img	id=\"scroll_left_a_img_gt\"	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"17\"	height=\"16\"	onClick=\"show_group_step_left("+edit+")\"></a>&nbsp;&nbsp;&nbsp;<a	id=\"scroll_right_a_bg_gr\"	class=\"scroll_right_a_bg\"></a><a	id=\"scroll_right_a_gt\"	class=\"scroll_right_a\"><img	id=\"scroll_right_a_img_gt\"	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"17\"	height=\"16\"	onClick=\"show_group_step_right("+edit+")\"></a>"

	//		scroll_arrows_gr.innerHTML	=	str

			var	finish_button_a	=	createElement(thediv_outer,"finish_button_a","finish_button_a",'a')
			var	next_button_a	=	createElement(thediv_outer,"next_button_a","next_button_a",'a')
			var	prev_button_a	=	createElement(thediv_outer,"prev_button_a","prev_button_a",'a')

	}


	function	show_group_step_left(edit)
	{

			if(number_make_group	>	1)
			{
					hide_all_make_group()
					number_make_group	=	number_make_group	-	1
					show_group_step(number_make_group, edit)
			}
	}

	function	show_group_step_right(edit)
	{
			if(number_make_group	<	3)
			{

					hide_all_make_group()
					number_make_group	=	number_make_group	+	1
					show_group_step(number_make_group, edit)
			}
	}
	var var_after_step_3 = false

	function	show_group_step(number, edit)
	{
			urls.AddVariable("H",	number);
			urls.UpdateURL();
			number_make_group	=	number
			hide_all_make_group()
			var	selected_make_group	=	document.getElementById("step_"+number+"_group_div")
				selected_make_group.style.visibility	=	"inherit"
			var	nr_step	=	document.getElementById("nr_step_"+number)
				nr_step.setAttribute('class',"nr_step_selected")
				nr_step.setAttribute('className',"nr_step_selected")

/*
			var	page_count_gr	=	document.getElementById("page_count_gr")
				page_count_gr.innerHTML	=	number+"	/	3"
				page_count_gr.href	=	"javascript:show_group_step(1, "+edit+")"
*/					

		var finish_button_a = document.getElementById("finish_button_a")
		var next_button_a = document.getElementById("next_button_a")
		var prev_button_a = document.getElementById("prev_button_a")

			if(number	==	1)
			{
				if(edit)
				{
					finish_button_a.innerHTML	=	"save changes"
					finish_button_a.href = "javascript:submitted_group_edit("+edit+")"
				}
				else
				{
					finish_button_a.innerHTML	=	""
				}
					
					prev_button_a.innerHTML	=	""
					next_button_a.innerHTML	=	"next"
					next_button_a.href = "javascript:show_group_step(2, "+edit+")"
					
					if(var_after_step_3 == true)
					{
						move_or_resize("_set", null, null, null, 310, -150)
						var_after_step_3 = false
					}
			}
			if(number	==	2)
			{
				if(edit)
				{
					finish_button_a.innerHTML	=	"save changes"
					finish_button_a.href = "javascript:submitted_group_edit("+edit+")"
				}
				else
				{
					finish_button_a.innerHTML	=	""
				}
					prev_button_a.innerHTML	=	"previous"
					prev_button_a.href = "javascript:show_group_step(1, "+edit+")"
					next_button_a.innerHTML	=	"next"
					next_button_a.href = "javascript:show_group_step(3, "+edit+")"
					
					if(var_after_step_3 == true)
					{
						move_or_resize("_set", null, null, null, 310, -150)
						var_after_step_3 = false
					}
			}
			if(number	==	3)
			{
				if(edit)
				{
					finish_button_a.innerHTML	=	"save changes"
					finish_button_a.href = "javascript:submitted_group_edit("+edit+")"
				}
				else
				{
					finish_button_a.innerHTML	=	""
				}
					prev_button_a.innerHTML	=	"previous"
					prev_button_a.href = "javascript:show_group_step(2, "+edit+")"
					next_button_a.innerHTML	=	"next"
					next_button_a.href = "javascript:show_group_step(4, "+edit+")"
					
					move_or_resize("_set", null, null, null, 260, 150)
					var_after_step_3 = true
					
			}
			if(number	==	4)
			{
				
				if(edit)
				{
					finish_button_a.innerHTML	=	"save changes"
					finish_button_a.href = "javascript:submitted_group_edit("+edit+")"
				}
				else
				{
					finish_button_a.innerHTML	=	"finish & invite"
					finish_button_a.href = "javascript:submitted_group_create()"
				}
					next_button_a.innerHTML	=	""
					prev_button_a.innerHTML	=	"previous"
					prev_button_a.href = "javascript:show_group_step(3, "+edit+")"
					
					if(var_after_step_3 == true)
					{
						move_or_resize("_set", null, null, null, 310, -150)
						var_after_step_3 = false
					}
			}

/*

			if(number	==	1)
			{
					document.getElementById("scroll_left_a_bg_gr").style.visibility	=	"hidden"
			}
			else
			{
					document.getElementById("scroll_left_a_bg_gr").style.visibility	=	"inherit"
			}

			if(number	==	3)
			{
					document.getElementById("scroll_right_a_bg_gr").style.visibility	=	"hidden"
			}
			else
			{
					document.getElementById("scroll_right_a_bg_gr").style.visibility	=	"inherit"
			}


*/

			my_own_BuildFunc("_set")
			
			CSBfleXcroll(selected_make_group)

	}

	function	hide_all_make_group()
	{
			document.getElementById("nr_step_1").setAttribute('class',"nr_step_normal")
			document.getElementById("nr_step_1").setAttribute('className',"nr_step_normal")
			document.getElementById("nr_step_2").setAttribute('class',"nr_step_normal")
			document.getElementById("nr_step_2").setAttribute('className',"nr_step_normal")
			document.getElementById("nr_step_3").setAttribute('class',"nr_step_normal")
			document.getElementById("nr_step_3").setAttribute('className',"nr_step_normal")
			document.getElementById("nr_step_4").setAttribute('class',"nr_step_normal")
			document.getElementById("nr_step_4").setAttribute('className',"nr_step_normal")

			document.getElementById("step_1_group_div").style.visibility	=	"hidden"
			document.getElementById("step_2_group_div").style.visibility	=	"hidden"
			document.getElementById("step_3_group_div").style.visibility	=	"hidden"
			document.getElementById("step_4_group_div").style.visibility	=	"hidden"
			
			hide_scroll("step_1_group_div")
			hide_scroll("step_2_group_div")
			hide_scroll("step_3_group_div")
			hide_scroll("step_4_group_div")

	}

	function	hide_buttons_gr()
	{
			document.getElementById("scroll_left_a_bg_gr").style.visibility	=	"hidden"
			document.getElementById("scroll_right_a_bg_gr").style.visibility	=	"hidden"
	}


	function	submitted_group_edit(groupid)
	{
			// 	read	out	values

			//	step	1:	basic	info
			//var	name	=	document.getElementById('input_name_group').value
			var	title	=	document.getElementById('input_title_group').value
			var	extraoptions	=	{}
				extraoptions.title	=	title;
			var	desc	=	document.getElementById('group_create_description').value
			var	tags	=	document.getElementById('group_create_tags').value

			var	long	=	document.getElementById('value_long_group').value
			var	lat	=	document.getElementById('value_lat_group').value
			var	zoom	=	document.getElementById('value_zoom_group').value
			var	mapstyle	=	document.getElementById('group_map_type_buttons_input').value

			//	step	2:	levels
		var	levels	=	{}
			levels.add=	groups_advanced_level_get_value('create_','add');
			levels.show=	groups_advanced_level_get_value('create_','show');
			levels.invite=	groups_advanced_level_get_value('create_','invite');
			levels.editinfo=	groups_advanced_level_get_value('create_','editinfo');
			levels.editmsgs	=	groups_advanced_level_get_value('create_','editmsgs');
			
			var prefs = [];
				prefs["pref_long"] = long;
				prefs["pref_lat"] = lat;
				prefs["pref_zoom"] = zoom;
				prefs["pref_map"] = mapstyle;
				


			//	step	3:	invite
			var	email_invites	=	document.getElementById('groups_create_email_invite').value

			mapsystem.groups.getGroup(groupid,function(group)
			{			
			
			if(long != 0)		
			{
			treelzsystem.setDomainSetting(group.name, 'center_lat', lat,function(x){})
			treelzsystem.setDomainSetting(group.name, 'center_lng', long,function(x){})
			treelzsystem.setDomainSetting(group.name, 'zoomlevel', zoom,function(x){})
			treelzsystem.setDomainSetting(group.name, 'pref_map', mapstyle,function(x){})
    		
					
					group.StorePrefs(prefs, function (feedback) {
						if (feedback.code == 500) {
							alert(feedback.update);
						}
						//alert(feedback.update);
					});
			}
					group.setTitle(title);
					group.setDescription(desc);
					
					group.setLevel_Show(levels.show)
					group.setLevel_Invite(levels.invite)
					group.setLevel_EditMsgs(levels.editmsgs)
					group.setLevel_EditInfo(levels.editinfo)
					group.setLevel_Add(levels.add)
					
					// invits
      			var	inviteextraoptions	=	{}
      			inviteextraoptions.message	=	''
      			group.inviteEmails(email_invites,function(x)
						{
						debug('response	from	invite	for	group'+x);
						}
						,inviteextraoptions)
      
      			 treelzsystem.treelersocial.user.getFriends(function(friends)
              	 {
                	 for(i in friends)
                	 {
                		 var friend = friends[i]
                		 var	theinput=	document.getElementById('create_group_friend_invite_'+friend.id);
                		 if(theinput.checked == true)
        						 {
        						   group.inviteUser(friend.id)
        						 }
                	 }
              	 }
              	 );
      					 
      			//	and	other	information	(e.g.	tags)
      			group.addTags(tags,function(y)
						{
						debug('response	from	tags	'+y);
						}
						)
				hide_container('_set', true)
				open_screen_intro_group(groupid)	
			}
			);
	}
function update_values_starting_point_groups(targetdiv_id)
{
	var current_starting_point_div = document.getElementById(targetdiv_id)
	
		current_starting_point_div.innerHTML = "<div class='title_group_start_location'>"+ getTrans.Translate("longitude") +": </div><div class='input_group_start_location_small'><input id='value_long_group' class='input_long_lat' value='0'/></div>"
		current_starting_point_div.innerHTML += "<div class='title_group_start_location'>"+ getTrans.Translate("latitude") +": </div><div class='input_group_start_location_small'><input id='value_lat_group' class='input_long_lat' value='0'/></div>"
		current_starting_point_div.innerHTML += "<div class='title_group_start_location'>"+ getTrans.Translate("zoomlevel") +": </div><div class='input_group_start_location_small'><input id='value_zoom_group' class='input_long_lat' value='0'/></div>"
	
	var	map_type_buttons_title	=	createElement(current_starting_point_div,"title_group_start_location","map_type_buttons",'div')
		map_type_buttons_title.innerHTML = getTrans.Translate("map_style")+":"

	var	map_type_buttons	=	createElement(current_starting_point_div,"input_group_start_location","map_type_buttons",'div')
		var	group_button_satellite_a	=	createElement(map_type_buttons,"grey","group_pref_button_satellite",'a')
			group_button_satellite_a.href = "javascript:group_change_pref_mapstyle('_satellite')"
			group_button_satellite_a.innerHTML = getTrans.Translate("satellite")+"&nbsp;&nbsp;&nbsp;"
			group_button_satellite_a.title = getTrans.Translate("title_satellite")
		var	group_button_map_a	=	createElement(map_type_buttons,"grey","group_pref_button_map",'a')
			group_button_map_a.href = "javascript:group_change_pref_mapstyle('_map')"
			group_button_map_a.innerHTML = getTrans.Translate("map")+"&nbsp;&nbsp;&nbsp;"
			group_button_map_a.title = getTrans.Translate("title_map")
		var	group_button_hybrid_a	=	createElement(map_type_buttons,"grey","group_pref_button_hybrid",'a')
			group_button_hybrid_a.href = "javascript:group_change_pref_mapstyle('_hybrid')"
			group_button_hybrid_a.innerHTML = getTrans.Translate("hybrid")+"&nbsp;&nbsp;&nbsp;"
			group_button_hybrid_a.title = getTrans.Translate("title_hybrid")
		var	group_button_terrain_a	=	createElement(map_type_buttons,"grey","group_pref_button_terrain",'a')
			group_button_terrain_a.href = "javascript:group_change_pref_mapstyle('_terrain')"
			group_button_terrain_a.innerHTML = getTrans.Translate("terrain")
			group_button_terrain_a.title = getTrans.Translate("title_terrain")

	//	var	group_map_type_buttons_input_outer	=	createElement(map_type_buttons,"group_map_type_buttons_input_outer","group_map_type_buttons_input_outer",'div')
	
				var	group_map_type_buttons_input = createElement(map_type_buttons,null,"group_map_type_buttons_input",'input')
					group_map_type_buttons_input.style.display = "none"
					group_map_type_buttons_input.value = "1"

}

function group_change_pref_mapstyle(maptype)
{
	setcolormaptypes_groups(maptype)
						if(maptype == "_satellite")
						{
							setmaptypeonsatellite()
							var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input").value = 1
						}
						if(maptype == "_map")
						{
							setmaptypeonmap()
							var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input").value = 2
						}
						if(maptype == "_hybrid")
						{
							setmaptypeonhybrid()
							var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input").value = 3
						}
						if(maptype == "_terrain")
						{
							setmaptypeonterrain()
							var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input").value = 4
						}

}
function save_new_starting_point_groups()
{
	var centre = mapsystem.map.getCenter();
	var	value_lat = centre.lat();
	var	value_long = centre.lng();
	var	value_zoom = mapsystem.map.getZoom();
	var	value_zoom = mapsystem.map.getZoom();

	var value_long_group = document.getElementById("value_long_group")
		value_long_group.value = value_long
	var value_lat_group = document.getElementById("value_lat_group")
		value_lat_group.value = value_lat
	var value_zoom_group = document.getElementById("value_zoom_group")
		value_zoom_group.value = value_zoom
	var group_map_type_buttons_input = document.getElementById("group_map_type_buttons_input")
		
		if(document.getElementById("button_satellite").style.color == "white")
		{
			setcolormaptypes_groups("_satellite")
			group_map_type_buttons_input.value = 1
		}
		if(document.getElementById("button_map").style.color == "white")
		{
			setcolormaptypes_groups("_map")
			group_map_type_buttons_input.value = 2
		}
		if(document.getElementById("button_hybrid").style.color == "white")
		{
			setcolormaptypes_groups("_hybrid")
			group_map_type_buttons_input.value = 3
		}
		if(document.getElementById("button_terrain").style.color == "white")
		{
			setcolormaptypes_groups("_terrain")
			group_map_type_buttons_input.value = 4
		}

} 
function setcolormaptypes_groups(type)
{
	var button_hybrid = document.getElementById("group_pref_button_satellite")
		button_hybrid.style.color = ''
	var button_hybrid = document.getElementById("group_pref_button_map")
		button_hybrid.style.color = ''
	var button_hybrid = document.getElementById("group_pref_button_hybrid")
		button_hybrid.style.color = ''
	var button_hybrid = document.getElementById("group_pref_button_terrain")
		button_hybrid.style.color = ''

	var button_hybrid = document.getElementById("group_pref_button"+type)
		button_hybrid.style.color = "white"
}
function Screen_ShowMessageDetails_from_intro(msgid)
{
	Screen_ShowMessageDetails_from_container(msgid)
	hide_container_onscreen("_intro")
	show_overview_fm()
}

function Screen_ShowMessageDetails_from_intro_groups(msgid, groupid)
{
	Screen_ShowMessageDetails_from_container(msgid)
	hide_container_onscreen("_intro")
	show_overview_fm_groups(groupid)
}

function Screen_ShowMessageDetails_from_intro(msgid)
{
	Screen_ShowMessageDetails_from_container(msgid)
	hide_container_onscreen("_intro")
	show_overview_fm()
}

function Screen_groupprofile_from_pic(msgid, groupid)
{
	if(msgid)
	{
		Screen_ShowMessageDetails_from_container(msgid)
	}
	hide_container_onscreen("_intro")
	Screen_ShowGroupDetails(groupid)
	show_pictures_groupprofile(groupid)
}
function Screen_groupprofile_from_msg(msgid, groupid)
{
	if(msgid)
	{
		Screen_ShowMessageDetails_from_container(msgid)
	}
	hide_container_onscreen("_intro")
	Screen_ShowGroupDetails(groupid)
	show_messages_groupprofile(groupid)
}
function show_members_group_from_intro(groupid)
{
	hide_container_onscreen("_intro")
	Screen_ShowGroupDetails(groupid)
	show_members_groupprofile(groupid)
}

/*t_info.js*/

function	show_info_container_notonstartup()
{
show_info_container(true)
}
function	load_content_info(notonstartup)
{
	if(treelzsystem.treelersocial)
	{
		var	thediv_outer	=	document.getElementById("frame_info")
			thediv_outer.innerHTML	=	'';
		
		var	thediv	=	document.getElementById("clientarea_inner_info")
			thediv.innerHTML	=	'';
		
//		var	direct_links_div_header	=	createElement(thediv,null,null,'div')
//			direct_links_div_header.innerHTML	=	getTrans.Translate("direct_links_div_header")+':<br	/>'
//		var	direct_links_div	=	createElement(thediv,null,'direct_links_div','div')
//		show_direct_links(direct_links_div)
		
		
//		var	hr_element = createElement(thediv,null,null,'hr')
		var	friendrequest_div_header	=	createElement(thediv,null,null,'div')
			friendrequest_div_header.innerHTML	=	getTrans.Translate("friends_invitations")+':<br	/>'
		var	friendrequest_div	=	createElement(thediv,'requests_div','friendrequest_div','div')
				var	friendrequest_span	=	createElement(friendrequest_div,"grey",null,'span')
				friendrequest_span.innerHTML	= getTrans.Translate("no_friend_invitations")
		
		Screen_ShowPossibleFriendRequests(friendrequest_div, notonstartup)
		
		var	hr_element = createElement(thediv,null,null,'hr')
		var	recent_div_header	=	createElement(thediv,null,null,'div')
			recent_div_header.innerHTML	=	getTrans.Translate("groups_invitations")+':<br	/>'  
		var	recentgroups_invitations_div	=	createElement(thediv,'requests_div',null,'div')
				var	no_group_invitations_span	=	createElement(recentgroups_invitations_div,"grey",null,'span')
					no_group_invitations_span.innerHTML	= getTrans.Translate("no_group_invitations")
		
		Screen_ShowGroupInvites(recentgroups_invitations_div)
		
		var	hr_element = createElement(thediv,null,null,'hr')
		var	recent_div_header	=	createElement(thediv,null,null,'div')
			recent_div_header.innerHTML	=	getTrans.Translate("groups_access_requests")+':<br	/>' 
		var	recentgroups_access_requests_div	=	createElement(thediv,'requests_div',null,'div')
				var	no_requests_span	=	createElement(recentgroups_access_requests_div,"grey",null,'span')
					no_requests_span.innerHTML	= getTrans.Translate("no_requests")
		Screen_ShowGroupAccessRequests(recentgroups_access_requests_div)
		/*
		// RECENT my messages with replies										
		var	hr_element = createElement(thediv,null,null,'hr')
		var	recent_div_header	=	createElement(thediv,null,'recent_div_header','div')
		recent_div_header.innerHTML	=	' ARJEN_TRANS laatste my msg met replies:<br	/>'
		var	recent_div	=	createElement(thediv,null,'recent_data','div')
		Screen_ShowRecentMessagesRepliedTo(recent_div)
		*/									
		// RECENT REPLIES TO MY MESSAGES
		var	hr_element = createElement(thediv,null,null,'hr')
		var	recent_div_header	=	createElement(thediv,null,null,'div')
			recent_div_header.innerHTML	=	getTrans.Translate("latest_replies_to_my_messages")+':<br	/>'
		var	recentreplies_div	=	createElement(thediv,"recentreplies_div",null,'div')
			Screen_ShowRecentReplies(recentreplies_div)
		/*							
		// RECENT REPLIES TO MSG ON WHICH I REPLIED
		var	hr_element = createElement(thediv,null,null,'hr')
		var	recent_div_header	=	createElement(thediv,null,'recent_div_header','div')
		recent_div_header.innerHTML	=	' ARJEN_TRANS latest replies to my replies:<br	/>'
		var	recent_div	=	createElement(thediv,null,'recent_data','div')
		Screen_ShowRecentRepliesToReplies(recent_div)
		*/						
		//INVTIES TO GROUPS
		// OPEN GROUP REQUESTS
//		var	hr_element = createElement(thediv,null,null,'hr')
//		
//		var	news_div_header	=	createElement(thediv,null,'news_div_header','div')
//			news_div_header.innerHTML	=	getTrans.Translate("general_news")+':<br	/>'
//		var	news_div = createElement(thediv,"news_div","news_div",'div')
//		
//		all_news("news_div", "_info")
		
		if(treelzsystem	&&	treelzsystem.treelersocial)
		{
			urls.AddVariable("MI", "i");
			urls.UpdateURL();
			var	do_not_show_box		=	createElement(thediv_outer,"do_not_show_box","do_not_show_box_myinfo",'div')
				do_not_show_box.innerHTML	=	"<input	type=\"checkbox\"	onClick='changeMyinfo_Startup(this)'	id='myinfoshowcheckbox'/>"+getTrans.Translate("Show_on_startup")
			treelzsystem.treelersocial.getSetting('show_myinfo',function(myinfosetting)
			{
				if(myinfosetting	==	1)		//	getting	started
				{
				document.getElementById('myinfoshowcheckbox').checked	=	true
				}
				else
				{
				document.getElementById('myinfoshowcheckbox').checked	=	false
				}
			}
			);
		}		
	}
	else
	{
	show_treelz_alert("not_loggedin_info")
	}
}
function getMeThatDataOnly(string)
{
	var year = string.substring(0,4);
	var month =string.substring(5,7);
	var day = string.substring(8,10);
	var hour =string.substring(11,13);
	var minute =string.substring(14,16);
	var second =string.substring(17,19);
	return ''+day + '/'+month + ' ' + hour + ':' + minute;
}
function Screen_ShowGroupInvites(groupsinvite_div)
{
	treelzsystem.treelersocial.groupsRequestsAndInvites(function(open_group_requests,invites_to_groups)
	{
		var resultaten = 0;
		
			groupsinvite_div.innerHTML = ''
			for(i in invites_to_groups)
			{
				resultaten = 1; 
				var request = invites_to_groups[i]
				Screen_ShowGroupInvitesFillOne(groupsinvite_div,request)
			}
		if (resultaten == 0) 
		{ 
			groupsinvite_div.innerHTML = '<span class="grey">'+getTrans.Translate("no_group_invitations")+'</span>'
		}
	}
	);
}

function Screen_ShowGroupInvitesFillOne(groupsinvite_div,request)
{
	mapsystem.groups.getGroup(request.group_id,function(group)
	{
		var	groupsinvite_div_inner = createElement(groupsinvite_div,null,null,'span')
			var	groupsinvite_a = createElement(groupsinvite_div_inner,"bold",null,'a')
				groupsinvite_a.href = "javascript:Screen_ShowGroupDetails("+request.group_id+")" 
				groupsinvite_a.innerHTML = group.title
			var	br_element = createElement(groupsinvite_div_inner,null,null,'br')
			var	groupsinvite_domain_a = createElement(groupsinvite_div_inner,null,null,'a')
				groupsinvite_domain_a.innerHTML = group.name  +	'.treelz.com'
				groupsinvite_domain_a.href = "http://"+group.name+".treelz.com" 
				groupsinvite_domain_a.target = "_blank" 
		
			var	br_element = createElement(groupsinvite_div_inner,null,null,'br')
			var	span_between = createElement(groupsinvite_div_inner,"grey",null,'span')
				span_between.innerHTML = getTrans.Translate("message")+": " +request.message
		var	accept_deny_div = createElement(groupsinvite_div,"accept_deny_div",null,'div')
		var	accept_a = createElement(accept_deny_div,"green_font",null,'a')
			accept_a.href = "javascript:Screen_RequestAccessFromInvite("+request.userid+","+request.group_id+")"
			accept_a.innerHTML = getTrans.Translate("request_join")
		var	span_between = createElement(accept_deny_div,null,null,'span')
			span_between.innerHTML = " / "
		var	deny_a = createElement(accept_deny_div,"red_font",null,'a')
			deny_a.href = "javascript:Screen_IgnoreInvite("+request.userid+","+request.group_id+")"
			deny_a.innerHTML = getTrans.Translate("ignore_invitation")
		var	br_element = createElement(accept_deny_div,null,null,'br')
		my_own_BuildFunc("_info")
	}
	);
}
function Screen_RequestAccessFromInvite(inviter_userid,groupid)
{
	mapsystem.groups.getGroup(groupid,function(group)
	{  					
		group.requestAccess(function(x)
		{
			show_info_container(true)
		}
		);
	}
	);
}
function Screen_IgnoreInvite(inviter_userid,groupid)
{
	mapsystem.groups.getGroup(groupid,function(group)
	{
		var extraoptions = {}
			extraoptions.inviter_id = inviter_userid
		group.denyInvite(function(x)
		{
			show_info_container(true)
		}
		,extraoptions);
	}
	);
}
function Screen_ShowGroupAccessRequests(groupsrequest_div)
{
	treelzsystem.treelersocial.groupsRequestsAndInvites(function(open_group_requests,invites_to_groups)
	{
	  //if(open_group_requests.length > 0)
	
		//groupsrequest_div.innerHTML = ''
		var resultaten_req = 0;
		
			groupsrequest_div.innerHTML = ''
		
		for(i in open_group_requests)
		{
			var grps_request = open_group_requests[i]
			for(j in grps_request)
			{
				resultaten_req = 1; 
				var request = grps_request[j]
				Screen_ShowGroupAccessRequestsOne(groupsrequest_div,request)
			}
		}
		if (resultaten_req == 0) 
		{ 
			groupsrequest_div.innerHTML = '<span class="grey">'+getTrans.Translate("no_requests")+'</span>'
		}
	}
	);
}
function Screen_ShowGroupAccessRequestsOne(groupsrequest_div,request)
{
				
				mapsystem.groups.getGroup(request.group_id,function(group)
				{
					group.isUserModerator(treelzsystem.treelersocial.userid,function(moderator)
					{
						if(moderator == 1)  
						{
								var	groupsrequest_span = createElement(groupsrequest_div,null,null,'span')
								var	user_groupsrequest_a = createElement(groupsrequest_span,"bold",null,'a')
									user_groupsrequest_a.href = "javascript:Screen_InitSideBarUserProfile("+request.userid+")" 
									treelzsystem.users.getUser(request.userid,null,function(usr)
									{
										user_groupsrequest_a.innerHTML = 'User: '+ usr.firstname + ' ' + usr.lastname
									 }
									 );
								var	br_element = createElement(groupsrequest_span,null,null,'br')
								var	span_between = createElement(groupsrequest_span,"grey",null,'span')
									span_between.innerHTML = getTrans.Translate("group") +': '
								var	groupsrequest_a = createElement(groupsrequest_span,"bold grey",null,'a')
									groupsrequest_a.href = "javascript:Screen_ShowGroupDetails("+request.group_id+")" 
									groupsrequest_a.innerHTML = group.name
								var	br_element = createElement(groupsrequest_span,null,null,'br')
								var	span_between = createElement(groupsrequest_span,"grey",null,'span')
									span_between.innerHTML = getTrans.Translate("message")+": " +request.message
								var	accept_deny_div = createElement(groupsrequest_div,"accept_deny_div",null,'div')
								var	accept_a = createElement(accept_deny_div,"green_font",null,'a')
									accept_a.href = "javascript:Screen_GrantAcces("+request.userid+","+request.group_id+")"
									accept_a.innerHTML = getTrans.Translate("Accept")
								var	span_between = createElement(accept_deny_div,null,null,'span')
									span_between.innerHTML = " / "
								var	deny_a = createElement(accept_deny_div,"red_font",null,'a')
									deny_a.href = "javascript:Screen_DenyAcces("+request.userid+","+request.group_id+")"
									deny_a.innerHTML = getTrans.Translate("Deny")
								my_own_BuildFunc("_info") 
						}
			
					}
					);				
				}
				);
}
function Screen_GrantAcces(userid,groupid)
{
	mapsystem.groups.getGroup(groupid,function(grp)
	{
		grp.grantAccess(userid,function(response)
		{
			show_info_container(true)
		}
		);
	}
	);
}
function Screen_DenyAcces(userid,groupid)
{
	mapsystem.groups.getGroup(groupid,function(grp)
	{
		grp.denyAccess(userid,function(response)
		{
			show_info_container(true)
		}
		);
	}
	);
}
function Screen_ShowRecentRepliesToReplies(recent_div)
{
	var extraoptions = {}
		extraoptions.start = 0;
		extraoptions.amount= 3;
	treelzsystem.treelersocial.recentReplyToReply(function(msgs)
	{
		for(i in msgs)
		{
			var msg = msgs[i];						
			treelzsystem.users.getUser(msg.userid,true,function(usr)												
			{	
			
				var eenmooiberichtdiv = createElement(recent_div,null,null,'div');						 
				eenmooiberichtdiv.innerHTML = '<a href="javascript:Screen_ShowMessageDetails_from_container('+msg.id+')"><img	class=""	height="16"	src="imageshow.php?thumb=true&h=16&imageid='	+	usr.picture_id	+'">' +msg.title+'</a><br>';
my_own_BuildFunc("_info")
			}
			);
		}
	}
	,extraoptions);
}
function Screen_ShowRecentMessagesRepliedTo(recent_div)
{
	var extraoptions = {}
	extraoptions.start = 0;
	extraoptions.amount= 3;
	treelzsystem.treelersocial.recentRepliedTo(function(msgs)
	{					
		for(i in msgs)						
		{
			var msg = msgs[i];
			treelzsystem.users.getUser(msg.userid,true,function(usr)												
			{												
				var eenmooiberichtdiv = createElement(recent_div,null,null,'div');						 
				eenmooiberichtdiv.innerHTML = '<a href="javascript:Screen_ShowMessageDetails_from_container('+msg.id+')"><img	class=""	height="16"	src="imageshow.php?thumb=true&h=16&imageid='	+usr.picture_id	+'">' +msg.title+'</a><br>';
				my_own_BuildFunc("_info")
			}
			);
		}
	}
	,extraoptions);
	/*
	var max_show = 5;
	var nr = 0;
	var msgcacher	=	getMessageCacher();									
	for(i in treelzsystem.treelersocial.recent.msg_replied_to)
	{
	nr++;
	if(nr > max_show) break;
	msgcacher.getMessage(i,function(msg)
	{
	var eenmooiberichtdiv = createElement(recent_div,null,null,'div');
	eenmooiberichtdiv.innerHTML = '<a href="javascript:Screen_ShowMessageDetails_from_container('+msg.id+')"><img	class=""	height="16"	src="imageshow.php?thumb=true&h=16&imageid='	+	msg.user.icon	+'">' +msg.title+'</a><br>';  							 
	}
	);		
	}
	*/
}
function Screen_ShowRecentReplies(recent_div)
{
	var extraoptions = {}
	extraoptions.start = 0;
	extraoptions.amount= 5;
	treelzsystem.treelersocial.recentReplies(function(msgs)
	{
		for(i in msgs)
		{
			var msg = msgs[i];
			//debug(i + ' ' + msg  + ' ' + msg.title)
			/*msgcacher.getMessage(msg.parent_id,function(parentmsg)
			{
			*/							 
			var eenmooiberichtdiv = createElement(recent_div,"eenmooiberichtdiv",null,'div');
			Screen_ShowRecentReplies_FillMsg(eenmooiberichtdiv,msg);
		
		}			
		

	}
	,extraoptions);
}
function Screen_ShowRecentReplies_FillMsg(eenmooiberichtdiv,msg)
{
	var msgcacher	=	getMessageCacher();
	msgcacher.getMessage(msg.parent_id,function(parentmsg)
	{
		treelzsystem.users.getUser(msg.userid,true,function(usr)												
		{												
			eenmooiberichtdiv.innerHTML = '<a href="javascript:Screen_ShowMessageDetails_from_container('+msg.parent_id+')"><img	class=""	height="16"	src="imageshow.php?thumb=true&h=16&imageid='	+	usr.picture_id	+'">' + getMeThatDataOnly(msg.date) + ' : ' +parentmsg.title+'</a><br>';
			my_own_BuildFunc("_info")
			
		}
		);
	}
	);						
}
function	changeMyinfo_Startup(checkbox)
{
	var	value	=	"0"
	if(checkbox.checked	==	true)
	{
	value	=	1;
	}
	else
	{
	value	=	"0";
	}
	
	if(treelzsystem	&&	treelzsystem.treelersocial)
	{
		treelzsystem.treelersocial.setSetting('show_myinfo',value,function(setting)
		{
		}
		);
	}
}
/*Friend requests*/				
function	Screen_ShowPossibleFriendRequests(friendrequest_div,	notonstartup)
{
	
	treelzsystem.treelersocial.getRequests(function(requests)
	{
		var	found	=	false
		for(i	in	requests)	found	=	true
		clickedon_info()
		if(found)
		{
			friendrequest_div.innerHTML = ''
			tempiets	=	requests
			for(i	in	requests)
			{
				var request = requests[i]
				Screen_ShowPossibleFriendRequestsDoOne(friendrequest_div,request)	
			}
			show_container("_info")
			set_bu_footer_myinfo_var = 0
			//bu_footer_myinfo.setAttribute('class',"footer_buttons bu_footer_myinfo_active")
			//bu_footer_myinfo.setAttribute('className',"footer_buttons bu_footer_myinfo_active")
		}
		else
		{
			if(notonstartup	==	true)
			{
		//		var	friendrequest_span	=	createElement(friendrequest_div,"grey",null,'span')
		//		friendrequest_span.innerHTML	= getTrans.Translate("no_friend_invitations")
				my_own_BuildFunc("_info")
				show_container("_info")
			}
			else
			{
				hide_container("_info")
			}
		}
	}
	);
}
function Screen_ShowPossibleFriendRequestsDoOne(friendrequest_div,request)
{
	var	pos_friendid	=	request.id
	var	comment	=	request.comment
	treelzsystem.users.getUser(pos_friendid,true,function(usr)
	{
		var	friendrequest_span = createElement(friendrequest_div,null,null,'span')
		var	friendrequest_a = createElement(friendrequest_span,"bold",null,'a')
			friendrequest_a.href = "javascript:Screen_InitSideBarUserProfile("+usr.id+")"
			friendrequest_a.innerHTML = usr.firstname	+	'	'	+	usr.lastname
		var	br_element = createElement(friendrequest_span,null,null,'br')
		var	span_between = createElement(friendrequest_div,"grey",null,'span')
			span_between.innerHTML = getTrans.Translate("message")+": " +request.comment  //klopt ook niet, maar deze gaf in iedere geval vast geen error, ik wil graag request message van de user
		var	accept_deny_div = createElement(friendrequest_div,"accept_deny_div",null,'div')
		var	accept_a = createElement(accept_deny_div,"green_font",null,'a')
			accept_a.href = "javascript:Screen_User_Accept_Friend("+usr.id+")"
			accept_a.innerHTML = getTrans.Translate("Accept")
		var	span_between = createElement(accept_deny_div,null,null,'span')
			span_between.innerHTML = " / "
		var	deny_a = createElement(accept_deny_div,"red_font",null,'a')
			deny_a.href = "javascript:Screen_User_Deny_Friend("+usr.id+")"
			deny_a.innerHTML = getTrans.Translate("Deny")
		var	br_element = createElement(accept_deny_div,null,null,'br')
		my_own_BuildFunc("_info")
	}
	);
}
function all_news(targetdiv, type)
{
	var	targetdiv_news_div = document.getElementById(targetdiv)
		targetdiv_news_div.innerHTML = ''
	var inorout = false
	if(type == "_intro")
	{
		inorout = true
		targetdiv_news_div.innerHTML = '<h5>'+getTrans.Translate("News")+'</h5><br />'
	}
	show_news(targetdiv_news_div, "news_09_08_08", type, false)
	show_news(targetdiv_news_div, "news_09_02_08", type, false)
	show_news(targetdiv_news_div, "news_09_01_08", type, false)
	show_news(targetdiv_news_div, "news_08_28_08", type, false)
	show_news(targetdiv_news_div, "news_08_27_08", type, false)
	show_news(targetdiv_news_div, "news_08_25_08", type, false)


		var	targetdiv_news_div_old_news_title	=	createElement(targetdiv_news_div,"greylink","targetdiv_news_div_old_news_title",'a')
			targetdiv_news_div_old_news_title.innerHTML = 'Show old news'
			targetdiv_news_div_old_news_title.href = 'javascript:show_hide_old_news()'

		var	targetdiv_news_div_old_news	=	createElement(targetdiv_news_div,"targetdiv_news_div_old_news","targetdiv_news_div_old_news",'div')
			targetdiv_news_div_old_news.style.display = "none"
			
			show_news(targetdiv_news_div_old_news, "news_03_20_08", type, false)
			show_news(targetdiv_news_div_old_news, "news_03_18_08", type, false)
			show_news(targetdiv_news_div_old_news, "news_02_21_08", type, false)
			show_news(targetdiv_news_div_old_news, "news_01_14_08", type, false)
			show_news(targetdiv_news_div_old_news, "news_12_20_07", type, false)
			show_news(targetdiv_news_div_old_news, "news_12_19_07", type, false)
			show_news(targetdiv_news_div_old_news, "news_12_14_07", type, false)
			show_news(targetdiv_news_div_old_news, "news_11_28_07", type, false)
			show_news(targetdiv_news_div_old_news, "news_11_14_07", type, false)
			show_news(targetdiv_news_div_old_news, "news_10_14_07", type, false)
			show_news(targetdiv_news_div_old_news, "news_09_14_07", type, false)
}
function show_hide_old_news()
{
	var	targetdiv_news_div_old_news_title =	document.getElementById("targetdiv_news_div_old_news_title")
	var	targetdiv_news_div_old_news =	document.getElementById("targetdiv_news_div_old_news")

	if(targetdiv_news_div_old_news.style.display == "none")
	{
		targetdiv_news_div_old_news_title.innerHTML = 'Hide old news'
		targetdiv_news_div_old_news.style.display = ""
	}
	else
	{
		targetdiv_news_div_old_news_title.innerHTML = 'Show old news'
		targetdiv_news_div_old_news.style.display = "none"
	}

	my_own_BuildFunc("_info")


}

function all_news_intro()
{
	urls.AddVariable("I", "n");
	urls.UpdateURL();
	
	var	extra_info_div =	document.getElementById("extra_info_div")
		extra_info_div.innerHTML = ''
		var	extra_info_div_inner	=	createElement(extra_info_div,"extra_info_div_inner","extra_info_div_inner",'div')

		equalize_with_parent("extra_info_div", "extra_info_div_inner")


	all_news("extra_info_div_inner", "_intro")
	CSBfleXcroll("extra_info_div_inner")
}
function show_news(targetdiv, newsdate, type, newest)
{
	var	heading	=	createElement(targetdiv,"news_div_heading greylink",newsdate+"_heading"+type,'a')
		heading.innerHTML = getTrans.Translate(newsdate+"_heading")
		heading.href = 'javascript:show_news_content_onscreen("'+newsdate+"_content"+type+'", "'+type+'")'
	var	news	=	createElement(targetdiv,"news_div",newsdate+"_content"+type,'div')
		news.innerHTML = getTrans.Translate(newsdate)
		news.style.visibility = "hidden"
		news.style.height = 1
		news.style.overflow = "hidden"
	if(newest == true)
	{
		show_news_content(newsdate+"_content"+type)
	}
	my_own_BuildFunc("_info")
}
function show_news_content(newsdate)
{
	hide_all_news(type)
	
	var	newsdate_div =	document.getElementById(newsdate)
	if(document.getElementById(newsdate).style.visibility == "hidden")
	{					
		document.getElementById(newsdate).style.visibility = "inherit"
		document.getElementById(newsdate).style.height = ""
	}
	else
	{
		document.getElementById(newsdate).style.visibility = "hidden"
		document.getElementById(newsdate).style.height = 1
		document.getElementById(newsdate).style.overflow = "hidden"
	}
	my_own_BuildFunc("_info")
}
function show_news_content_onscreen(newsdate, type)
{
	hide_all_news(type)
	
	var	newsdate_div =	document.getElementById(newsdate)
	if(document.getElementById(newsdate).style.visibility == "hidden")
	{	
		document.getElementById(newsdate).style.visibility = "inherit"
		document.getElementById(newsdate).style.height = ""
	}
	else
	{
		document.getElementById(newsdate).style.visibility = "hidden"
		document.getElementById(newsdate).style.height = 1
		document.getElementById(newsdate).style.overflow = "hidden"
	}
	my_own_BuildFunc("_info")
	scrollUpdate("extra_info_div_inner") 
}
function hide_news(newsdate, type)
{
		document.getElementById(newsdate+"_content"+type).style.visibility = "hidden"
		document.getElementById(newsdate+"_content"+type).style.height = 1
		document.getElementById(newsdate+"_content"+type).style.overflow = "hidden"
}
function hide_all_news(type)
{
	hide_news("news_09_08_08", type)
	hide_news("news_09_02_08", type)
	hide_news("news_09_01_08", type)
	hide_news("news_08_28_08", type)
	hide_news("news_08_27_08", type)
	hide_news("news_08_25_08", type)
	
	hide_news("news_03_20_08", type)
	hide_news("news_03_18_08", type)
	hide_news("news_02_21_08", type)
	hide_news("news_01_14_08", type)
	hide_news("news_12_20_07", type)
	hide_news("news_12_19_07", type)
	hide_news("news_12_14_07", type)
	hide_news("news_11_28_07", type)
	hide_news("news_11_14_07", type)
	hide_news("news_10_14_07", type)
	hide_news("news_09_14_07", type)
}
function show_direct_links(friendrequest_div)
{
	var	link_to_overview	=	createElement(friendrequest_div,"greylink",null,'a')
	link_to_overview.innerHTML = getTrans.Translate("overview")+'<br />'
	link_to_overview.href = 'javascript:show_overview_fm()'
	
	var	link_to_my_profile	=	createElement(friendrequest_div,"greylink",null,'a')
	link_to_my_profile.innerHTML += getTrans.Translate("my_profile")+'<br />'
	link_to_my_profile.href = 'javascript:Screen_InitSideBarUserProfile(loggedin_id)'
	
	var	link_to_my_profile	=	createElement(friendrequest_div,"greylink",null,'a')
	link_to_my_profile.innerHTML += getTrans.Translate("change_my_preferences")+'<br />'
	link_to_my_profile.href = "javascript:show_preferences()"
	
	var	link_to_my_profile	=	createElement(friendrequest_div,"greylink",null,'a')
	link_to_my_profile.innerHTML += getTrans.Translate("change_my_settings")+'<br />'
	link_to_my_profile.href = "javascript:show_global_intro('mysettings')"

	var	link_to_invite_friends	=	createElement(friendrequest_div,"greylink",null,'a')
	link_to_invite_friends.innerHTML += getTrans.Translate("invite_friends")+'<br />'
	link_to_invite_friends.href = "javascript:show_global_intro('invitefriends')"
	
	var	link_to_find_friends	=	createElement(friendrequest_div,"greylink",null,'a')
	link_to_find_friends.innerHTML += getTrans.Translate("find_friends")+'<br />'
	link_to_find_friends.href = "javascript:show_global_intro('searchfriends')"
}
function	Screen_User_Deny_Friend(friendid)
{
	treelzsystem.treelersocial.reactToFriendRequest(friendid,0,function(ts)
	{
		Screen_InitSideBarUserProfile(treelzsystem.treelersocial.userid)
		show_info_container(true)
	}
	);
}
function	Screen_User_Accept_Friend(friendid)
{
	treelzsystem.treelersocial.reactToFriendRequest(friendid,1,function(ts)
	{
		Screen_InitSideBarUserProfile(friendid)
		show_info_container(true)
	}
	);
}
/*t_intro.js*/

/*
var URL_groups = "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_groups" 
var URL_travel = "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_travel"
var URL_maplog = "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_maplog"

var URL_groups_page = "images/4_intro/intro_pages_groups"
var URL_travel_page = "images/4_intro/intro_pages_travel"
var URL_maplog_page = "images/4_intro/intro_pages_maplog"
*/
var OpBg = 80
var OpMo = 68

function load_global_intro()
{
	
//	debug("load_global_intro")
	
	var intro_global_div = document.getElementById('screen_global');
		
		var intro_global_div_white = document.getElementById('screen_global_div_white');
			change_opacity(intro_global_div_white, 70)
			var ajax_loader_div = createElement(intro_global_div_white,'ajax_loader_div','ajax_loader_div','div')
				center_div('ajax_loader_div')
				ajax_loader_div.innerHTML = '<img src="images/loaders/ajax-loader_1.gif" />'
		
		
			create_frame_intro_global(intro_global_div)
			fill_intro_start_screen_all()
		
		
			var intro_global_div_close = createElement(intro_global_div_white,'intro_global_div_close','intro_global_div_close','div')
				intro_global_div_close.innerHTML = "<strong><a href='javascript:close_global_intro()'>Close this intro screen</a></strong>"

}
function show_global_intro(screen_selected)
{
//	debug("show_global_intro: "+screen_selected)
		var intro_screen_b_m_l = document.getElementById('intro_screen_b_m_l');
		var intro_screen_b_m_r = document.getElementById('intro_screen_b_m_r');
		
		if(treelzsystem	&&	treelzsystem.treelersocial)
		{
		var login_intro_div = document.getElementById('login_intro_div')
			login_intro_div.innerHTML = ''
		}
		
		var intro_global_div = document.getElementById('screen_global');
			intro_global_div.style.visibility = "inherit" 
		var intro_screen = document.getElementById('intro_screen');
			intro_screen.style.visibility = "inherit" 
			
		
		var screen_global_div_white = document.getElementById('screen_global_div_white');
			screen_global_div_white.innerHTML = ''
			
		if(screen_selected == 'mysettings' || screen_selected == 'register' || screen_selected == 'invitefriends' || screen_selected == 'searchfriends')
		{
			intro_screen_b_m_r.style.cursor = "auto"
			intro_screen_b_m_l.style.cursor = "auto"
			fill_iframe_content(screen_selected)
//			CSBfleXcroll("form_"+screen_selected)
	//		debug("form_"+screen_selected)
		//	intro_screen_b_l_inner.innerHTML = ""
		//	intro_screen_b_r_inner.innerHTML = ""
			if(screen_selected == 'mysettings')
			{	
				set_mouse_over_out_div('intro_screen_b_l', 100)	
				set_mouse_over_out_div('intro_screen_b_r', 100)	
				set_mouse_down('intro_screen_b_l', "javascript:nothing()")  //  welk javascript moet ik hier voor hebben?
				set_mouse_down('intro_screen_b_r', "javascript:nothing()")
						set_background_image(intro_screen_b_m_l, "images/4_intro/intro_footer_empty_l.png")					
						set_background_image(intro_screen_b_m_r, "images/4_intro/intro_footer_empty_r.png")					
			}
			if(screen_selected == 'register')
			{
				set_mouse_over_out_div('intro_screen_b_l', 100)	
				set_mouse_over_out_div('intro_screen_b_r', 100)	
				set_mouse_down('intro_screen_b_l', "javascript:nothing()")  //  welk javascript moet ik hier voor hebben?
				set_mouse_down('intro_screen_b_r', "javascript:nothing()")
						set_background_image(intro_screen_b_m_l, "images/4_intro/intro_footer_empty_l.png")					
						set_background_image(intro_screen_b_m_r, "images/4_intro/intro_footer_empty_r.png")					
			}
			if(screen_selected == 'invitefriends')
			{
				set_mouse_over_out_div('intro_screen_b_l', 100)	
				set_mouse_over_out_div('intro_screen_b_r', 100)	
				set_mouse_down('intro_screen_b_l', "javascript:nothing()")  //  welk javascript moet ik hier voor hebben?
				set_mouse_down('intro_screen_b_r', "javascript:nothing()")
						set_background_image(intro_screen_b_m_l, "images/4_intro/intro_footer_empty_l.png")					
						set_background_image(intro_screen_b_m_r, "images/4_intro/intro_footer_empty_r.png")					
			}
			if(screen_selected == 'searchfriends')
			{
				set_mouse_over_out_div('intro_screen_b_l', 100)	
				set_mouse_over_out_div('intro_screen_b_r', 100)	
				set_mouse_down('intro_screen_b_l', "javascript:nothing()")  //  welk javascript moet ik hier voor hebben?
				set_mouse_down('intro_screen_b_r', "javascript:nothing()")
						set_background_image(intro_screen_b_m_l, "images/4_intro/intro_footer_empty_l.png")					
						set_background_image(intro_screen_b_m_r, "images/4_intro/intro_footer_empty_r.png")					
			}
		}
		else
		{
			fill_intro_start_screen_all()
		//	intro_screen_b_l_inner.innerHTML = "Skip Intro"
		//	intro_screen_b_r_inner.innerHTML = "Register"
						set_background_image(intro_screen_b_m_l, "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_skip.png")					
						set_background_image(intro_screen_b_m_r, "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_register.png")					
			intro_screen_b_m_l.style.cursor = "pointer"
			intro_screen_b_m_r.style.cursor = "pointer"
			
			set_mouse_over_out_div('intro_screen_b_l', OpMo)	
			set_mouse_over_out_div('intro_screen_b_r', OpMo)	
			set_mouse_down('intro_screen_b_l', "javascript:close_global_intro()")
			set_mouse_down('intro_screen_b_r', "javascript:fill_register()")

		}
			add_close_button('intro_screen',	"javascript:close_global_intro()")
}
function show_global_intro_from_alert(screen_selected)
{
	close_treelz_alert()
	show_global_intro(screen_selected)
}

function create_frame_intro_global(intro_global_div)
{
//	debug("create_frame_intro_global: "+intro_global_div)
		var intro_screen = createElement(intro_global_div,'intro_screen','intro_screen','div')
			intro_screen.innerHTML = ''
			center_div('intro_screen')
			
			var intro_screen_t = createElement(intro_screen,'intro_screen_t','intro_screen_t','div')
				var intro_screen_t_c_l = createElement(intro_screen_t,'intro_screen_t_c_l','intro_screen_t_c_l','div')
				var intro_screen_t_l = createElement(intro_screen_t,'intro_screen_t_l','intro_screen_t_l','div')
				var intro_screen_t_m = createElement(intro_screen_t,'intro_screen_t_m','intro_screen_t_m','div')
				var login_intro_div = createElement(intro_screen_t,'login_intro_div','login_intro_div','div')
				
				
				
				
				
				fill_login_intro_div(login_intro_div)

	/*			var bussiness_intro_div = createElement(intro_screen_t,'bussiness_intro_div','bussiness_intro_div','a')
					bussiness_intro_div.innerHTML = "Solution for your company?"
					bussiness_intro_div.href = "javascript:fill_bussiness_intro()"
*/
				var intro_screen_t_c_r = createElement(intro_screen_t,'intro_screen_t_c_r','intro_screen_t_c_r','div')
				var intro_screen_t_r = createElement(intro_screen_t,'intro_screen_t_r','intro_screen_t_r','div')
				
					set_background_div('intro_screen_t_c_l', 100, "images/4_intro/black_corner_t_l.png")
					set_background_div('intro_screen_t_l', 100, null, "black")
					set_background_div('intro_screen_t_m', 100, null, "black")
					set_background_div('intro_screen_t_c_r', 100, "images/4_intro/black_corner_t_r.png")
					set_background_div('intro_screen_t_r', 100, null, "black")
					
		//			change_opacity(intro_screen_t_c_l, OpBg)
		//			change_opacity(intro_screen_t_c_r, OpBg)
				
				fill_intro_screen_t(intro_screen_t)
				
				var menu_intro_div = createElement(intro_screen_t,'menu_intro_div','menu_intro_div','div')
					menu_intro_div.innerHTML = "<a href='javascript:fill_intro_start_screen_all()'>Intro<a/>"
					menu_intro_div.innerHTML += " | <a href='javascript:show_from_menu_commercial_use()'>"+getTrans.Translate("Commercial_use")+"<a/>"
					menu_intro_div.innerHTML += " | <a href='javascript:show_from_menu_links()'>Links<a/>"
					menu_intro_div.innerHTML += " | <a href='javascript:show_from_menu_contact()'>Contact<a/>"
				fill_menu_intro_div(menu_intro_div)
				
			var intro_screen_m_t = createElement(intro_screen,'intro_screen_m_t','intro_screen_m_t','div')
			
	//		var intro_screen_m_b = createElement(intro_screen,'intro_screen_m_b','intro_screen_m_b','div')
	//			set_background_div('intro_screen_m_b', OpBg, null, "black")
			
			var intro_screen_b_l = createElement(intro_screen,'intro_screen_b_l','intro_screen_b_l','div')
				set_mouse_over_out_div('intro_screen_b_l', OpMo)
				set_mouse_down('intro_screen_b_l', "close_global_intro()")
				
				//		var intro_screen_b_c_l = createElement(intro_screen_b_l,'intro_screen_b_c_l','intro_screen_b_c_l','div')
						var intro_screen_b_m_l = createElement(intro_screen_b_l,'intro_screen_b_m_l','intro_screen_b_m_l','div')
				//		var intro_screen_b_l_l = createElement(intro_screen_b_l,'intro_screen_b_l_l','intro_screen_b_l_l','div')
				//			set_background_div('intro_screen_b_c_l', OpBg, "images/4_intro/black_corner_b_l.png")
				//			set_background_div('intro_screen_b_m_l', OpBg, null, "black")
				//			set_background_div('intro_screen_b_l_l', OpBg, null, "black")
				//			change_opacity(intro_screen_b_c_l, OpBg)
						
				//		var intro_screen_b_l_inner = createElement(intro_screen_b_l,'intro_screen_b','intro_screen_b_l_inner','div')
//							intro_screen_b_l_inner.innerHTML = "Skip Intro"
						set_background_image(intro_screen_b_m_l, "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_skip.png")					
					
				//		equalize_with_parent("intro_screen_b_l", "intro_screen_b_l_inner")
			
			var intro_screen_b_r = createElement(intro_screen,'intro_screen_b_r','intro_screen_b_r','div')
				set_mouse_over_out_div('intro_screen_b_r', OpMo)
				set_mouse_down('intro_screen_b_r', "javascript:fill_register()")

				//		var intro_screen_b_c_r = createElement(intro_screen_b_r,'intro_screen_b_c_r','intro_screen_b_c_r','div')
						var intro_screen_b_m_r = createElement(intro_screen_b_r,'intro_screen_b_m_r','intro_screen_b_m_r','div')
				//		var intro_screen_b_r_r = createElement(intro_screen_b_r,'intro_screen_b_r_r','intro_screen_b_r_r','div')
				//			set_background_div('intro_screen_b_c_r', OpBg, "images/4_intro/black_corner_b_r.png")
				//			set_background_div('intro_screen_b_m_r', OpBg, null, "black")
				//			set_background_div('intro_screen_b_r_r', OpBg, null, "black")
				//			change_opacity(intro_screen_b_c_r, OpBg)
		
				//		var intro_screen_b_r_inner = createElement(intro_screen_b_r,'intro_screen_b','intro_screen_b_r_inner','div')
			//				intro_screen_b_r_inner.innerHTML = "Register"
						set_background_image(intro_screen_b_m_r, "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_register.png")					
					
				//		equalize_with_parent("intro_screen_b_r", "intro_screen_b_r_inner")
}
function fill_login_intro_div(login_intro_div)
{
/*
<form action='index.php' METHOD="post" onSubmit="return checkData()">
	<div id="login_name" >
		<INPUT id="login_name_input" TYPE="text"class="input_login" NAME="entered_login" onFocus="if(this.value ==getTrans.Translate('login_name')) {this.value ='';}">
	</div>
	<div id="login_pw" >
		<INPUT TYPE="password" class="input_login_pw"NAME="entered_password" >
	</div>
	<div id="login_button" >
		<INPUT TYPE=imagesrc="images/knoppen-titels/empty_icons/empty_1x1.gif" WIDTH="40"HEIGHT="20" >
	</div>
</form>
*/
	
	var str = ''
		str += 	'<div id="login_button_bg" class="login_button_bg"></div>'
		str += 	'<form action="index.php" METHOD="post" onSubmit="return checkData()">'
		str += 		'<div id="login_name" >'
		str += 			'<INPUT id="login_name_input_intro" TYPE="text"class="input_login" NAME="entered_login" onFocus="if(this.value == getTrans.Translate(\'login_name\')) {this.value = \'\';}">'
		str += 		'</div>'
		str += 		'<div id="login_pw" >'
		str += 			'<INPUT TYPE="password" class="input_login_pw"NAME="entered_password" >'
		str += 		'</div>'
		str += 		'<div id="login_button" class="login_button" >'
		str += 			'<INPUT TYPE="image" src="images/knoppen-titels/empty_icons/empty_1x1.gif" WIDTH="40"HEIGHT="20" >'
		str += 		'</div>'
		str += 		'<div class="remember_me_checkbox_div">'
		str += 		'<input id="remember_me_checkbox" type="checkbox" checked="checked" value="true" name="remember_login"/><span>'+getTrans.Translate("Remember_me")+'</span>'
		str += 		'</div>'
		str += 	'</form>'
	


	login_intro_div.innerHTML = str
	document.getElementById("login_name_input_intro").value= getTrans.Translate("login_name");
	
}
function fill_menu_intro_div(menu_intro_div)
{
	
}
function fill_bussiness_intro()
{ 
			var intro_screen_m_t = document.getElementById('intro_screen_m_t');
			intro_screen_m_t.innerHTML = ''

				var iframe_content_div = createElement(intro_screen_m_t,'iframe_content_div','iframe_content_div','div')
					iframe_content_div.innerHTML = '<iframe class="iframe_content" src = "folder/NL.html"></iframe>';


//					echo "<a onClick=\"window.open('folder/NL.html','Folder-Treelz', 'width=500,height=610,directories=no,location=no,menubar=no,resizable=no,status=no,toolbars=no,scrollbars=yes');\">Hier NIET klikken</a>"; //Voorstel van Melle

}

function fill_iframe_content(page)
{
//	debug("fill_register")
		var intro_screen_m_t = document.getElementById('intro_screen_m_t');
			intro_screen_m_t.innerHTML = ''
				
				var iframe_content_div = createElement(intro_screen_m_t,'iframe_content_div','iframe_content_div','div')
					iframe_content_div.innerHTML = '<iframe class="iframe_content" src = "iframepage.php?page='+page+'"></iframe>';
}

function fill_register()
{
//	debug("fill_register")
		var intro_screen_m_t = document.getElementById('intro_screen_m_t');
			intro_screen_m_t.innerHTML = ''
				
				var iframe_content_div = createElement(intro_screen_m_t,'iframe_content_div','iframe_content_div','div')
					iframe_content_div.innerHTML = '<iframe class="iframe_content" src = "iframepage.php?page=register"></iframe>';
}
function fill_mysettings()
{
//	debug("fill_register")
		var intro_screen_m_t = document.getElementById('intro_screen_m_t');
			intro_screen_m_t.innerHTML = ''
				
				var iframe_content_div = createElement(intro_screen_m_t,'iframe_content_div','iframe_content_div','div')
					iframe_content_div.innerHTML = '<iframe class="iframe_content" src = "iframepage.php?page=mysettings"></iframe>';
}
function fill_intro_screen_t(intro_screen_t)
{
//	debug("fill_intro_screen_t: "+intro_screen_t)
				var logo_intro = createElement(intro_screen_t,'logo_intro','logo_intro','div')
					set_background_div('logo_intro', 100, "images/achtergronden/logo_treelz.png")
}
function fill_intro_start_screen_all()
{
//	debug("fill_intro_start_screen_all")
			var intro_screen_m_t = document.getElementById('intro_screen_m_t');
				intro_screen_m_t.innerHTML = ''

				fill_intro_start_screen('groups', intro_screen_m_t)
				fill_intro_start_screen('travel', intro_screen_m_t)
				fill_intro_start_screen('maplog', intro_screen_m_t)
				
		preload_image("images/4_intro/"+getTrans.Translate("language_selected")+"_intro_pages_groups_1.png")
		preload_image("images/4_intro/"+getTrans.Translate("language_selected")+"_intro_pages_travel_1.png")
		preload_image("images/4_intro/"+getTrans.Translate("language_selected")+"_intro_pages_maplog_1.png")

				
}
function fill_intro_start_screen(chosen_part, intro_screen_m_t)
{
//	debug("fill_intro_start_screen: "+chosen_part+", "+intro_screen_m_t)
			var intro_start_screen = createElement(intro_screen_m_t,'intro_start_screen_'+chosen_part,'intro_start_screen_'+chosen_part,'div')
				
				
				set_background_div('intro_start_screen_'+chosen_part, 100, "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_"+chosen_part+".png")
				
				
		//		if(chosen_part == 'groups'){set_background_div('intro_start_screen_groups', 100, URL_groups+".png")}
		//		if(chosen_part == 'travel'){set_background_div('intro_start_screen_travel', 100, URL_travel+".png")}
		//		if(chosen_part == 'maplog'){set_background_div('intro_start_screen_maplog', 100, URL_maplog+".png")}
				
				set_mouse_down('intro_start_screen_'+chosen_part, "show_more_details('"+chosen_part+"', 1)")
				set_mouse_over_out_div('intro_start_screen_'+chosen_part, OpMo)
				fill_intro_screen(chosen_part, 1)
}
function fill_intro_screen(chosen_part, page)
{
//	debug("fill_intro_screen: "+chosen_part+", "+page)
/*		var targetdiv = document.getElementById('intro_start_screen_'+chosen_part);
		var intro_screen_inner = createElement(targetdiv,'intro_screen_inner','intro_screen_inner_'+chosen_part,'div')
			intro_screen_inner.innerHTML = ''
			equalize_with_parent('intro_start_screen_'+chosen_part, "intro_screen_inner_"+chosen_part)
			if(page == 2)
			{
				var intro_screen_titel = createElement(intro_screen_inner,'intro_screen_titel','intro_screen_titel_'+chosen_part,'div')
					intro_screen_titel.innerHTML = getTrans.Translate("intro_start_"+chosen_part+"_titel")
			}
			
			var intro_screen_text = createElement(intro_screen_inner,'intro_screen_text','intro_screen_text_'+chosen_part,'div')
				intro_screen_text.innerHTML = getTrans.Translate("intro_start_"+chosen_part+"_"+page)
			
			if(page == 1)
			{
					var targetdiv = document.getElementById('intro_screen_text_'+chosen_part);
						targetdiv.style.top = "55px"
			}
			else
			{
					var targetdiv = document.getElementById('intro_screen_text_'+chosen_part);
						targetdiv.style.top = "0px"
			}
				if(page == 1)
			{
						var intro_screen_take_tour = createElement(intro_screen_inner,'intro_screen_take_tour','intro_screen_take_tour_'+chosen_part,'div')
							intro_screen_take_tour.innerHTML = getTrans.Translate("intro_start_"+chosen_part+"_take_tour")
			}
			*/
}
function fill_intro_screen_small(chosen_part)
{
//	debug("fill_intro_screen_small: "+chosen_part)
		var targetdiv = document.getElementById('intro_start_screen_'+chosen_part);
		var intro_screen_inner = createElement(targetdiv,'intro_screen_inner','intro_screen_inner_'+chosen_part,'div')
			intro_screen_inner.innerHTML = ''
			
			var intro_screen_titel_small = createElement(intro_screen_inner,'intro_screen_titel_small','intro_screen_titel_'+chosen_part,'div')
				intro_screen_titel_small.innerHTML = getTrans.Translate("intro_start_"+chosen_part+"_titel_small")
				equalize_with_parent('intro_start_screen_'+chosen_part, "intro_screen_inner_"+chosen_part)
}
function show_more_details(chosen_part, page_nr)
{
	
//	debug("show_more_details: "+chosen_part)
			
		if(chosen_part != 'groups')	{set_start_screens_small('groups')}
		if(chosen_part != 'travel')	{set_start_screens_small('travel')}
		if(chosen_part != 'maplog')	{set_start_screens_small('maplog')}
		
		var page_nr_real = page_nr - 0 
		var next_page_nr = page_nr_real + 1 
	
	//	if(page_nr_real == 1)
	//	{
			set_start_screen_open(chosen_part, page_nr_real)
	//	}
	//	else
	//	{
	//		fill_start_screen_open(chosen_part, page_nr)
	//	}
		
		
		preload_image("images/4_intro/"+getTrans.Translate("language_selected")+"_intro_pages_"+chosen_part+"_"+next_page_nr+".png")

	
	/*	
		if(chosen_part == 'groups'){set_start_screen_open('groups', URL_groups_page+"_"+page_nr+".png")
		preload_image(URL_groups_page+"_"+next_page_nr+".png")}
		if(chosen_part == 'travel'){set_start_screen_open('travel', URL_travel_page+"_"+page_nr+".png")
		preload_image(URL_travel_page+"_"+next_page_nr+".png")}
		if(chosen_part == 'maplog'){set_start_screen_open('maplog', URL_maplog_page+"_"+page_nr+".png")
		preload_image(URL_maplog_page+"_"+next_page_nr+".png")}
	*/
}
function show_all_start_screens()
{
//	debug("show_all_start_screens")
//	set_start_screens_begin('groups', URL_groups+".png")
//	set_start_screens_begin('travel', URL_travel+".png")
//	set_start_screens_begin('maplog', URL_maplog+".png")
	
	set_start_screens_begin('groups')
	set_start_screens_begin('travel')
	set_start_screens_begin('maplog')
}

function set_start_screens_small(chosen_part)
{
//	debug("set_start_screens_small: "+chosen_part)
		var intro_start_screen = document.getElementById('intro_start_screen_'+chosen_part);
			intro_start_screen.style.width = 30
		set_background_div('intro_start_screen_'+chosen_part, 100, null, 'black')
		set_mouse_over_out_div('intro_start_screen_'+chosen_part, OpMo)
		set_mouse_down('intro_start_screen_'+chosen_part, "show_more_details('"+chosen_part+"', 1)")
		fill_intro_screen_small(chosen_part)
}
function set_start_screen_open(chosen_part, page_nr)
{
		var intro_start_screen = document.getElementById('intro_start_screen_'+chosen_part);
			intro_start_screen.style.width = 630
			
		set_mouse_over_out_div('intro_start_screen_'+chosen_part, 100)
	/*		var	knoppen_intro_outer	=	createElement(intro_start_screen,"knoppen_intro_outer","knoppen_intro_outer_"+chosen_part,'div')
				var	knoppen_intro_center	=	createElement(knoppen_intro_outer, null, null,'center')
					var	knoppen_intro	=	createElement(knoppen_intro_center,"knoppen_intro","knoppen_intro_"+chosen_part,'div')

						var	intro_prev	=	createElement(knoppen_intro,"intro_button","intro_prev_"+chosen_part,'div')
						var	intro_home	=	createElement(knoppen_intro,"intro_button","intro_home_"+chosen_part,'div')
						var	intro_next	=	createElement(knoppen_intro,"intro_button","intro_next_"+chosen_part,'div')
	*/			
		//		add_size_to_element(knoppen_intro, "images/1_knoppen/icon_intro_prev.png")
		//		add_size_to_element(knoppen_intro, "images/1_knoppen/icon_intro_home.png", 2)
		//		add_size_to_element(knoppen_intro, "images/1_knoppen/icon_intro_next.png", 2)
		set_mouse_down('intro_start_screen_'+chosen_part, "")

	 	fill_start_screen_open(chosen_part, page_nr)
}
function fill_start_screen_open(chosen_part, page_nr)
{

		
		set_background_div('intro_start_screen_'+chosen_part, 100, "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_pages_"+chosen_part+"_"+page_nr+".png")
		
		
		var intro_start_screen = document.getElementById('intro_start_screen_'+chosen_part);

			var	knoppen_intro_outer	=	createElement(intro_start_screen,"knoppen_intro_outer","knoppen_intro_outer_"+chosen_part,'div')
				var	knoppen_intro_center	=	createElement(knoppen_intro_outer, null, null,'center')
					var	knoppen_intro	=	createElement(knoppen_intro_center,"knoppen_intro","knoppen_intro_"+chosen_part,'div')

						var	intro_prev	=	createElement(knoppen_intro,"intro_button","intro_prev_"+chosen_part,'div')
						var	intro_home	=	createElement(knoppen_intro,"intro_button","intro_home_"+chosen_part,'div')
						var	intro_next	=	createElement(knoppen_intro,"intro_button","intro_next_"+chosen_part,'div')

				var margin_left = ''
				
				if (BrowserDetect.browser == "Explorer")
				{margin_left = 1}
				else
				{margin_left = 2}

			
				
				if(page_nr == 1)		
				{
						create_clickable_icon("intro_prev_"+chosen_part, "intro_prev_inner", "icon_intro_prev", null, null, null,  "left", 0, option_b_o, option_f_o, "footer")
						create_clickable_icon("intro_home_"+chosen_part, "intro_home_inner", "icon_intro_home", "javascript:show_all_start_screens()",  "title_intro_home", null,  "left", margin_left, option_b_o, option_f_o, "footer")
						create_clickable_icon("intro_next_"+chosen_part, "intro_next_inner", "icon_intro_next", "javascript:show_more_details('"+chosen_part+"', '2')",  "title_intro_next", null,  "left", margin_left, option_b_o, option_f_o, "footer")
				}
				else if(page_nr == 2)
				{
						create_clickable_icon("intro_prev_"+chosen_part, "intro_prev_inner", "icon_intro_prev", "javascript:show_more_details('"+chosen_part+"', 1)", "title_intro_prev", null,  "left", 0, option_b_o, option_f_o, "footer")
						create_clickable_icon("intro_home_"+chosen_part, "intro_home_inner", "icon_intro_home", "javascript:show_all_start_screens()",  "title_intro_home", null,  "left", margin_left, option_b_o, option_f_o, "footer")
						create_clickable_icon("intro_next_"+chosen_part, "intro_next_inner", "icon_intro_next", "javascript:show_more_details('"+chosen_part+"', '3')",  "title_intro_next", null,  "left", margin_left, option_b_o, option_f_o, "footer")
				}
				else if(page_nr == 3)
				{
						if(chosen_part !== "travel")
						{
							create_clickable_icon("intro_prev_"+chosen_part, "intro_prev_inner", "icon_intro_prev", "javascript:show_more_details('"+chosen_part+"', '2')", "title_intro_prev", null,  "left", 0, option_b_o, option_f_o, "footer")
							create_clickable_icon("intro_home_"+chosen_part, "intro_home_inner", "icon_intro_home", "javascript:show_all_start_screens()",  "title_intro_home", null,  "left", margin_left, option_b_o, option_f_o, "footer")
							create_clickable_icon("intro_next_"+chosen_part, "intro_next_inner", "icon_intro_next", null,  null, null,  "left", margin_left, option_b_o, option_f_o, "footer")
						}
						else
						{						
							create_clickable_icon("intro_prev_"+chosen_part, "intro_prev_inner", "icon_intro_prev", "javascript:show_more_details('"+chosen_part+"', 2)", "title_intro_prev", null,  "left", 0, option_b_o, option_f_o, "footer")
							create_clickable_icon("intro_home_"+chosen_part, "intro_home_inner", "icon_intro_home", "javascript:show_all_start_screens()",  "title_intro_home", null,  "left", margin_left, option_b_o, option_f_o, "footer")
							create_clickable_icon("intro_next_"+chosen_part, "intro_next_inner", "icon_intro_next", "javascript:show_more_details('"+chosen_part+"', '4')",  "title_intro_next", null,  "left", margin_left, option_b_o, option_f_o, "footer")
						}
				}
				else if(page_nr == 4)
				{
						create_clickable_icon("intro_prev_"+chosen_part, "intro_prev_inner", "icon_intro_prev", "javascript:show_more_details('"+chosen_part+"', '3')", "title_intro_prev", null,  "left", 0, option_b_o, option_f_o, "footer")
						create_clickable_icon("intro_home_"+chosen_part, "intro_home_inner", "icon_intro_home", "javascript:show_all_start_screens()",  "title_intro_home", null,  "left", margin_left, option_b_o, option_f_o, "footer")
						create_clickable_icon("intro_next_"+chosen_part, "intro_next_inner", "icon_intro_next", null,  null, null,  "left", margin_left, option_b_o, option_f_o, "footer")
				}
				
				


}
function set_start_screens_begin(chosen_part)
{
//	debug("set_start_screens_begin: "+chosen_part)
		var intro_start_screen = document.getElementById('intro_start_screen_'+chosen_part);
			intro_start_screen.style.width = 230
		set_background_div('intro_start_screen_'+chosen_part, 100, "images/4_intro/"+getTrans.Translate("language_selected")+"_intro_"+chosen_part+".png")
		set_mouse_over_out_div('intro_start_screen_'+chosen_part, OpMo)
		set_mouse_down('intro_start_screen_'+chosen_part, "show_more_details('"+chosen_part+"', 1)")
		fill_intro_screen(chosen_part, 1)
}

function close_global_intro()
{
		//	debug("close_global_intro")
		if(document.getElementById('screen_global'))
		{
			var intro_global_div = document.getElementById('screen_global');
				intro_global_div.style.visibility = "hidden"
		}
		if(document.getElementById('intro_screen'))
		{
			var intro_screen = document.getElementById('intro_screen');
				intro_screen.style.visibility = "hidden" 
		}
		if(domain_uid == -1 && domain_gid == -1 )
		{
			if(treelzsystem	&&	treelzsystem.treelersocial)
			{
			}
			else
			{
				set_bu_footer_overview()
			}
		}
		
}

function show_from_menu_empty()
{
	var intro_screen_m_t = document.getElementById('intro_screen_m_t');
		intro_screen_m_t.innerHTML = ''
//		var	intro_screen_m_t_inner	=	createElement(intro_screen_m_t,"intro_screen_m_t_inner","intro_screen_m_t_inner",'div')
//			intro_screen_m_t_inner.style.backgroundColor = 'black'
}


function show_menu_extra_info()
{
	show_from_menu_empty()
	
	get_text("intro_screen_m_t", 'extra_info_text')
}
function show_from_menu_contact()
{
	show_from_menu_empty()
	
	get_text("intro_screen_m_t", 'contact_info')
}
function show_from_menu_terms_of_use()
{
	show_from_menu_empty()
	
	get_text("intro_screen_m_t", 'terms_of_use')
	
//	var	intro_screen_m_t_inner		=	document.getElementById("intro_screen_m_t_inner")
//	CSBfleXcroll(intro_screen_m_t_inner) 
}
function show_from_menu_links()
{
	show_from_menu_empty()

	get_text("intro_screen_m_t", 'links_intro')
/*
	var	content	=	''+getTrans.Translate("links_to_sites")
		content	+=	'<br	/><a target="_blank"	href="http://www.nederkaart.nl/" >www.nederkaart.nl</a>'
		content	+=	'<br	/><br	/><a target="_blank"	href="http://vakantiefoto.startkabel.nl/"	>vakantiefoto.startkabel.nl</a>'
		content	+=	'<br	/><br	/><a target="_blank"	href="http://google-earth.startkabel.nl/"	>google-earth.startkabel.nl</a>'
		content	+=	'<br	/><br	/><a target="_blank"	href="http://reisverhalen.startpagina.nl/"	>reisverhalen.startpagina.nl</a>'
	
	var	intro_screen_m_t		=	document.getElementById("intro_screen_m_t")
		intro_screen_m_t.innerHTML = content
*/}
function show_from_menu_commercial_use()
{
	show_from_menu_empty()

	get_text("intro_screen_m_t", 'commercial_use')
	
}


//*******************************************************//
//////////////////////////////////////////Intro Container//
//*******************************************************//
/*Intro container*/
function	load_content_intro()
{
	clickedon_intro()
	var	thediv_outer	=	document.getElementById("frame_intro")
		thediv_outer.innerHTML	=	'';
	var	thediv	=	document.getElementById("clientarea_inner_intro")
		thediv.innerHTML	=	''
	var	extra_info_div	=	createElement(thediv,"extra_info_div","extra_info_div",'div')
	var	intro_left	=	createElement(thediv,"intro_left","intro_left",'div')
	var	intro_left_inner	=	createElement(intro_left,"intro_left_inner","intro_left_inner",'div')
	var	intro_right	=	createElement(thediv,"intro_right","intro_right",'div')
	var	intro_right_inner	=	createElement(intro_right,"intro_right_inner","intro_right_inner",'div')
		intro_right_inner.innerHTML = ''
	var	intro_pictures	=	createElement(intro_right_inner,"intro_pictures","intro_pictures",'div')
	var	intro_messages	=	createElement(intro_right_inner,"intro_messages","intro_messages",'div')
	show_inintro_intro()
	pictures_intro(6, "0")
	messages_intro(6, "0")
	show_container("_intro")
	fill_titel_intro()
//	center_container("_intro", 25)
	fill_buttons_intro_div(intro_left_inner)
	CSBfleXcroll("extra_info_div")
	debug("CSBfleXcroll")
}
function	show_inintro_intro()
{
	urls.AddVariable("I", "i");
	urls.UpdateURL();
	var	extra_info_div		=	document.getElementById("extra_info_div")
		extra_info_div.innerHTML = ""
	var	center	=	createElement(extra_info_div,null,null,'center')
	var	intro	=	createElement(center,'intro','intro','div')
}
function	show_inintro_extra_info()
{
	urls.AddVariable("I", "x");
	urls.UpdateURL();
	get_text("extra_info_div", 'extra_info_text')
}
function	show_inintro_contact()
{
	urls.AddVariable("I", "c");
	urls.UpdateURL();
	get_text("extra_info_div", 'contact_info')
}
function	show_inintro_terms_of_use()
{
	urls.AddVariable("I", "t");
	urls.UpdateURL();
	get_text("extra_info_div", 'terms_of_use')
}
function	show_inintro_links()
{
	urls.AddVariable("I", "l");
	urls.UpdateURL();
	var	content	=	''+getTrans.Translate("links_to_sites")
		content	+=	'<br	/><a target="_blank"	href="http://www.nederkaart.nl/" >www.nederkaart.nl</a>'
		content	+=	'<br	/><br	/><a target="_blank"	href="http://geografie.startpagina.nl/" >geografie.startpagina.nl</a>'
		content	+=	'<br	/><br	/><a target="_blank"	href="http://vakantiefoto.startkabel.nl/"	>vakantiefoto.startkabel.nl</a>'
		content	+=	'<br	/><br	/><a target="_blank"	href="http://google-earth.startkabel.nl/"	>google-earth.startkabel.nl</a>'
		content	+=	'<br	/><br	/><a target="_blank"	href="http://reisverhalen.startpagina.nl/"	>reisverhalen.startpagina.nl</a>'
	var	extra_info_div		=	document.getElementById("extra_info_div")
		extra_info_div.innerHTML = content
}
function show_inintro_extra_info_fm()
{
	show_intro_container()
	show_inintro_extra_info()
}
function	show_intro_container_intro_fm()
{
	show_intro_container()
}
function	fill_buttons_intro_div(buttons_intro_div)
{
	buttons_intro_div.innerHTML	=	'<div class="intro_buttons">'+getTrans.Translate("register_a")+'</div'
	buttons_intro_div.innerHTML	+=	'<div class="intro_buttons">'+getTrans.Translate("extrainfo_a")+'</div'
	buttons_intro_div.innerHTML	+=	'<div class="intro_buttons">'+getTrans.Translate("lookaround_a")+'</div'
	document.getElementById("register_a").title=getTrans.Translate("title_register_a")
	document.getElementById("extrainfo_a").title=getTrans.Translate("title_extrainfo_a")
	document.getElementById("lookaround_a").title=getTrans.Translate("title_lookaround_a");
}
function pictures_intro(number, limit)
{
	var	type	=	4
	var intro_pictures = document.getElementById("intro_pictures")
	intro_pictures.innerHTML = '<img src="images/indicator.gif" alt="">'
	var msgcacher	=	getMessageCacher();
	msgcacher.getLatestMessagesOnePerUser(limit,number,type,function(msgs)
	{
		// verzamel eerst de uids
		var uids= []
		for(i in msgs)
		{
			var uid = msgs[i].userid;
			uids[uid] = uid
		}
		treelzsystem.users.getMultiple(uids,function(users)
		{
			intro_pictures.innerHTML = ''
			// now
			for(i in msgs)
			{
				var msg = msgs[i]
				var usr = users[msg.userid]
				intro_pictures.innerHTML	+=	"<div class=\"pictures_overview_div\">   <a	class=\"pictures_overview_a\"	href=\"javascript:Screen_ShowMessageDetails_from_intro("+msg.id+")\"><img	 height='51'	src='imageshow.php?thumb=true%20&h=51%20&imageid="+msg.picture_id+"' title='"+usr.firstname+"'></a></div>";
			} 
		}
		);
	}
	);
}
function messages_intro(number, limit)
{
	var	type	=	1
	var intro_messages = document.getElementById("intro_messages")
		//intro_messages.innerHTML = ''
		intro_messages.innerHTML = '<img src="images/indicator.gif" alt="">'
	var msgcacher	=	getMessageCacher();
	msgcacher.getLatestMessagesOnePerUser(limit,number,type,function(msgs)
	{
		// verzamel eerst de uids
		var uids= []
		for(i in msgs)
		{
			var uid = msgs[i].userid;
			uids[uid] = uid
		}
		treelzsystem.users.getMultiple(uids,function(users)
		{
			// now
			intro_messages.innerHTML = ''
			for(i in msgs)
			{
				var msg = msgs[i]
				var usr = users[msg.userid]
				intro_messages.innerHTML	+=	"<img	class='	height='16'	src='imageshow.php?thumb=true&h=16&imageid="	+	usr.picture_id	+"'>"	+	usr.firstname	+	":<a		href=\"javascript:Screen_ShowMessageDetails_from_intro("+msg.id+")\">"+msg.title	+"</a><br>";
			} 
		}
		);
	}
	);
}/*t_menu_script.js*/

/*
Yahoo lib. supports jsondata :)
*/

//var jsonMenu = new YAHOO.widget.Menu("basicmenu", { fixedcenter: true });

/* Einde Melle's testje */

		function doMenu(td,wm)
		{

				clearTimeout(eval("ti"+wm));
				//	td.style.backgroundColor=hlBgColor;
				//	td.style.color=hlColor;
				var i;
				var sT="";
				var tda=new Array();
				tda=td.id.split("_");
				if(oTd!=null){
						var tdo=new Array();
						tdo=oTd.id.split("_");
						if(tdo[0].substr(2,1)==wm){
								for(i=1;i<tdo.length;i++){
										sT+="_"+tdo[i];

										if(tdo[i]!=tda[i]){
												//				  document.getElementById("td"+wm+sT).style.backgroundColor=tdBgColor;
												//				  document.getElementById("td"+wm+sT).style.color=tdColor;
												if(document.getElementById("tbl"+wm+sT)!=null)
												document.getElementById("tbl"+wm+sT).style.visibility="hidden";
										}
								}
						}
				}
				oTd=td;
				sT="tbl"+wm;
				for(i=1;i<tda.length;i++)
				sT+="_"+tda[i];
				if(document.getElementById(sT)!=null)
				document.getElementById(sT).style.visibility="inherit";
		}

		function clearMenu(wm)
		{
				if(oTd!=null)
				{
						var tdo=new Array();
						tdo=oTd.id.split("_");
						//if(tdo[0].substr(2,1)!=wm){
						//var tdotdo=tdo[0].substr(2,1);
						//var debug=document.getElementById("debug");var debugtekst=debug.innerHTML;
						//debugtekst+="opdracht: close menu "+wm+"<br>current: "+tdotdo+"<br>TODO: fix<br>";debug.innerHTML=debugtekst;
						//}
						var sT="";
						for(var i=1;i<tdo.length;i++){


								sT+="_"+tdo[i];


								//			  document.getElementById("td"+wm+sT).style.backgroundColor=tdBgColor;
								//			  document.getElementById("td"+wm+sT).style.color=tdColor;
								if(document.getElementById("tbl"+wm+sT)!=null)
								document.getElementById("tbl"+wm+sT).style.visibility="hidden";
						}
						oTd=null;

				}
		}

		function runMenu(strURL){
				location.href=strURL;
		}





		function getCoord(st,wm){
				tA=st.split("_");
				if(tA.length>2){
						tA=tA.slice(0,-1);
						tt=tA.join("_");
						return (document.getElementById("tbl"+wm+tt).offsetTop+document.getElementById("td"+wm+st).offsetTop+0)+"px;left:"+
						(document.getElementById("tbl"+wm+tt).offsetLeft+document.getElementById("td"+wm+st).offsetWidth-2)+"px\">";
				}
				return (document.getElementById("mainmenu"+wm).offsetTop+document.getElementById("td"+wm+st).offsetTop+60)+"px;left:"+
				(document.getElementById("mainmenu"+wm).offsetLeft+document.getElementById("td"+wm+st).offsetLeft+((eval(wm==1))?20:500))+"px\">";
		}

		//var tdColor="#b0b0b0";		// menu item text color
		//var tdBgColor="#181818";	// menu item background color
		//var hlColor="#FFFFFF";		// highlight text color
		//var hlBgColor="#3c3c3c";	// highlight background color
		//	After change, modify same values in your *.css file

		//var tdColor="#b0b0b0";		// menu item text color
		//var tdBgColor="#181818";	// menu item background color
		//var hlColor="#FFFFFF";		// highlight text color
		//var hlBgColor="#3c3c3c";	// highlight background color
		//	After change, modify same values in your *.css file


		var md=250; // menu veweghalen delaytijd in ms
		var oTd=new Object;
		oTd=null;
		var ti1=-1;
		function constructMenu(wmc)
		{

				var tt="";
				var sT="";
				var pT=new Array();
				var tA=new Array();


				var sH="<div id=\"menutablediv"+wmc+"\"><table class=\"menu\" id=\"mainmenu"+wmc+"\" cellspacing=\"0\"><tr>";
				var p=0;
				var j=0;
				while(eval("typeof(td"+wmc+"_"+ (++j) +")!=\"undefined\"")){
						sH+="<td id=\"td"+wmc+"_"+j+"\" onmouseover=\"doMenu(this,"+wmc+")\" onmouseout=\"ti"+wmc+"=setTimeout('clearMenu("+wmc+")',md)\"";
						sH+=(eval("typeof(url"+wmc+"_"+j+")!=\"undefined\""))?" onclick=\"runMenu('"+eval("url"+wmc+"_"+j)+"')\">":"><a>";
						sH+=eval("td"+wmc+"_"+j)+"</a></td>";
						if (eval("typeof(td"+wmc+"_"+j+"_1)!=\"undefined\""))
						pT[p++]="_"+j;
				}
				sH+="</tr></table></div>";
				document.write(sH);
				for(var q=0;typeof(pT[q])!="undefined";q++){
						sT=pT[q];
						sH="";
						j=0;
						sH+="<table class=\"menu\" id=\"tbl"+wmc+sT+"\" cellspacing=\"0\" style=\"top:"+getCoord(sT,wmc);
						while (eval("typeof(td"+wmc+sT+"_"+ (++j) +")!=\"undefined\"")){
								sH+="<tr class=\"submenu\" onmouseover=\"set_background_hover(this)\" onmouseout=\"set_background_normal(this)\"><td  id=\"td"+wmc+sT+"_"+j+"\" onmouseover=\"doMenu(this,"+wmc+")\" onmouseout=\"ti"+wmc+"=setTimeout('clearMenu("+wmc+")',md)\"";
								sH+=(eval("typeof(url"+wmc+sT+"_"+j+")!=\"undefined\""))?" onclick=\"runMenu('"+eval("url"+wmc+sT+"_"+j)+"')\">":"><a>";
								sH+=eval("td"+wmc+sT+"_"+j)+"</a></td></tr>";
								if (eval("typeof(td"+wmc+sT+"_"+j+"_1)!=\"undefined\""))
								pT[p++]=sT+"_"+j;
						}
						sH+="</table>";
						document.write(sH);
				}
				document.getElementById("mainmenu"+wmc).style.visibility="inherit";
		}



		function set_background_hover(tr)
		{
				//alert(tr)
				tr.setAttribute('className',"menu_hover")
				tr.setAttribute('class',"menu_hover")
		}
		function set_background_normal(tr)
		{
				//	alert("green")
				tr.setAttribute('className',"submenu")
				tr.setAttribute('class',"submenu")
		}/*t_overview.js*/

var which_overview = ""

function	load_content_view()
{
	which_overview = "general"
	load_overview()
	show_new(0)
	set_bu_footer_overview_var = 0
	
	
//	document.getElementById("bu_footer_overview").setAttribute('class',"footer_buttons bu_footer_overview_active")
//	document.getElementById("bu_footer_overview").setAttribute('className',"footer_buttons bu_footer_overview_active")
}
function load_content_view_groups(groupid)
{
	which_overview = "groups"
	load_overview(groupid)
	show_new(0)
	set_bu_footer_overview_var = 0
//	document.getElementById("bu_footer_overview").setAttribute('class',"footer_buttons bu_footer_overview_active")
//	document.getElementById("bu_footer_overview").setAttribute('className',"footer_buttons bu_footer_overview_active")
}
function	show_search_fm()
{
	load_overview()
	show_search()
	select_this("search")
}
function	show_treelerz_friends_fm()
{
	if(treelzsystem	&&	treelzsystem.treelersocial)
	{
		load_overview()
		select_clear_upper()
		select_this("treelerz")
		show_treelerz_friends()
	}
	else
	{
		show_treelz_alert("not_loggedin_friends")
	}
}
function	show_treelerz_all_fm()
{
	load_overview()
	select_clear_upper()
	select_this("treelerz")
	show_treelerz_all()
}
function	show_treelerz_new_fm()
{
	load_overview()
	select_clear_upper()
	select_this("treelerz")
	show_treelerz_new()
}
function	load_overview(groupid)
{
	if(groupid)
	{
	clickedon_overview_groups(groupid)
	}
	else
	{
	clickedon_overview()
	}
	build_overview()
	show_container("_view")
}
function	build_overview()
{
	var	clientarea_inner_view	=	document.getElementById("clientarea_inner_view")
		clientarea_inner_view.innerHTML	=	''
	var	thediv_outer	=	document.getElementById("frame_view")
		thediv_outer.innerHTML	=	'';
	create_scroll_targetdivs("frame_view", "_view")
		var	menu_overview	=	createElement(clientarea_inner_view,'menu_overview','menu_overview','div')
			var	menu_overview_upper	=	createElement(menu_overview,'menu_overview_upper','menu_overview_upper','div')
				var	center	=	createElement(menu_overview_upper,null,null,'center')
					var	new_a	=	createElement(center,'menu_overview_a','new_a','a')
						new_a.href	=	"javascript:show_new()"
						new_a.innerHTML	=	getTrans.Translate("new")
					var	treelerz_a	=	createElement(center,'menu_overview_a','treelerz_a','a')
						treelerz_a.href	=	"javascript:show_treelerz()"
						treelerz_a.innerHTML	=	getTrans.Translate("treelerz")
					var	friends_a	=	createElement(center,'menu_overview_a','friends_a','a')
						friends_a.href	=	"javascript:show_friends()"
						friends_a.innerHTML	=	getTrans.Translate("friends")
					var	search_a	=	createElement(center,'menu_overview_a','search_a','a')
						search_a.href	=	"javascript:show_search()"
						search_a.innerHTML	=	getTrans.Translate("search")
		var	search_overview	=	createElement(clientarea_inner_view,'search_overview','search_overview','div')
		var	targetdiv_overview	=	createElement(clientarea_inner_view,'targetdiv_overview','targetdiv_overview','div')
	if(treelzsystem	&&	treelzsystem.treelersocial)
	{
		var	do_not_show_box		=	createElement(thediv_outer,"do_not_show_box","do_not_show_box_view",'div')
			do_not_show_box.innerHTML	=	"<input	type=\"checkbox\"	onClick='changeOverviewStarted_Startup(this)'	id='overviewshowcheckbox'/>"+getTrans.Translate("Show_on_startup")
		treelzsystem.treelersocial.getSetting('show_overview',function(overviewsetting)
		{
			if(overviewsetting	==	1)		//	getting	started
			{
				document.getElementById('overviewshowcheckbox').checked	=	true
			}
			else
			{
				document.getElementById('overviewshowcheckbox').checked	=	false
			}
		}
		);
	}
}
function	changeOverviewStarted_Startup(checkbox)
{
	var	value	=	"0"
	if(checkbox.checked	==	true)
	{
		value	=	1
	}
	else
	{
		value	=	"0"
	}
	if(treelzsystem	&&	treelzsystem.treelersocial)
	{
		treelzsystem.treelersocial.setSetting('show_overview',value,function(setting)
		{
		}
		);
	}
}
function	show_new()
{
	select_clear_upper()
	select_this("new")
	show_new_all()
	var	search_overview	=	document.getElementById("search_overview")
		search_overview.innerHTML	=	''
	clear_scroll_overview()
}
function	show_friends()
{
	select_clear_upper()
	select_this("friends")
	show_treelerz_friends()
	var	search_overview	=	document.getElementById("search_overview")
		search_overview.innerHTML	=	''
}
function	show_treelerz()
{
	select_clear_upper()
	select_this("treelerz")
	show_treelerz_all()
	var	search_overview	=	document.getElementById("search_overview")
		search_overview.innerHTML	=	''
}
function	show_search()
{
//	urls.AddVariable("V", "s");
//	urls.UpdateURL();
	var	targetdiv_overview	=	document.getElementById("targetdiv_overview")
		targetdiv_overview.innerHTML	=	''
	select_clear_upper()
	select_this("search")
	Screen_SearchUsers()
	clear_scroll_overview()
}
function	select_this(type)
{
	var	type_a	=	document.getElementById(type+"_a")
		type_a.style.backgroundColor	=	"#666666"
		type_a.style.color	=	"white"
}
function	select_clear_upper()
{
	document.getElementById("new_a").style.backgroundColor	=	""
	document.getElementById("friends_a").style.backgroundColor	=	""
	document.getElementById("treelerz_a").style.backgroundColor	=	""
	document.getElementById("search_a").style.backgroundColor	=	""
}
function	select_clear_lower_new()
{
}
function	select_clear_lower_treelerz()
{
}
function	fill_menu_overview_lower_new()
{
	var	menu_overview_lower	=	document.getElementById("menu_overview_lower")
		menu_overview_lower.innerHTML	=	''
	var	center	=	createElement(menu_overview_lower,null,null,'center')
	var	new_all_a	=	createElement(center,'menu_overview_a','new_all_a','a')
		new_all_a.href	=	"javascript:show_new_all()"
		new_all_a.innerHTML	=	getTrans.Translate("all")
	var	new_pictures_a	=	createElement(center,'menu_overview_a','new_pictures_a','a')
		new_pictures_a.href	=	"javascript:show_new_pictures()"
		new_pictures_a.innerHTML	=	getTrans.Translate("pictures")
	var	new_messages_a	=	createElement(center,'menu_overview_a','new_messages_a','a')
		new_messages_a.href	=	"javascript:show_new_messages()"
		new_messages_a.innerHTML	=	getTrans.Translate("messages")
	var	new_treelerz_a	=	createElement(center,'menu_overview_a','new_treelerz_a','a')
		new_treelerz_a.href	=	"javascript:show_new_treelerz()"
		new_treelerz_a.innerHTML	=	getTrans.Translate("treelerz")
}
function	fill_menu_overview_lower_treelerz()
{
	var	menu_overview_lower	=	document.getElementById("menu_overview_lower")
		menu_overview_lower.innerHTML	=	''
	var	center	=	createElement(menu_overview_lower,null,null,'center')
	var	treelerz_all_a	=	createElement(center,'menu_overview_a','treelerz_all_a','a')
		treelerz_all_a.href	=	"javascript:show_treelerz_all()"
		treelerz_all_a.innerHTML	=	getTrans.Translate("all")
	var	treelerz_new_a	=	createElement(center,'menu_overview_a','treelerz_new_a','a')
		treelerz_new_a.href	=	"javascript:show_treelerz_new()"
		treelerz_new_a.innerHTML	=	getTrans.Translate("new")
	var	treelerz_friends_a	=	createElement(center,'menu_overview_a','treelerz_friends_a','a')
		treelerz_friends_a.href	=	"javascript:show_treelerz_friends()"
		treelerz_friends_a.innerHTML	=	getTrans.Translate("friends");
}
function	show_new_all()
{
//	urls.AddVariable("V", "i");
//	urls.UpdateURL();
	select_clear_lower_new()
	var	targetdiv_overview	=	document.getElementById("targetdiv_overview")
		targetdiv_overview.innerHTML	=	''
	show_newest_pictures(5, "0")
	show_newest_messages(5, "0")
	show_newest_treelerz(5, "0")
	document.getElementById("newest_pictures").style.height	=	60
	document.getElementById("newest_messages").style.height	=	95
	document.getElementById("newest_treelerz").style.height	=	72
}
function	show_new_pictures()
{
//	urls.AddVariable("V", "p");
//	urls.UpdateURL();
	select_clear_lower_new()
	var	targetdiv_overview	=	document.getElementById("targetdiv_overview")
		targetdiv_overview.innerHTML	=	''
	show_newest_pictures(20, "0")
	document.getElementById("newest_pictures").style.height	=	""
}
function	show_new_messages()
{
//	urls.AddVariable("V", "m");
//	urls.UpdateURL();
	select_clear_lower_new()
	var	targetdiv_overview	=	document.getElementById("targetdiv_overview")
		targetdiv_overview.innerHTML	=	''
	show_newest_messages(15, "0")
	document.getElementById("newest_messages").style.height	=	""
	}
function	show_new_treelerz()
{
//	urls.AddVariable("V", "nt");
//	urls.UpdateURL();
	select_clear_lower_new()
	var	targetdiv_overview	=	document.getElementById("targetdiv_overview")
		targetdiv_overview.innerHTML	=	''
	show_newest_treelerz(20, "0")
	document.getElementById("newest_treelerz").style.height	=	""
}
function	show_treelerz_all()
{
//	urls.AddVariable("V", "at");
//	urls.UpdateURL();
	select_clear_lower_treelerz()
	fill_treelerz_all(3,"0")
}
function	show_treelerz_new()
{
//	urls.AddVariable("V", "tn");
//	urls.UpdateURL();
	select_clear_lower_treelerz()
	fill_treelerz_new(3,"0")
}
function	show_treelerz_friends()
{
//	urls.AddVariable("V", "tf");
//	urls.UpdateURL();
	if(treelzsystem	&&	treelzsystem.treelersocial)
	{
		select_clear_lower_treelerz()
		fill_treelerz_friends(3, "0")
	}
	else
	{
		show_treelz_alert("not_loggedin_friends")
	}
}
function	show_newest_pictures(number, limit)
{
	var	targetdiv_overview	=	document.getElementById("targetdiv_overview")
	var newlimit = 20;
	var otherway = 20;
	if (document.getElementById("newest_pictures") == null) 
	{
		var newest_pictures_outer = createElement(targetdiv_overview,'newest_pictures_outer','newest_pictures_outer','div')
		var	newest_pictures_a	=createElement(newest_pictures_outer,'newest_a','newest_pictures_a','a')
			newest_pictures_a.innerHTML	=	getTrans.Translate("newest_pictures");
			newest_pictures_a.href	=	"javascript:show_new_pictures()"
		var	newest_pictures	=createElement(newest_pictures_outer,'newest_pictures','newest_pictures','div')
		var	newest_pictures_arrows	=createElement(newest_pictures_outer,'newest_arrows','newest_pictures_arrows','div')
	}
	else 
	{
		var newest_pictures = document.getElementById("newest_pictures");
		var newest_pictures_a = document.getElementById("newest_pictures_a");
		var newest_pictures_arrows = document.getElementById("newest_pictures_arrows");
	}
	newest_pictures.innerHTML	=	"<img	src='images/indicator.gif'>";
	GiveMe	=	new	getMessageCacher();
	var	langs	=	[]
	//var	number	=	5
	var	type	=	4
	limit = parseInt(limit);
	newlimit = limit + number;
	otherway = limit - number;
	if (otherway < 0) {otherway = 0}
	if (limit == 0) 
	{
		limit = "0";
	}
	treelzsystem.users.getUsersWithLatestMessages(number,limit,type,function(usrs, rows)
	{
		if (limit != "0") 
		{
			newest_pictures_arrows.innerHTML = "<a class=\"arrow_left_newest\" href='javascript:show_newest_pictures("+number+","+otherway+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"6\"	height=\"10\"alt=\"\"></a>";
		}
		else 
		{ 
			newest_pictures_arrows.innerHTML = ""; 
		}
		if (rows == number) 
		{
			newest_pictures_arrows.innerHTML += " <a class=\"arrow_right_newest\" href='javascript:show_newest_pictures("+number+","+newlimit+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"6\"	height=\"10\"alt=\"\"></a>";
		}
		newest_pictures.innerHTML = "";
		var fadedline_b_div_outer_overview = createElement(newest_pictures,"fadedline_b_div_outer_overview",null,'div');
		var center = createElement(fadedline_b_div_outer_overview,null,null,'center');
		var fadedline_b_div = createElement(center,"fadedline_b_div",null,'div');
		for(id	in	usrs)
		{
			var	usr	=	usrs[id]
			if(usr)
			{
				usr.getLatestMessages(1,type,function(msg_temps)	//	number,	type
				{
					for(i	in	msg_temps)
					{
						var msg	=	msg_temps[i]
						treelzsystem.users.getUser(msg.userid,true,function(usr)
						{
							newest_pictures.innerHTML	+=	"<div class=\"pictures_overview_div\">   <a	class=\"pictures_overview_a\"	href=\"javascript:Screen_ShowMessageDetails_from_container("+msg.id+")\"><img	 height='51'	src='imageshow.php?thumb=true%20&h=51%20&imageid="+msg.picture_id+"' title='"+usr.firstname+"'></a></div>";
						}
						);
					}
				}
				);
			}
		}
	}
	);
}
function	show_newest_messages(number, limit)
{
	var	targetdiv_overview	=	document.getElementById("targetdiv_overview")
	if (document.getElementById("newest_messages") == null) 
	{
		var newest_messages_outer = createElement(targetdiv_overview,'newest_messages_outer','newest_messages_outer','div')
		var	newest_messages_a	=createElement(newest_messages_outer,'newest_a','newest_messages_a','a')
			newest_messages_a.innerHTML	=	getTrans.Translate("newest_messages");
			newest_messages_a.href	=	"javascript:show_new_messages()"
		var	newest_messages	=createElement(newest_messages_outer,'newest_messages','newest_messages','div')
		var	newest_messages_arrows	=createElement(newest_messages_outer,'newest_arrows','newest_messages_arrows','div')
	}
	else 
	{
		var newest_messages = document.getElementById("newest_messages");
		var newest_messages_a = document.getElementById("newest_messages_a");
		var newest_messages_arrows = document.getElementById("newest_messages_arrows");
	}
	newest_messages.innerHTML	=	"<img src='images/indicator.gif'>";
	var	langs	=	[]
	//var	number	=	5
	var	type	=	1
	limit = parseInt(limit);
	newlimit = limit + number;
	otherway = limit - number;
	if (otherway < 0) 
	{
		otherway = 0
	}
	if (limit == 0) 
	{
		limit = "0";
	}
	treelzsystem.users.getUsersWithLatestMessages(number,limit,type,function(usrs, rows)
	{
		if (limit != "0") 
		{
			newest_messages_arrows.innerHTML = "<a class=\"arrow_left_newest\" href='javascript:show_newest_messages("+number+","+otherway+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"6\"	height=\"10\"alt=\"\"></a>";
		}
		else 
		{ 
			newest_messages_arrows.innerHTML = ""; 
		}
		if (rows == number) 
		{
			newest_messages_arrows.innerHTML += " <a class=\"arrow_right_newest\" href='javascript:show_newest_messages("+number+","+newlimit+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"6\"	height=\"10\"alt=\"\"></a>";
		}
		newest_messages.innerHTML	=	"";
		var fadedline_b_div_outer_overview = createElement(newest_messages,"fadedline_b_div_outer_overview",null,'div');
		var center = createElement(fadedline_b_div_outer_overview,null,null,'center');
		var fadedline_b_div = createElement(center,"fadedline_b_div",null,'div');
		for(id	in	usrs)
		{
			var	usr	=	usrs[id]
			if(usr)
			{
				usr.getLatestMessages(1,type,function(msg_temps)	//	number,	type
				{
					for(i	in	msg_temps)
					{
						var msg	=	msg_temps[i]
						treelzsystem.users.getUser(msg.userid,true,function(usr)
						{
							newest_messages.innerHTML	+=	"<img	class='	height='16'	src='imageshow.php?thumb=true&h=16&imageid="	+	usr.picture_id	+"'>"	+	usr.firstname	+	":<a		href=\"javascript:Screen_ShowMessageDetails_from_container("+msg.id+")\">"+msg.title	+"</a><br>";
						}
						);
					}
				}
				);
			}
		}
	}
	);
}
function	show_newest_treelerz(number, limit)
{
	var newlimit = 20;
	var otherway = 20;
	limit = parseInt(limit);
	newlimit = limit + number;
	otherway = limit - number;
	if (otherway < 0) 
	{
		otherway = 0
	}
	if (limit == 0) 
	{
		limit = "0";
	}
	var	targetdiv_overview=	document.getElementById("targetdiv_overview")
	if (document.getElementById("newest_treelerz") == null) 
	{
		var newest_treelerz_outer = createElement(targetdiv_overview,'newest_treelerz_outer','newest_treelerz_outer','div')
		var	newest_treelerz_a	=createElement(newest_treelerz_outer,'newest_a','newest_treelerz_a','a')
			newest_treelerz_a.innerHTML	=	getTrans.Translate("newest_treelerz");
			newest_treelerz_a.href	=	"javascript:show_new_treelerz()"
		var	newest_treelerz	=createElement(newest_treelerz_outer,'newest_treelerz','newest_treelerz','div')
		var	newest_treelerz_arrows	=createElement(newest_treelerz_outer,'newest_arrows','newest_treelerz_arrows','div')
	}
	else 
	{
		var newest_treelerz = document.getElementById("newest_treelerz");
		var newest_treelerz_a = document.getElementById("newest_treelerz_a");
		var newest_treelerz_arrows = document.getElementById("newest_treelerz_arrows");
	}
	newest_treelerz.innerHTML	=	"<img	src='images/indicator.gif'>";
	
	treelzsystem.users.getLatestUsers(number,limit,function(usrs, rows)
	{
		if (limit != "0") 
		{
			newest_treelerz_arrows.innerHTML = "<a class=\"arrow_left_newest\" href='javascript:show_newest_treelerz("+number+","+otherway+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"6\"	height=\"10\"alt=\"\"></a>";
		}
		else 
		{ 
			newest_treelerz_arrows.innerHTML = ""; 
		}
		if (rows == number) 
		{
			newest_treelerz_arrows.innerHTML += " <a class=\"arrow_right_newest\" href='javascript:show_newest_treelerz("+number+","+newlimit+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"6\"	height=\"10\"alt=\"\"></a>";
		}
		newest_treelerz.innerHTML	=	"";
		var fadedline_b_div_outer_overview = createElement(newest_treelerz,"fadedline_b_div_outer_overview",null,'div');
		var center = createElement(fadedline_b_div_outer_overview,null,null,'center');
		var fadedline_b_div = createElement(center,"fadedline_b_div",null,'div');
		for	(i	in	usrs)
		{
			var	usr	=	usrs[i]
			if (usr.id != null) 
			{ 
// deze regel hieronder weg commentariseren, en het probleem in IE van het vastlopen bij openen overview is weg				
				newest_treelerz.innerHTML	+=	"<div	class=\"userpic_overview\"><a	class=\"userpic_overview_a\"	href=\"javascript:Screen_InitSideBarUserProfile("+usr.id+")\"><img	height='50'	src='imageshow.php?thumb=true&h=50&imageid="+usr.picture_id	+	"'	title='"+	usr.nickname	+"'></a><br	/><a href=\"javascript:Screen_InitSideBarUserProfile("+usr.id+")\" class=\"name_under_userpic\">"+usr.firstname+"</a></div>";
// Met alleen de userpic doet ie het ook niet:		
	//			newest_treelerz.innerHTML	+=	"<div	class=\"userpic_overview\"><a	class=\"userpic_overview_a\"	href=\"javascript:Screen_InitSideBarUserProfile("+usr.id+")\"><img	height='50'	src='imageshow.php?thumb=true&h=50&imageid="+usr.picture_id	+	"'	title='"+	usr.nickname	+"'></a></div>";
// Met alleen de naam doet ie het wel:		
	//			newest_treelerz.innerHTML	+=	"<br	/><a href=\"javascript:Screen_InitSideBarUserProfile("+usr.id+")\" class=\"name_under_userpic\">"+usr.firstname+"</a></div>";
// Zonder de imageshow doet ie het wel: (eruitgehaald: src='imageshow.php?thumb=true&h=50&imageid="+usr.picture_id+"' )		
	//			newest_treelerz.innerHTML	+=	"<div	class=\"userpic_overview\"><a	class=\"userpic_overview_a\"	href=\"javascript:Screen_InitSideBarUserProfile("+usr.id+")\"><img	height='50'		title='"+	usr.nickname	+"'></a><br	/><a href=\"javascript:Screen_InitSideBarUserProfile("+usr.id+")\" class=\"name_under_userpic\">"+usr.firstname+"</a></div>";
// En met alleen die imagshow (ook met show_newest_pictures(5, "0") en show_newest_messages(5, "0") uit (r229-230)) 
// Loopt ie ook vast:
	//			newest_treelerz.innerHTML	+=	"<img height='50' src='imageshow.php?thumb=true&h=50&imageid="+usr.picture_id	+"'>";
			}
		}
	}
	);
}
function	Screen_SearchUsers()
{
var	thediv	=	document.getElementById("search_overview")
thediv.innerHTML	=	'<div	id="searchname_outer"><div	id="searchname_bg"></div><div	id="searchname"><form	onSubmit="search_treeler();	return	false"><div	id="bu_searchname"><input	type="image"		src="images/achtergronden/empty_bu_search.gif"></div><div	id="field_searchname"><input	class="input_searchonmap"	type="text"			id="search_treeler_voorachternaam"	onFocus="if(this.value	==	getTrans.Translate(\'first_or_surname\'))	{this.value	=	\'\';}"/></div></form></div></div>';
document.getElementById("search_treeler_voorachternaam").value	=	getTrans.Translate("first_or_surname");
}
function	search_treeler()
{
	var	theinput	=	document.getElementById("search_treeler_voorachternaam")
	var	thesearchvalue	=	theinput.value
	var	thediv	=	document.getElementById("targetdiv_overview")
		thediv.innerHTML	=	'<div	id="opvuldiv"></div><div	id="searchname"><form><div	id="bu_searchname"><input	type="image"	onClick="search_treeler();	return	false"	src="images/achtergronden/empty_bu_search.gif"></div><div	id="field_searchname"><input	class="input_searchonmap"	type="text"			id="search_treeler_voorachternaam"	value="'+thesearchvalue+'";}"	/></div></form></div><div	id="resultsdiv"></div>';
	document.getElementById('resultsdiv').innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	
	treelzsystem.users.searchPerson(theinput.value,function(usrs)
	{
		Screen_User_fillLatestUserDiv(usrs)
	}
	);
}
/*
function	Screen_User_showGroupLatest(groupid)
{

document.getElementById("resultsdiv").innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
treelzsystem.treelersocial.getGroupUsersWithLatestMessages(get_number_users,groupid,function(usrs)
{
Screen_User_fillLatestUserDiv(usrs)
}
);
//TODO	setSelectGroupID(groupid)
}
*/
function	fill_treelerz_new(number, start)
{
	var TargetDiv = document.getElementById("targetdiv_overview");
	document.getElementById("targetdiv_overview").innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	var scroll_left_view = document.getElementById("scroll_left_view");
	var scroll_right_view = document.getElementById("scroll_right_view");
	start = parseInt(start);
	newstart = start + number;
	otherway = start - number;
	if (otherway < 0) 
	{
		otherway = 0
	}
	if (start == 0) 
	{
	start = "0";
	}
	treelzsystem.users.getLatestUsers(number,start,function(usrs, rows)
	{
		Screen_User_fillLatestUserDiv(usrs)
		if (start != "0") 
		{
			scroll_left_view.innerHTML = "<a class=\"scroll_left_a_bg\"></a><a class=\"scroll_left_a\" href='javascript:fill_treelerz_new("+number+","+otherway+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"17\"	height=\"16\"alt=\"\"></a>";
		}
		else 
		{ 
			scroll_left_view.innerHTML = ""; 
		}
		if (rows == number) 
		{
			scroll_right_view.innerHTML = " <a class=\"scroll_right_a_bg\"></a><a class=\"scroll_right_a\" href='javascript:fill_treelerz_new("+number+","+newstart+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"17\"	height=\"16\"alt=\"\"></a>";
		}
	}
	);
}
function	fill_treelerz_all(number, start)
{
	var TargetDiv = document.getElementById("targetdiv_overview");
	document.getElementById("targetdiv_overview").innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	var scroll_left_view = document.getElementById("scroll_left_view");
	var scroll_right_view = document.getElementById("scroll_right_view");
	start = parseInt(start);
	newstart = start + number;
	otherway = start - number;
	if (otherway < 0) 
	{
		otherway = 0
	}
	if (start == 0) 
	{
		start = "0";
	}
	treelzsystem.users.getUsersWithLatestMessages(number,start,"treelerz",function(usrs, rows)
	{
		Screen_User_fillLatestUserDiv(usrs)
		if (start != "0") 
		{
			scroll_left_view.innerHTML = "<a class=\"scroll_left_a_bg\"></a><a class=\"scroll_left_a\" href='javascript:fill_treelerz_all("+number+","+otherway+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"17\"	height=\"16\"alt=\"\"></a>";
		}
		else 
		{
			scroll_left_view.innerHTML = ""; 
		}
		if (rows == number) 
		{
			scroll_right_view.innerHTML = "<a class=\"scroll_right_a_bg\"></a><a class=\"scroll_right_a\" href='javascript:fill_treelerz_all("+number+","+newstart+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"17\"	height=\"16\"alt=\"\"></a>";
		}
	}
	);
}
function	fill_treelerz_friends(number, start)
{
	var TargetDiv = document.getElementById("targetdiv_overview");
	document.getElementById("targetdiv_overview").innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	var scroll_left_view = document.getElementById("scroll_left_view");
	var scroll_right_view = document.getElementById("scroll_right_view");
	start = parseInt(start);
	newstart = start + number;
	otherway = start - number;
	if (otherway < 0) 
	{
		otherway = 0
	}
	if (start == 0) 
	{
		start = "0";
	}
	
	treelzsystem.treelersocial.getGroupUsersWithLatestMessages(number,start,null,function(usrs, rows)
	{
		Screen_User_fillLatestUserDiv(usrs)
		if (start != "0") 
		{
			scroll_left_view.innerHTML =" <a class=\"scroll_left_a_bg\"></a><a class=\"scroll_left_a\" href='javascript:fill_treelerz_friends("+number+","+otherway+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"17\"	height=\"16\"alt=\"\"></a>";
		}
		else 
		{ 
			scroll_left_view.innerHTML = ""; 
		}
		if (rows == number) 
		{
			scroll_right_view.innerHTML = " <a class=\"scroll_right_a_bg\"></a><a class=\"scroll_right_a\" href='javascript:fill_treelerz_friends("+number+","+newstart+")'><img	src=\"images/knoppen-titels/empty_icons/empty_1x1.gif\"	width=\"17\"	height=\"16\"alt=\"\"></a>";
		}
	}
	);
}
function	Screen_User_fillLatestUserDiv(usrs)
{
	var	maxi	=	number_long;
	var current_users	=	usrs
	if(kortelijst)
	{
		maxi	=	number_short;
	}
	var	resultsdiv=	document.getElementById("targetdiv_overview")
		resultsdiv.innerHTML	=	''
	var	counter	=	0;
	if(usrs.length==0)
	{
		resultsdiv.innerHTML	=	'<br>'+getTrans.Translate("no_search_results")
	}
	for(nr	in	usrs)
	{
		if(counter	>=	maxi)	return	true;
		counter++
		var	usr	=	usrs[nr]
		var	new_usrdiv	=	document.createElement('div');
		new_usrdiv.setAttribute('className',"friendscard");
		new_usrdiv.setAttribute('class',"friendscard");
		if(usr	&&	usr.id)
		{
			resultsdiv.appendChild(new_usrdiv);
			if(kortelijst)
			{
				Screen_user_fillShortFriendCard(usr,new_usrdiv)
			}
			else
			{
				Screen_User_fillDetailFriendCard(usr,new_usrdiv)
			}
		}
	}
}
function	Screen_User_fillDetailFriendCard(usr,resdiv)
{
	var	new_userpicture_div	=	document.createElement('div');
		new_userpicture_div.id	=	"fc-userpicture"
	resdiv.appendChild(new_userpicture_div)
	var	new_userpicture_a	=	document.createElement('a');
		new_userpicture_a.href="javascript:Screen_InitSideBarUserProfile("+usr.id+")"
		new_userpicture_div.appendChild(new_userpicture_a)
	var	new_userpicture_img	=	document.createElement('img');
		new_userpicture_img.src=''+baseurl	+'imageshow.php?thumb=true&w=60&imageid='+usr.picture_id+'';
		new_userpicture_img.border="0"
		new_userpicture_a.appendChild(new_userpicture_img)
	var	new_username_div	=	document.createElement('div');
		new_username_div.id	=	"fc-username"
	resdiv.appendChild(new_username_div)
	var	new_name_a	=	document.createElement('a');
		new_name_a.href="javascript:Screen_InitSideBarUserProfile("+usr.id+")"
	new_username_div.appendChild(new_name_a)
		new_name_a.innerHTML	=	usr.firstname	+	"	"	+	usr.lastname 
	var	new_messages_div	=	document.createElement('div');
		new_messages_div.id="fc-messages"
	resdiv.appendChild(new_messages_div)
		new_messages_div.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	usr.getLatestMessages(4,1,function(notemsgs)	//	number,	type
	{
		new_messages_div.innerHTML	=	''
		for(notemsgnr	in	notemsgs)
		{
			var	notemsg	=	notemsgs[notemsgnr]
			var	new_note_a	=	document.createElement('a');
			new_note_a.setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+notemsg.id+')')
			title	=		notemsg.title
			if(title	==	'')
			{
				title	=	'Message	'	+	notemsg.id
			}
			new_note_a.innerHTML	=	title
			new_messages_div.appendChild(new_note_a)
			new_messages_div.appendChild(document.createElement('br'))
		}
	}
	);
	var	new_fotos_div	=	document.createElement('div');
		new_fotos_div.id="fc-pictures"
	resdiv.appendChild(new_fotos_div)
		new_fotos_div.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	usr.getLatestMessages(6,4,function(fotomsgs)	//	number,	type
	{
		new_fotos_div.innerHTML	=	''
		for(fotomsgnr	in	fotomsgs)
		{
			fotomsg	=	fotomsgs[fotomsgnr]
			var	newdiv	=	document.createElement('div');
			newdiv.setAttribute('class',"smallthumb")
			newdiv.setAttribute('className',"smallthumb")
			newdiv.setAttribute('msgid',fotomsg.id)
			var	newa	=	document.createElement('a');
			newdiv.appendChild(newa);
			newa.setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+fotomsg.id+')')
			var	newimage	=	createElement(newa,"thumb_img",null,'img')
			newimage.setAttribute('border','0')
			newimage.setAttribute('src',''+baseurl	+'imageshow.php?thumb=true&h=60&w=60&imageid='+fotomsg.picture_id+'')
			newimage.setAttribute('width','56')
			newimage.setAttribute('height','42')
			new_fotos_div.appendChild(newdiv)
		}
	}
	);
}
function clear_scroll_overview()
{
	var scroll_left_view = document.getElementById("scroll_left_view");
		scroll_left_view.innerHTML = ''
	var scroll_right_view = document.getElementById("scroll_right_view");									
		scroll_right_view.innerHTML = ''				
}
/*t_points.js*/


var	testapple	=	''

function testapple_or_not()
{
	if (BrowserDetect.browser == "Firefox")
	{
		testapple	=	true
	}
	else
	{
		testapple	=	false
	}
}



var	number_gettingstarted	=	1
var tags_value = 1 
var groups_value = 1
var advanced_options_div_add = false
var add_pictures_div_add = false
var add_groups_div_add = false
var advanced_options_div_edit = false
var add_pictures_div_edit = false
var add_groups_div_edit = false

		function	load_content_help()
		{
				clickedon_help()
				
				var	thediv	=	document.getElementById("clientarea_inner_help")
				var	thediv_outer	=	document.getElementById("frame_help")
				thediv_outer.innerHTML	=	'';

				if(treelzsystem.treelersocial)
				{
						treelzsystem.treelersocial.getSetting('show_gettingstarted',function(setting)
						{
								var	do_not_show_box		=	createElement(thediv_outer,"do_not_show_box","do_not_show_box_help",'div')
								do_not_show_box.innerHTML	=	"<input	onClick='changeGettingStarted_Startup(this)'	type=\"checkbox\"	id='gettingstartedcheckbox'	/>"+getTrans.Translate("Show_on_startup")
								if(setting	==	0)		//	getting	started
								{
										document.getElementById('gettingstartedcheckbox').checked	=	false
								}
								else
								{
										document.getElementById('gettingstartedcheckbox').checked	=	true
								}
						}
						);
				}
				if(getTrans.Translate("language_selected")	==	"NL")
				{
						fill_help_container(thediv,	"nl")
				}
				else
				{
						fill_help_container(thediv,	"en")
				}
				fill_help_buttons(thediv_outer)
				show_getting_started(1)
				show_container("_help")
				center_container("_help")
		}

		function	changeGettingStarted_Startup(checkbox)
		{
				var	value_gettingstarted	=	"0"
				if(treelzsystem.treelersocial)
				{
						treelzsystem.treelersocial.getSetting('show_gettingstarted',function(setting)
						{
								if(setting	==	0)
								{
										value_gettingstarted	=	1
								}
								else
								{
										value_gettingstarted	=	"0"
								}
						}
						);
				}
				if(treelzsystem.treelersocial)
				{
						treelzsystem.treelersocial.setSetting('show_gettingstarted',value_gettingstarted,function(setting)
						{
						}
						);
				}
		}
		function	fill_help_container(thediv,	lang)
		{
				thediv.innerHTML	=	''
				var	gettingstarted_1		=	createElement(thediv,"gettingstarted_1_"+lang,"gettingstarted_1",'div')
				var	all_links_gt		=	createElement(gettingstarted_1,"all_links_gt","all_links_gt",'div')
				var	link_gt_1		=	createElement(all_links_gt,"link_gt",null,'a')
				link_gt_1.innerHTML	=	"<img	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"250\"	height=\"36\">"
				link_gt_1.href	=	"javascript:show_getting_started(2)"
				var	link_gt_2		=	createElement(all_links_gt,"link_gt",null,'a')
				link_gt_2.innerHTML	=	"<img	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"250\"	height=\"32\">"
				link_gt_2.href	=	"javascript:show_getting_started(3)"
				var	link_gt_3		=	createElement(all_links_gt,"link_gt",null,'a')
				link_gt_3.innerHTML	=	"<img	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"250\"	height=\"32\">"
				link_gt_3.href	=	"javascript:show_getting_started(4)"
				var	link_gt_4		=	createElement(all_links_gt,"link_gt",null,'a')
				link_gt_4.innerHTML	=	"<img	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"250\"	height=\"32\">"
				link_gt_4.href	=	"javascript:show_getting_started(5)"
				var	link_gt_5		=	createElement(all_links_gt,"link_gt",null,'a')
				link_gt_5.innerHTML	=	"<img	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"250\"	height=\"32\">"
				link_gt_5.href	=	"javascript:show_getting_started(6)"
				var	link_gt_6		=	createElement(all_links_gt,"link_gt",null,'a')
				link_gt_6.innerHTML	=	"<img	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"250\"	height=\"37\">"
				link_gt_6.href	=	"javascript:show_getting_started(7)"

				var	gettingstarted_2		=	createElement(thediv,"gettingstarted_2_"+lang,"gettingstarted_2",'div')
				var	gettingstarted_3		=	createElement(thediv,"gettingstarted_3_"+lang,"gettingstarted_3",'div')
				var	gettingstarted_4		=	createElement(thediv,"gettingstarted_4_"+lang,"gettingstarted_4",'div')
				var	gettingstarted_5		=	createElement(thediv,"gettingstarted_5_"+lang,"gettingstarted_5",'div')
				var	gettingstarted_6		=	createElement(thediv,"gettingstarted_6_"+lang,"gettingstarted_6",'div')
				var	gettingstarted_7		=	createElement(thediv,"gettingstarted_7_"+lang,"gettingstarted_7",'div')

		//		change_darkness_bg(85,	"_help")
		}
		function	fill_help_buttons(thediv_outer)
		{
				var	scroll_arrows_gt	=	createElement(thediv_outer,"scroll_arrows_gt","scroll_arrows_gt",'div')
				var	str	="<a	id=\"page_count\"></a><a	id=\"scroll_left_a_bg_gt\"	class=\"scroll_left_a_bg\"></a><a	id=\"scroll_left_a_gt\"	class=\"scroll_left_a\"><img	id=\"scroll_left_a_img_gt\"	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"17\"	height=\"16\"	onClick=\"show_getting_started_left()\"></a>&nbsp;&nbsp;&nbsp;<a	id=\"scroll_right_a_bg_gt\"	class=\"scroll_right_a_bg\"></a><a	id=\"scroll_right_a_gt\"	class=\"scroll_right_a\"><img	id=\"scroll_right_a_img_gt\"	src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"17\"	height=\"16\"	onClick=\"show_getting_started_right()\"></a>"
				scroll_arrows_gt.innerHTML	=	str
		}
		function	show_getting_started_left()
		{
				if(number_gettingstarted	>	1)
				{
						hide_all_gettingstarted()
						number_gettingstarted	=	number_gettingstarted	-	1
						urls.AddVariable("H", number_gettingstarted);
						urls.UpdateURL();
						show_getting_started(number_gettingstarted)
				}
		}
		function	show_getting_started_right()
		{
				if(number_gettingstarted	<	7)
				{
						hide_all_gettingstarted()
						number_gettingstarted	=	number_gettingstarted	+	1
						urls.AddVariable("H", number_gettingstarted);
						urls.UpdateURL();
						show_getting_started(number_gettingstarted)
				}
		}
		function	show_getting_started(number)
		{
				urls.AddVariable("H", number);
				urls.UpdateURL();
				number_gettingstarted	=	number
				hide_all_gettingstarted()
				var	selected_getting_started	=	document.getElementById("gettingstarted_"+number)
				selected_getting_started.style.visibility	=	"inherit"
				var	page_count	=	document.getElementById("page_count")
				page_count.innerHTML	=	number+"	/	7"
				page_count.href	=	"javascript:show_getting_started(1)"
				if(number	==	1){document.getElementById("scroll_left_a_bg_gt").style.visibility = "hidden"}
				else{document.getElementById("scroll_left_a_bg_gt").style.visibility = "inherit"}
				if(number	==	7){document.getElementById("scroll_right_a_bg_gt").style.visibility = "hidden"}
				else{document.getElementById("scroll_right_a_bg_gt").style.visibility = "inherit"}
		}
		function	hide_all_gettingstarted()
		{
				document.getElementById("gettingstarted_1").style.visibility	=	"hidden"
				document.getElementById("gettingstarted_2").style.visibility	=	"hidden"
				document.getElementById("gettingstarted_3").style.visibility	=	"hidden"
				document.getElementById("gettingstarted_4").style.visibility	=	"hidden"
				document.getElementById("gettingstarted_5").style.visibility	=	"hidden"
				document.getElementById("gettingstarted_6").style.visibility	=	"hidden"
				document.getElementById("gettingstarted_7").style.visibility	=	"hidden"
		}
		function	hide_buttons_gt()
		{
				document.getElementById("scroll_left_a_bg_gt").style.visibility	=	"hidden"
				document.getElementById("scroll_right_a_bg_gt").style.visibility	=	"hidden"
		}
		function	Screen_ZoomToLatLng(lat,lng)
		{
				zoomlevel	=	Math.round(mapsystem.map.getZoom()	*	1.5)
				var	center	=	new	GLatLng(lat,		lng)
				mapsystem.map.panTo(center)
				mapsystem.map.setZoom(zoomlevel)
		}
		function	tooltip_zoom_clicked(locid)
		{
				var	zoomlevel	=	14
				if(mapsystem.map.getZoom()	>=	zoomlevel)	zoomlevel	=	Math.round(mapsystem.map.getZoom()	*	1.3)
				mapsystem.map.setZoom(zoomlevel)
				mapsystem.centerOnLocation(locid)
		}
		function	tooltip_center_clicked(locid)
		{
				mapsystem.centerOnLocation(locid)
		}
		function	tooltip_details_clicked(locid)
		{
				Screen_ShowLocationDetails(locid)
		}
		function	Screen_ShowMessageDetails_from_container(messageid,attachedload)
		{
				show.Flush();
				mapsystem.getMessage(messageid,function(msg)
				{
						//show.addPictures(msg);
						if(document.getElementById("frame_loc"))
						{
								if(document.getElementById("frame_loc").style.visibility == "inherit")
								{
										Screen_ShowLocationDetails(msg.location_id)
								}
						}
						mapsystem.centerOnLocation(msg.location_id)
						Screen_ShowMessageDetails(msg.id,attachedload, msg.location_id, true)
				}
				);
		}


function	load_content_msg(messageid,attachedload)
		{
			
			
			tags_value = 1
			groups_value = 1

			
				urls.AddVariable("M", messageid);
				urls.UpdateURL();
				
				var	thediv_outer	=	document.getElementById("frame_msg")
				thediv_outer.innerHTML	=	'';

				var	thediv	=	document.getElementById("clientarea_inner_msg")
				thediv.innerHTML	=		'<img	src="images/indicator.gif"	alt="">'

				mapsystem.getMessage(messageid,function(msg)
				{


						clickedon_message(msg)
						
						thediv.innerHTML	=		'<div></div>'
						var	thejgroups_div	=	createElement(thediv,'',"message_show_groups_divss","div")
						var	theaddtogroups_div	=	createElement(thediv,'',"message_add_groups_divss","div")

						for(i	in	msg.attached_to_messages_ids)
						{
								Screen_ShowMessageDetails(msg.attached_to_messages_ids[i],msg.id)
								return
						}

						var	personalcard_div	=	createElement(thediv,"personalcard-mes","personalcard-mes",'div')
						Screen_ShowMessageDetails_FillMainUser(personalcard_div,msg.userid,	msg)

						var	message_div	=	createElement(thediv,"message","message",'div')

						var	att_messages_outer	=	createElement(thediv,"att_messages_outer","att_messages_outer",'div')

						Screen_ShowMessageDetails_FillAttMessages	(att_messages_outer,	msg)

						var	center_att_message_picture_div	=	createElement(thediv,null,null,'center')

						var	att_message_picture_div	=	createElement(center_att_message_picture_div,"picture-mes","message_attached_picture_div",'div')
						if(attachedload)
						{
								Screen_ShowMessageDetails_AttachedPicture(attachedload)
						}
						var	replies_div	=	createElement(thediv,"replies_div","replies_div",'div')
						Screen_ShowMessageDetails_FillReplies(replies_div,msg,	msg.userid)

						var	do_a_reply_div	=	createElement(thediv,"do_a_reply_div","do_a_reply_div",'div')

						//	hide_container("_msg", true, null, msg.location_id)
						show_container("_msg", msg.location_id)
						var	buttons_msg_div		=	document.getElementById("buttons_msg_div")
						buttons_msg_div.style.visibility = "inherit"
						Screen_ShowMessageDetails_FillButtonsBottom(buttons_msg_div,	msg)

						Screen_ShowMessageDetails_FillMainMessage(message_div,	msg,msg.userid,	thediv_outer)
		//			if(treelzsystem.treelersocial)
		//			{
		//					thejgroups_div.innerHTML = "<a href=\"javascript:Screen_MessageDetailsShowGroups('message_show_groups_divss',"+msg.id+")\">laat de groupen zien ARJEN TRANS</a>";
		//					theaddtogroups_div.innerHTML = "<a href=\"javascript:Screen_MessageAddToGroups('message_add_groups_divss',"+msg.id+")\">add to groups ARJEN TRANS</a>";
		//			}
				}
				);
		}
		function Screen_MessageDetailsShowGroups(divname,msgid)
		{
				mapsystem.getMessage(msgid,function(msg)
				{
						var thediv = document.getElementById(divname)
							thediv.innerHTML = ''
						for(i in msg.group_ids)
						{
								var grpid = msg.group_ids[i]
								mapsystem.groups.getGroup(grpid,function(grp)
								{
										if(grp.type < 2 && grp.id != 1)
										{
												var group_div	=	createElement(thediv,null,null,'div')
												group_div.innerHTML = '<a href="javascript:Screen_ShowGroupDetails('+grp.id+')">'+grp.name +'</a><br>'
										}
								}
								);
						}
				}
				);
		}
		function Screen_MessageAddToGroups(divname,msgid)
		{
			 var msgcacher	=	getMessageCacher();									
							
			 msgcacher.getMessage(msgid,function(msg)
			 {
        				mapsystem.groups.getGroupUsersCanAdd(treelzsystem.treelersocial.user.id,	function(grps)
        				{
        						var thediv = document.getElementById(divname)
        						thediv.innerHTML = 'Voeg bericht toe aan group:ARJEN TRANS<br>'
        						for(i	in	grps)
        						{
        								var	thegropu	=	grps[i];
        								if(thegropu.type == 0)
										{
  												 	if(msg.group_ids[1]) 
  												 	{
													 // public, dus mag // TODO: wat als niet global maar wel global group?
														 thediv.innerHTML += '<a href="javascript:Screen_AddMessageToGroup('+msgid+','+thegropu.id+')"> '+thegropu.name+','+thegropu.id+'</a><br>';
  												 	}
  													else if(msg.userid == treelzsystem.treelersocial.user.id)
  												 	{ 
												 // mijn bericht
													thediv.innerHTML += '<a href="javascript:Screen_AddMessageToGroup('+msgid+','+thegropu.id+')"> '+thegropu.name+','+thegropu.id+'</a><br>';
													}	
													else
													{
														 // NOT!!! 
												 	thediv.innerHTML += 'This message can not be added to ['+thegropu.name+','+thegropu.id+'<br>';
													}
										} 
        						}
        				}
        				);
				}
				);
		}
		function Screen_AddMessageToGroup(msgid,groupid,callback)
		{
				mapsystem.groups.getGroup(groupid,function(group)
				{
						group.addMessage(msgid,function(response)
						{
						    if(callback)
								{
								  callback(true)
								}
								else
								{
  								debug('response van bericht aan groep toevoegen'+response);
  								alert('Message added');
								}
						}
						)
				}
				);
		}
		function Screen_RemoveMessageFromGroup(msgid,groupid,callback)
		{
	//		debug('remove msg ' +msgid + ' ' + groupid)
				mapsystem.groups.getGroup(groupid,function(group)
				{
			//	debug('got group, now remove the msg')
						group.removeMessage(msgid,function(response)
						{
						    if(callback)
								{
								  callback(true)
								}
								else
								{
  								debug('response van bericht aan groep verwijdren'+response);
  								alert('Message deleted');
								}
						}
						)
				}
				);
		}
		function	Screen_ShowMessageDetails_FillMainUser(thediv,	userid,	msg)
		{
				thediv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
				treelzsystem.users.getUser(userid,true,function(user)
				{
					if(user.firstname)
					{
						thediv.innerHTML	=	''

						var	date_div	=		document.createElement('div')
						date_div.id="date-mes"
						date_div.setAttribute('class',"date-mes")
						date_div.setAttribute('className',"date-mes")

						msg.getDate(function(date)
						{
								date_div.innerHTML	=		date
						}
						);
						thediv.appendChild(date_div)

						var	category_div	=	createElement(thediv,"category_div","category_div",'div')

						mapsystem.message_categories.getCategory(msg.category,function(cat)
						{
								category_div.innerHTML	='<img	src="'+cat.icon_url+'"	height="10">	'	+	cat.name
						}
						);
						var	tag_groups_titel_div	=	createElement(thediv,"tag_groups_titel_div","tag_groups_titel_div",'div')
						
						
						if(msg.group_ids.length > 2)
						{
							fill_groups_msg(msg, thediv, tag_groups_titel_div)
						}
						
						if(msg.tag_ids.length > 1)
						{
							fill_tags_msg(msg, thediv, tag_groups_titel_div)
						}
						
						

						var	userpicture_div	=	createElement(thediv,"userpicture-pc-mes","userpicture-pc-mes",'div')
						Screen_AddClickableUserImageToDiv(userpicture_div,user)
						var	name_div	=	createElement(thediv,"userinfo-pc-mes","userinfo-pc-mes",'div')

						var	name_a	=	createElement(name_div,"username-pc-mes","username-pc-mes",'a')
						name_a.href="javascript:Screen_InitSideBarUserProfile("+user.id+")"
						name_a.innerHTML	=user.firstname	+	'	'	+user.lastname
						name_a.title	=	getTrans.Translate("title_username")

						name_div.appendChild(document.createElement('br'))

						var	button_div		=	createElement(thediv,"userprofile-pc-mes","userprofile-pc-mes",'div')
					}
					else
					{
						show_treelz_alert("alert_undefined_messages")
					}
					
				}
				);
		}
		function fill_tags_msg(msg, thediv, tag_groups_titel_div)
		{
				var	br_element	=	createElement(tag_groups_titel_div,null,null,'br')
			
				var	tag_titel_a	=	createElement(tag_groups_titel_div,"tag_titel_a","tag_titel_a",'a')
					tag_titel_a.href = "javascript:show_tags_msg()"
					tag_titel_a.innerHTML = "Tags"
		
				var	tag_content_div	=	createElement(thediv,"tag_content_div","tag_content_div",'div')
		
				for(i	in	msg.tag_ids)
				{
						var	tagid	=	msg.tag_ids[i]
						var	tag_div	=	createElement(tag_content_div,null,null,'div')
						Screen_FillElementWithTag(tag_div,tagid)
				}
	
		}
		function show_tags_msg()
		{
				if(tags_value == 1)
				{
						make_div_inherit("tag_content_div")
						tags_value = 2
						make_div_hidden("groups_content_div")
						groups_value = 1

				}
				else
				{
						make_div_hidden("tag_content_div")
						tags_value = 1
				}
		}
		function fill_groups_msg(msg, thediv, tag_groups_titel_div)
		{
			  var grpids = msg.group_ids;
				var aantal = 0;
				for(i in grpids)
				{
				  if(grpids[i] > 1) aantal = aantal + 1;
				}	
				var	groups_titel_a	=	createElement(tag_groups_titel_div,"groups_titel_a","groups_titel_a",'a')
					groups_titel_a.href = "javascript:show_groups_msg()"
					
					if(aantal == 1)
					{
						groups_titel_a.innerHTML = "" + aantal +" group"
					}
					else
					{
						groups_titel_a.innerHTML = "" + aantal +" groups"
					}
		
				var	groups_content_div	=	createElement(thediv,"groups_content_div","groups_content_div",'div')
		
				Screen_MessageDetailsShowGroups('groups_content_div', msg.id) 
	
		}
		function show_groups_msg()
		{
				if(groups_value == 1)
				{
						make_div_inherit("groups_content_div")
						groups_value = 2
						if(document.getElementById("tag_content_div"))
						{
								make_div_hidden("tag_content_div")
								tags_value = 1
						}
				}
				else
				{
						make_div_hidden("groups_content_div")
						groups_value = 1
				}
		}


		function	Screen_FillElementWithTag(tag_element,tagid)
		{
				treelzsystem.tags.getTag(tagid,	function(tg)
				{
						tag_element.innerHTML	=	tg.tag
				}
				);
		}
		function replace_space_to_br(text)
		{
				return text.replace(/\r\n|\r|\n/g,	"<br>");;
		}
		String.prototype.searchByArray = function (elements)
		{
				var antwoord = -1
				for (var nr in elements)
				{
						var value= elements[nr]

						var positie = this.search(value)
						if(antwoord == -1 && positie != -1)
						{
								antwoord = positie
						}
						else
						{
								if(positie <= antwoord  && positie != -1)
								{
										//alert(positie)
										antwoord = positie;
								}
						}
				}
				return antwoord;
		};
		function replace_http_to_link(text)
		{
				var httpplace = text.search('http://')
				if(httpplace != -1)
				{
						var firstpart = text.substring(0,httpplace)
						var temppart = text.substring(httpplace)
						var splitplace = temppart.searchByArray(["<","\r","\n"," "]);
						/*
						var splitplace  = temppart.search('<')
						if(splitplace == -1 || temppart.search("\r") < splitplace) splitplace  = temppart.search("\r")
						if(splitplace == -1  || temppart.search("\n") < splitplace) splitplace  = temppart.search("\n")
						if(splitplace == -1  || temppart.search(" ") < splitplace) splitplace = temppart.search(' ')
						*/
						if(splitplace != -1)
						{
								var httppart = temppart.substring(0,splitplace)
								var lastpart = temppart.substring(splitplace)
						}
						else
						{
								var httppart = temppart
								var lastpart = ''
						}
						var replaceding = replace_www_to_link(firstpart) + '<a class="greylink" target="_blank" href="'+httppart+'">'+httppart+'</a>'+replace_http_to_link(lastpart)
						return replaceding
				}
				return replace_www_to_link(text)
		}
		function replace_www_to_link(text)
		{
				var httpplace = text.search('www.')
				if(httpplace != -1)
				{
						var firstpart = text.substring(0,httpplace)
						var temppart = text.substring(httpplace)
						/*
						var splitplace  = temppart.search('<')
						if(splitplace == -1 || temppart.search("\r") < splitplace) splitplace  = temppart.search("\r")
						if(splitplace == -1  || temppart.search("\n") < splitplace) splitplace  = temppart.search("\n")
						if(splitplace == -1  || temppart.search(" ") < splitplace) splitplace = temppart.search(' ')
						*/
						var splitplace = temppart.searchByArray(["<","\r","\n"," "]);
						if(splitplace != -1)
						{
								var httppart = temppart.substring(0,splitplace)
								var lastpart = temppart.substring(splitplace)
						}
						else
						{
								var httppart = temppart
								var lastpart = ''
						}
						var replaceding = replace_http_to_link(firstpart) + '<a class="greylink" target="_blank" href="http://'+httppart+'">'+httppart+'</a>'+replace_http_to_link(lastpart)
						return replaceding
				}
				return text
		}
		function	Screen_ShowMessageDetails_FillMainMessage(message_div,	msg,	userid,	thediv_outer)
		{
				treelzsystem.users.getUser(userid,true,function(user)
				{
						if(msg.type	==	4)
						{
								var	picture_div	=		document.getElementById("message_attached_picture_div");
								picture_div.style.height	=	210

								var	picture_a	=	document.createElement('a')
								picture_a.href	=	"javascript:show_large_picture("+msg.picture_id+")"
								picture_div.appendChild(picture_a)


								var	picture_img	=		document.createElement('img')
								picture_img.src=baseurl+	'imageshow.php?thumb=true&h=210&w=300&imageid='+msg.picture_id+'';
								picture_img.title	=	getTrans.Translate("title_normal_pic")
								picture_img.border="0"
								picture_a.appendChild(picture_img)
						}
						var	main_div	=		document.createElement('div')
						main_div.id="info-mes"
						main_div.setAttribute('class',"info-mes")
						main_div.setAttribute('className',"info-mes")
						message_div.appendChild(main_div)
						
						var	comment_span	=	createElement(message_div,"comment_mes","comment_mes",'span')

						if(msg.type<5)
						{
								msg.getText(function(text)
								{
										var text2 = replace_space_to_br(text)
										var text3 = replace_http_to_link(text2)
										comment_span.innerHTML		=	text3

										my_own_BuildFunc("_msg")
								}
								);
						}
						else
						{
								if(msg.type == 9)
								{
										debug('wiki: do language if possible')
										Wiki_DownloadArticle(msg.title,'nl',function(wikitext)
										{
												comment_span.innerHTML		=	unescape(wikitext)
												my_own_BuildFunc("_msg")
										}
										)
								}
						}
						message_div.appendChild(comment_span)
							if(treelzsystem.treelersocial)
							{
								create_clickable_icon("buttons_center_msg_div", "add_to_group", "icon_add_to_group", "javascript:Message_Edit_add_group("+msg.id+")",  "title_show_location_info", null,  "right", 6, option_b_o, option_f_o)
							}
						if(msg.userid	==	loggedin_id)
						{
								var	buttons_msg_div	=	document.getElementById("buttons_msg_div")

					//			var	edit_a_div	=	createElement(buttons_msg_div,"edit_a_div","edit_a_div",'div')
						
						create_clickable_icon("buttons_center_msg_div", "delete_msg", "icon_delete", "javascript:Delete_Message("+msg.id+")",  "title_delete_message", null,  "right", 6, option_b_o, option_f_o)
						create_clickable_icon("buttons_center_msg_div", "edit_msg", "icon_edit", "javascript:Message_Edit("+msg.id+")",  "title_edit_message", null,  "right", 6, option_b_o, option_f_o)
						}
				}
				);
				var	message_div_test	=	document.getElementById("message");
		}
		function	Screen_ShowUnshowRepliesDiv(messageid)
		{
				var	do_a_reply_div	=	document.getElementById('do_a_reply_div')

				mapsystem.getMessage(messageid,function(msg)
				{
						if(treelzsystem.treelersocial)
						{
								var	fill_str	=	''

								fill_str	+=	'<div	id="thereplyfieldsdiv"><div	id="closereply"><a	class="closebutton_a"	href="javascript:close_reply()"><img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="16"	height="16"		alt=""></a></div>';
								fill_str	+=	'<div	class="hiddendiv"><input	id="reply_title_input"	type="text"	name="userid"	size="30"	value=""	/></div><br	/>';
								fill_str	+=	''	+	getTrans.Translate("reaction")	+	':<br	/>';
								fill_str	+=	'<textarea	id="reply_comment"	class="input_general_text"	rows="3"	cols="44"	name="comment"><\/textarea><br	/>';
								fill_str	+=	'<input	type="hidden"	id="reply_to_id"	value="'+msg.id+'">';
								fill_str	+=	'<br><input	id="reply_inputsubmit"	class="input_general"	onclick="javascript:Screen_Add_Reply_Submit('+msg.id+')"	type="button"	value="'	+	getTrans.Translate("place reaction")	+	'"	/>';
								fill_str	+=	'</div>';

								do_a_reply_div.innerHTML	=	fill_str;
						}
						else
						{
								show_treelz_alert("not_loggedin_reply")
						}
				}
				);
				my_own_BuildFunc("_msg")
		}
		function	close_reply()
		{
				var	do_a_reply_div	=	document.getElementById('do_a_reply_div')
				do_a_reply_div.innerHTML	=	'';
				my_own_BuildFunc('_msg')
		}
		function	Screen_Add_Reply_Submit(tomsgid)
		{
				debug("Screen_Add_Reply_Submit update old privacy!!")
				mapsystem.getMessage(tomsgid,function(msg)
				{
						var	comment_input	=	document.getElementById('reply_comment')
						var	title_input	=	document.getElementById('reply_title_input')
						var	inputsubmit	=	document.getElementById('reply_inputsubmit')
						inputsubmit.disabled	=	true
						title_input.disabled	=	true
						comment_input.disabled	=	true
						var	comment	=	comment_input.value
						var	title	=	title_input.value
						var	privacy	=	msg.privacy

						msg.saveReply(privacy,comment,title,function()
						{
								Screen_ShowMessageDetails(tomsgid)
						}
						)
				}
				);
		}
		function	Screen_ShowMessageDetails_FillAttMessages	(att_messages_outer,	msg)
		{
				var	att_messages_div	=	createElement(att_messages_outer,"att_messages","att_messages",'div')
				att_messages_div.style.height	=	0
				var	targetdiv_att_messages	=	createElement(att_messages_div,"targetdiv_att_messages","targetdiv_att_messages",'div')
				var	scroll_att_left	=	createElement(att_messages_div,"scroll_att_left","scroll_att_left",'div')
				var	scroll_att_right	=	createElement(att_messages_div,"scroll_att_right","scroll_att_right",'div')
				var	scroll_att_numbers	=	createElement(att_messages_div,"scroll_att_numbers","scroll_att_numbers",'div')

				as	=	new	UniversalScroller	(msg,	"targetdiv_att_messages",	"scroll_att_numbers",	msg_steps_attached,	"0",	5,msg_steps_attached_getamount, "scroll_att_left", "scroll_att_right", "as");
				as.Init("as");
		}
		function msg_steps_attached_getamount(object,callbackfunc)
		{
				object.getNumberOfAttached(callbackfunc)
				/*function(aantal)
				{

				callbackfunc(aantal);
				}
				);*/
		}
		function	msg_steps_attached(object,	start, amount,	callbackfunc)
		{
				// verwacht vier parametesr
				//	object: is wat je bij new Universal hebt opgegeven
				//	start: vanaf welk nummer (eerste is 0)
				//   amount: en welk aantal terug te geven
				//	callback func. een functie die een 'amount' html elements terug geeft te starten bij 'start' om in the scroll div te gooien

				document.getElementById("att_messages").style.height	=	50

				object.getAttachedMessages(function(att_messages)
				{
						//debug('terug uit get attachedmsgs');
						show.Flush();
						show.addPictures(att_messages);

						var	teller	=	0;
						var thesubsetatt_message	=	[]

						for(i in att_messages)
						{
								if(att_messages[i])
								{
										var	att_message	=	att_messages[i]
										if(teller	>=	start	&&	teller	<	start+amount)
										{
												thesubsetatt_message[i] = createElement(null,null,null,'a');
												thesubsetatt_message[i].setAttribute('href','javascript:Screen_ShowMessageDetails_AttachedPicture('+att_message.id+')')
												var	theimg	=	createElement(thesubsetatt_message[i],"thumb_img","thumb_img",'img')
												theimg.setAttribute('width','56')
												theimg.setAttribute('height','42')
												theimg.setAttribute('src','imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+att_message.picture_id)
										}
										teller	++;
								}
						}
						callbackfunc(thesubsetatt_message);
				}
				);
		}
		function	Screen_ShowMessageDetails_AttachedPicture(msgid)
		{
				var	thediv	=	document.getElementById("message_attached_picture_div")
				thediv.innerHTML	=		'<img	src="images/indicator.gif"	alt="">'
				mapsystem.getMessage(msgid,function(msg)
				{
						thediv.style.height	=	210

						thediv.innerHTML	=		''
						var	linkpicture	=	createElement(thediv,"picture-mes-a","picture-mes-a",'a')
						linkpicture.href="javascript:show_large_picture("+msg.picture_id+")"

						var	thepicture	=	createElement(linkpicture,"picture-mes","picture-mes",'img')
						thepicture.src	=	createimageshowUrl(msg.picture_id,true,210,280)
						thepicture.title	=	getTrans.Translate("title_normal_pic")
						thepicture.border="0"

						if(document.getElementById("outer_largepicture").style.visibility	==	"inherit")
						{
								show_large_picture(msg.picture_id)
						}
				}
				);
				my_own_BuildFunc("_msg")
		}
		function	Screen_ShowMessageDetails_FillReplies(replies_div,	msg,	userid)
		{
				//var	childs	=	msg.childs
				msg.getChildren(function(childs)
				{
						for(i	in	childs)
						{
								var	child	=	childs[i]
								var	personalcardreply_div	=	createElement(replies_div,"personalcard-reply","personalcard-reply",'div')

								Screen_ShowMessageDetails_FillReplyUser(personalcardreply_div,child.userid,	child)

								var	messagereply_div	=	createElement(replies_div,"message-reply","message-reply",'div')

								Screen_ShowMessageDetails_FillReplyMessage(messagereply_div,child,	child.userid)
						}
				}
				);
		}
		function	Screen_ShowMessageDetails_FillReplyMessage(message_div,msg,	userid)
		{
				if(msg.type	==	4)
				{
						var	picture_div	=		document.createElement('div')
						picture_div.id="picture-reply"
						picture_div.setAttribute('class',"picture-reply")
						picture_div.setAttribute('className',"picture-reply")
						message_div.appendChild(picture_div)

						var	picture_img	=		document.createElement('img')
						picture_img.src=baseurl+	'imageshow.php?thumb=true&h=300&w=300&imageid='+msg.picture_id+'';
						picture_img.border="0"
						picture_div.appendChild(picture_img)
						picture_img.title	=	getTrans.Translate("title_normal_pic")
				}
				var	name_br	=	createElement(message_div,null,null,'br')

				var	comment_span	=		document.createElement('span')
				comment_span.id="comment-reply"
				comment_span.setAttribute('class',"comment-reply")
				comment_span.setAttribute('className',"comment-reply")
				msg.getText(function(text)
				{
						comment_span.innerHTML	=	text.replace(/\r\n|\r|\n/g,	"<br>");
				}
				);
				message_div.appendChild(comment_span)
				
				
			my_own_BuildFunc("_msg") 
		}
		function	Screen_ShowMessageDetails_FillReplyUser(thediv,userid,	msg)
		{
				thediv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
				treelzsystem.users.getUser(userid,true,function(user)
				{
						thediv.innerHTML	=	''
						if(msg.userid	==	loggedin_id)
						{

								var	delete_reply_a	=		createElement(thediv,"delete_a","delete_reply_a",'a')
								delete_reply_a.innerHTML	=	'<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="15"	height="20"		alt="">'
								delete_reply_a.href	=	'javascript:delete_reply_yes_no('+msg.id+')'

						}
						var	userpicture_div	=		document.createElement('div');
						userpicture_div.id="userpicture-pc-reply"
						userpicture_div.setAttribute('class',"userpicture-pc-reply")
						userpicture_div.setAttribute('className',"userpicture-pc-reply")
						thediv.appendChild(userpicture_div)

						Screen_AddClickableUserImageToReply(userpicture_div,user)

						var	name_div	=		document.createElement('div');
						name_div.id="userinfo-pc-reply"
						name_div.setAttribute('class',"userinfo-pc-reply")
						name_div.setAttribute('className',"userinfo-pc-reply")
						thediv.appendChild(name_div)

						var	name_a	=	document.createElement('a');
						name_a.href="javascript:Screen_InitSideBarUserProfile("+user.id+")"
						name_a.setAttribute('class',"username-pc-mes")
						name_a.innerHTML	=user.firstname	+	'	'	+user.lastname
						name_div.appendChild(name_a)
						name_a.title	=	getTrans.Translate("title_username")

						name_div.appendChild(document.createElement('br'))

						var	date_div	=		document.createElement('div')
						date_div.id="date-reply"
						date_div.setAttribute('class',"date-reply")
						date_div.setAttribute('className',"date-reply")
						msg.getDate(function(date)
						{
								date_div.innerHTML	=		date
						}
						);

						thediv.appendChild(date_div)

						var	button_div	=		document.createElement('div');
						button_div.id="userprofile-pc-reply"
						button_div.setAttribute('class',"userprofile-pc-reply")
						button_div.setAttribute('className',"userprofile-pc-reply")
						thediv.appendChild(button_div)
						
						
					
				}
				);
				
			
		}
		function	delete_reply_yes_no(replyid)
		{
				var	prompt_res	=	confirm(getTrans.Translate("confirm_delete_reply"))

				if(prompt_res)
				{
						var	delete_reply_a	=	document.getElementById("delete_reply_a")
							delete_reply_a.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
						mapsystem.getMessage(replyid,function(msg)
						{
								var	parentid	=	msg.parent_id
								msg.removeThisMessae(true,function()
								{
										Screen_ShowMessageDetails(parentid)
								}
								);
						}
						);
				}
		}
		function	Screen_Attach_Extra_Photos(msgid)
		{
				if(testapple	||navigator.platform	==	'MacIntel'	||	navigator.platform	==	'MacPPC'	||		navigator.platform.substring(0,3).toLowerCase()	==	'mac')
				{
						upload_show_new_msg_id	=	msgid
						var	evalstr=	'window.frames.iframe_pics_'+iframecountertje+'.submitPictures('+msgid+',"'+sid+'")'
						eval(evalstr)
				}
				else
				{
								
						//	update	post	setttings
						var	params	=	new	Object();
						params['attach_to_msg']	=	msgid;
						params['sid']	=	sid;
						upload1.setPostParams(params);
						//	set	upload	id
						upload_show_new_msg_id	=	msgid
						//	start	upload
						//upload1.startUpload()
						
						
      				//	now	check	whether	empty	queue
      				var	allnone	=	true
      				for(i	in	fileobject_queue)
      				{
      						if(fileobject_queue[i]	==	true)
      						{
      								allnone	=	false
      						}
      				}
      
      				if(allnone)
      				{
      						Screen_Add_Message_SaveImages_After()
      				}
      				else
      				{
      						//	start	upload
      						upload1.startUpload()
      				}

				}
		}
		
		function	Screen_ShowMessageDetails_FillButtonsBottom(buttons_msg_div,	msg)
		{
			//	var	center	=	createElement(buttons_msg_div,null,null,'center')

		//		var	buttons_center_msg_div	=	document.getElementById("buttons_center_msg_div")
		
		create_clickable_icon("buttons_center_msg_div", "location", "icon_location", "javascript:show_location_from_msg("+msg.location_id+")",  "title_show_location_info", null,  "right", 6, option_b_o, option_f_o)
		
		create_clickable_icon("buttons_center_msg_div", "reply_msg", "icon_reply", "javascript:Screen_ShowUnshowRepliesDiv("+msg.id+")",  "title_react_on_message", null,  "right", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_msg_div", "zoom_in_msg", "icon_zoom_in", "javascript:tooltip_zoom_clicked("+msg.location_id+")",  "title_zoomin_location", null,  "right", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_msg_div", "center_msg", "icon_center", "javascript:tooltip_center_clicked("+msg.location_id+")",  "title_center_location", null,  "right", 3, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_msg_div", "zoom_out_msg", "icon_zoom_out", "javascript:zoomout()",  "title_zoomout_location", null,  "right", 3, option_b_o, option_f_o)
				
				
		}
		function	Message_AttachedMoreFotos(msgid)
		{
				iframecountertje	=	iframecountertje	+	1
				var	thediv	=	document.getElementById("clientarea_inner_msg")
				thediv.innerHTML	=	''
				var	message_edit_div	=	createElement(thediv,"message_edit_div","message_edit_div",'div')
					message_edit_div.innerHTML	=	getTrans.Translate("add_photos")

				fill_str_with_add_picture("message_edit_div")
				
				message_edit_div.innerHTML +='<br><input	id="inputsubmit"	class="input_general_submit"	onclick="javascript:Screen_Attach_Extra_Photos('+msgid+')"	type="button"	value="'	+	getTrans.Translate("add_extra_photos_to_message")	+'"	/>';

				my_own_BuildFunc("_msg")
		}

		function	Message_Submit_Update(msgid)
		{
				
				mapsystem.getMessage(msgid,function(message)
				{

						var	comment_input	=	document.getElementById('edit_comment')
						var	title_input	=	document.getElementById('edit_title_input')
						var	inputsubmit	=	document.getElementById('edit_inputsubmit')
						var	category	=	document.getElementById('input_cat_id_edit').value

						inputsubmit.disabled	=	true
						title_input.disabled	=	true
						comment_input.disabled	=	true
						var	comment	=	comment_input.value
						var	title	=	title_input.value

						
				var	privacy_public	=		document.getElementById('privacy_input_public')
				var	privacy_private	=		document.getElementById('privacy_input_private')
				var	privacy_friends	=		document.getElementById('privacy_input_friends')
				//var	privacy	=	4
				if(privacy_public.checked)	privacy	=	4
				if(privacy_private.checked)	privacy	=	5
				if(privacy_friends.checked)	privacy	=	1

				var groups_ids = add_message_get_groups();
				// now add the possible groups
				groups_ids[treelzsystem.treelersocial.basegroups.private] = true
				if(privacy == 1)
				{
						// friends
						groups_ids[treelzsystem.treelersocial.basegroups.friends] = true
				}
				else if(privacy == 4)
				{
						// public (also do friends then...)
						groups_ids[1] =true;
						groups_ids[treelzsystem.treelersocial.basegroups.public] = true
						groups_ids[treelzsystem.treelersocial.basegroups.friends] = true
				}
				else
				{
						// private
						// is always added // see above						
				}
						// now compare groups				
						// what was in orignal & no more
						debug("what was in orignal & no more");
						for(i in message.group_ids)
						{
						   var grpid = message.group_ids[i]
							 if(groups_ids[grpid])
							 {
							  //  both in orignal ass new
								// debug('both in lold en niew gorup ' + grpid + ' from messge ' + message.id);	
							 }
							 else
							 {
							   // was in original, no more
								 // REMOVE
								// debug('todo remove gorup ' + grpid + ' from messge ' + message.id);								 
								 Screen_RemoveMessageFromGroup(message.id,grpid,function(x){});		 
							 }						
						}
						
						// what was not in original & is now
						//debug("what was not in original & is now")
						for(i in groups_ids)
						{
						   var grpid = i
							 if(message.group_ids[grpid])
							 {
							  // both in new and original
							 }
							 else
							 {
							   // was in not original, but is now
								 // add						
								  Screen_AddMessageToGroup(message.id,grpid,function(x){});		 
								 //debug('todo add gorup ' + grpid + ' to messge ' + message.id);
							 }						
						}
						
						var	extraoptions	=	{}
						var	treelzselect	=	document.getElementById('select_treel_add')
						var	traveltreelz	=	treelzselect.options[treelzselect.selectedIndex].value;
						if(traveltreelz	>	0	||	traveltreelz	==	-1)	extraoptions.traveltreel	=	traveltreelz
						var	tagsinput	=	document.getElementById('add_new_input_tags')
						if(tagsinput.value	!=	'')	extraoptions.tags	=	tagsinput.value

						var langselect = document.getElementById('input_language')
						extraoptions.language  =	langselect.options[langselect.selectedIndex].value;
					
						message.updateMessage(title,comment,null,	function(msg)
						{ 						    
				//				Screen_ShowMessageDetails(msgid)
								Screen_Attach_Extra_Photos(msg.id)
						}
						,category,extraoptions);
				}
				);
		}
		function	Message_Edit(msgid)
		{
			
			iframecountertje = iframecountertje + 1
			
				debug("Message_Edit update old privacy!!")
				//	var	message_div	=	document.getElementById("message")
				//	message_div.style.height	=	''

				mapsystem.getMessage(msgid,function(message)
				{
						var	thediv	=	document.getElementById("clientarea_inner_msg")
							thediv.innerHTML = ''

						var	message_edit_div	=	createElement(thediv,null,'message_edit_div','div')
							message_edit_div.innerHTML = ''+getTrans.Translate("edit this message")+':<br />'

						var	title_message	=	createElement(message_edit_div,'title_message','title_message','div')
							title_message.innerHTML	=	'<br/>'+getTrans.Translate("title")+':	<br	/><input	id="edit_title_input"	class="input_general_text"	type="text"	name="userid"	size="30"	value="'+message.title+'"	/><br	/><br	/>';
							title_message.innerHTML	+=	''+getTrans.Translate("message")+':<br	/>';
							title_message.innerHTML	+=	'<textarea	id="edit_comment"	class="input_general_text"	rows="7"	cols="44"	name="comment">'+message.text+'<\/textarea>';

						var	select_showlevel_div_add	=	createElement(message_edit_div,'select_showlevel_div_add','select_showlevel_div_add','div')
							select_showlevel_div_add.innerHTML	=	'<input	type="radio"	name="privacy_input"	value="4"	id="privacy_input_public" onclick="display_alert_pivacy_off(\'edit\')"/>'+getTrans.Translate("public")
							select_showlevel_div_add.innerHTML	+=	'<input	type="radio"	name="privacy_input"	value="1"	id="privacy_input_friends" onclick="check_if_groups_selected(\'edit\')"/>'+getTrans.Translate("friends")
							select_showlevel_div_add.innerHTML	+=	'<input	type="radio"	name="privacy_input"	value="5"	id="privacy_input_private" onclick="check_if_groups_selected(\'edit\')"/>'+getTrans.Translate("private")

							the_memorized_array_of_grps_for_addmsg = {}
							
							select_showlevel_div_add.innerHTML	+=  '<div id="alert_not_private_friends_edit" class="alert_not_private_friends"><div id="alert_not_private_friends_image"></div><div class="grey"  id="alert_not_private_friends_text"></div></div>';
		//					select_showlevel_div_add.innerHTML	+=    '<div id="groups_selected_by_add_div"></div>';

						//select_showlevel_div_add.innerHTML	+=	'<br>HIER MOETEN DAN WEER GROEPEN KOMEN........'
						var	privacy_public	=		document.getElementById('privacy_input_public')
						var	privacy_private	=		document.getElementById('privacy_input_private')
						var	privacy_friends	=		document.getElementById('privacy_input_friends')	
						//debug("showlevel edit msg moet andrs");
						if(message.group_ids[1])
						{
						  	privacy_public.checked	=	true
						}
						else if(message.group_ids[treelzsystem.treelersocial.basegroups.friends])
						{
							privacy_friends.checked	=	true
						}
						else
						{
							privacy_private.checked	=	true
						}
						
						fill_options(message_edit_div, "edit", msgid)

						fill_str_with_add_picture('select_pic_div_edit')

						fill_groups_myadd('input_my_groups')
						fill_category_div("edit")
						fill_language_select(document.getElementById('input_language'),message.language_id)
						fill_tags('current_tags_of_msg_edit',message)

						for(i in message.group_ids)
						{						  
						  var grpid = message.group_ids[i]
							mapsystem.groups.getGroup(grpid,function(group)
							{
							  if(group.type == 0)
								{
								   AddAGroupToTheGroupsDiv(group.id, "edit")
								   
								}	 
							}
							);
						}
						
						message.getTreelzIdsOfMessage(function(array_of_ids)
						{
							fill_treel_select('select_treel_add',array_of_ids)
						}
						);
						
						
						select_category(null,message.category, "edit")

						collapse_all_edit()
						my_own_BuildFunc("_msg")

				}
				);
				
				display_alert_pivacy_off("edit")
		}
		
		function check_if_groups_selected(type)
		{
			if(document.getElementById('selected_group_div_'+type).style.display == "none")
			{
			}
			else
			{
				show_warning_groups_privacy(type)
			}
		}
		function display_alert_pivacy_on(type)
		{
		var	alert_not_private_friends = document.getElementById('alert_not_private_friends_'+type)
			alert_not_private_friends.style.display = ''
			alert_not_private_friends.style.visibility = 'visible'
			
			scrollUpdate("clientarea_msg")
			scrollUpdate("clientarea_add")
		}
		function display_alert_pivacy_off(type)
		{
		var	alert_not_private_friends = document.getElementById('alert_not_private_friends_'+type)
			alert_not_private_friends.style.display = 'none'
			alert_not_private_friends.style.visibility = 'hidden'
			
			scrollUpdate("clientarea_msg")
			scrollUpdate("clientarea_add")
			
		}
		
		function fill_options(targetdiv, type, msgid)	
		{	
						var	sub_titles_div	=	createElement(targetdiv,'sub_titles_div',null,'div')
							var	plus_a	=	createElement(sub_titles_div,'plus_a',null,'a')
								plus_a.href = "javascript:hideorshow_div_pos_div_gen_"+type+"()"
	//							plus_a.href = "javascript:show_unshow_div_"+type+"_cat()"
	//						var	sub_titles_div_a	=	createElement(sub_titles_div,'sub_titles_div_a',null,'div')
	//							sub_titles_div_a.href="javascript:show_unshow_div_"+type+"_cat()"
	//							sub_titles_div_a.innerHTML = getTrans.Translate("Category")
							var	select_category_div	=	createElement(sub_titles_div,"select_category_div_"+type,"select_category_div_"+type,'div')
							var	input_cat_id_div	=	createElement(sub_titles_div,"input_cat_id_div","input_cat_id_"+type+"_div",'div')
								input_cat_id_div.innerHTML =	'<input	type="hidden"	id="input_cat_id_'+type+'"	name="input_cat_id"	value="-1">'
	//			if(type == "add")
	//			{
						var	sub_titles_div_pic	=	createElement(targetdiv,'sub_titles_div',null,'div')
							var	plus_a_pic	=	createElement(sub_titles_div_pic,'plus_a',null,'a')
								plus_a_pic.href = "javascript:show_unshow_div_"+type+"_pic()"
							var	sub_titles_div_a_pic	=	createElement(sub_titles_div_pic,'sub_titles_div_a',null,'a')
								sub_titles_div_a_pic.href="javascript:show_unshow_div_"+type+"_pic()"
								sub_titles_div_a_pic.innerHTML = getTrans.Translate("Pictures")
						var	select_pic_div	=	createElement(targetdiv,"extra_add_message_pic","select_pic_div_"+type,'div')
	//			}
						var	sub_titles_div_group	=	createElement(targetdiv,'sub_titles_div',null,'div')
							var	plus_a_group	=	createElement(sub_titles_div_group,'plus_a',null,'a')
								plus_a_group.href = "javascript:show_unshow_div_"+type+"_group()"
							var	sub_titles_div_a_group	=	createElement(sub_titles_div_group,'sub_titles_div_a',null,'a')
								sub_titles_div_a_group.href="javascript:show_unshow_div_"+type+"_group()"
								sub_titles_div_a_group.innerHTML = getTrans.Translate("Group")
						var	select_group_div	=	createElement(sub_titles_div_group,"extra_add_message","select_group_div_"+type,'div')
							select_group_div.innerHTML =	'<select id="input_my_groups" onChange="Screen_ChangedGroups'+type+'Message(this)" class="input_general_select w200" name="input_my_groups"></select>'
								
						var	selected_group_div	=	createElement(targetdiv,"selected_group_div","selected_group_div_"+type,'div')
							var	selected_group_span	=	createElement(selected_group_div,"selected_group_span grey","selected_group_span_"+type,'span')
								selected_group_span.innerHTML = getTrans.Translate("selected_groups")+": "
						
						var	extra_options_button	=	createElement(targetdiv,'sub_titles_div',null,'div')
							var	plus_a_pic	=	createElement(extra_options_button,'plus_a',null,'a')
								plus_a_pic.href = "javascript:show_unshow_div_"+type+"_pic()"
							var	show_unshow_div_extra_options	=	createElement(extra_options_button,'sub_titles_div_a',"More_options_a_"+type,'a')
								show_unshow_div_extra_options.innerHTML = getTrans.Translate("More_options")
								show_unshow_div_extra_options.href = "javascript:show_unshow_div_"+type+"_extra_options()"
						
						var	advanced_msg_options	=	createElement(targetdiv,'advanced_msg_options_'+type,'advanced_msg_options_'+type,'div')
			
								
		
								var	sub_titles_div_treel	=	createElement(advanced_msg_options,'sub_titles_div',null,'div')
									var	plus_a_treel	=	createElement(sub_titles_div_treel,'plus_a',null,'div')
			//							plus_a_treel.href = "javascript:show_unshow_div_"+type+"_treel()"
									var	sub_titles_div_a_treel	=	createElement(sub_titles_div_treel,'sub_titles_div_a',null,'div')
			//							sub_titles_div_a_treel.href="javascript:show_unshow_div_"+type+"_treel()"
										sub_titles_div_a_treel.innerHTML = getTrans.Translate("Treel")
								var	select_treel_div	=	createElement(sub_titles_div_treel,"extra_add_message","select_treel_div_"+type,'div')
									select_treel_div.innerHTML =	'<select	onChange="Screen_Add_Changed_Treel(this)"	id="select_treel_add"	class="input_general_select w200"><option	value="-1">< '+getTrans.Translate("Not part of a Treel")+' ></option><option	value="0">< '+getTrans.Translate("New Treel")+' ></option></select>'
		
								var	sub_titles_div_lang	=	createElement(advanced_msg_options,'sub_titles_div',null,'div')
									var	plus_a_lang	=	createElement(sub_titles_div_lang,'plus_a',null,'div')
			//							plus_a_lang.href = "javascript:show_unshow_div_"+type+"_lang()"
									var	sub_titles_div_a_lang	=	createElement(sub_titles_div_lang,'sub_titles_div_a',null,'div')
			//							sub_titles_div_a_lang.href="javascript:show_unshow_div_"+type+"_lang()"
										sub_titles_div_a_lang.innerHTML = getTrans.Translate("Language")
								var	input_language_div	=	createElement(sub_titles_div_lang,"extra_add_message","input_language_div_"+type,'div')
									input_language_div.innerHTML =	'<select id="input_language" class="input_general_select w200"  name="input_language"></select>'
		
								var	sub_titles_div_tags	=	createElement(advanced_msg_options,'sub_titles_div_tags',null,'div')
									var	plus_a_tags	=	createElement(sub_titles_div_tags,'plus_a',null,'div')
			//							plus_a_tags.href = "javascript:show_unshow_div_"+type+"_tags()"
									var	sub_titles_div_a_tags	=	createElement(sub_titles_div_tags,'sub_titles_div_a',null,'div')
			//							sub_titles_div_a_tags.href="javascript:show_unshow_div_"+type+"_tags()"
										sub_titles_div_a_tags.innerHTML = getTrans.Translate("Tags")
								var	input_tags_div	=	createElement(sub_titles_div_tags,"extra_add_message","input_tags_div_"+type,'div')
									input_tags_div.innerHTML =	'(vb:	amsterdam,	student,	cafe):	<input	type="text"	name="add_new_input_tags"	id="add_new_input_tags"	class="input_general_text_w200">'
				
				if(type == "edit")
				{						
						var	current_tags_of_msg_edit	=	createElement(advanced_msg_options,'current_tags_of_msg_edit','current_tags_of_msg_edit','div')

						var	submit_edit_msg	=	createElement(targetdiv,"submit_edit_msg","submit_edit_msg",'div')
						submit_edit_msg.innerHTML = '<br	/><br	/><input	id="edit_inputsubmit"	class="input_general_submit"	onclick="javascript:Message_Submit_Update('+msgid+')"	type="button"	value="'+getTrans.Translate("save edited message")+'"	/><br	/><br	/>'
				}
		}
		function	Message_Edit_add_group(msgid)
		{
			//	debug("Message_Edit update old privacy!!")
					var	message_div	=	document.getElementById("message")
					message_div.style.height	=	''

				mapsystem.getMessage(msgid,function(message)
				{
						var	thediv	=	document.getElementById("clientarea_inner_msg")
							thediv.innerHTML = ''

						var	message_edit_div	=	createElement(thediv,null,'message_edit_div','div')
							message_edit_div.innerHTML = ''+getTrans.Translate("edit this message")+':<br />'
							message_edit_div.innerHTML = '<div class="alert_not_private_friends" id="alert_not_private_friends_add_group"><div id="alert_not_private_friends_image"></div><div class="grey" id="alert_not_private_friends_text"></div></div>'

				//		var	title_message	=	createElement(message_edit_div,'title_message','title_message','div')
				//			title_message.innerHTML	=	'<br/>'+getTrans.Translate("title")+':	<br	/><input	id="edit_title_input"	class="input_general_text"	type="text"	name="userid"	size="30"	value="'+message.title+'"	/><br	/><br	/>';
				//			title_message.innerHTML	+=	''+getTrans.Translate("message")+':<br	/>';
				//			title_message.innerHTML	+=	'<textarea	id="edit_comment"	class="input_general_text"	rows="5"	cols="44"	name="comment">'+message.text+'<\/textarea>';

				//		var	select_showlevel_div_add	=	createElement(message_edit_div,'select_showlevel_div_add','select_showlevel_div_add','div')
				//			select_showlevel_div_add.innerHTML	=	'<input	type="radio"	name="privacy_input"	value="1"	id="privacy_input_friends">'+getTrans.Translate("friends")
				//			select_showlevel_div_add.innerHTML	+=	'<input	type="radio"	name="privacy_input"	value="4"	id="privacy_input_public">'+getTrans.Translate("public")
				//			select_showlevel_div_add.innerHTML	+=	'<input	type="radio"	name="privacy_input"	value="5"	id="privacy_input_private"/>'+getTrans.Translate("private")

							the_memorized_array_of_grps_for_addmsg = {}
							
				//			select_showlevel_div_add.innerHTML	+=  '<div id="alert_not_private_friends"></div>';
		//					select_showlevel_div_add.innerHTML	+=    '<div id="groups_selected_by_add_div"></div>';

						//select_showlevel_div_add.innerHTML	+=	'<br>HIER MOETEN DAN WEER GROEPEN KOMEN........'
		//				var	privacy_public	=		document.getElementById('privacy_input_public')
		//				var	privacy_private	=		document.getElementById('privacy_input_private')
		//				var	privacy_friends	=		document.getElementById('privacy_input_friends')	
						//debug("showlevel edit msg moet andrs");
		//				if(message.group_ids[1])
		//				{
		//				  	privacy_public.checked	=	true
		//				}
		//				else if(message.group_ids[treelzsystem.treelersocial.basegroups.friends])
		//				{
		//					privacy_friends.checked	=	true
		//				}
		//				else
		//				{
		//					privacy_private.checked	=	true
		//				}
						
						fill_options_add_group(message_edit_div, "edit", msgid)

				//		fill_str_with_add_picture('select_pic_div_edit')

						fill_groups_myadd('input_my_groups')
				//		fill_category_div("edit")
				//		fill_language_select(document.getElementById('input_language'),message.language_id)
				//		fill_tags('current_tags_of_msg_edit',message)


					if(message.group_ids[1])
					{
						privacy	=	4
					}
					else if(message.group_ids[treelzsystem.treelersocial.basegroups.friends])
					{
						privacy	=	5
					}
					else
					{
						privacy	=	1
					}

						for(i in message.group_ids)
						{						  
						  var grpid = message.group_ids[i]
							mapsystem.groups.getGroup(grpid,function(group)
							{
							  if(group.type == 0)
								{
								   AddAGroupToTheGroupsDiv_add_to_group(group.id, "edit", privacy, msgid)
								}	 
							}
							);
						}
						
				//		message.getTreelzIdsOfMessage(function(array_of_ids)
				//		{
				//			fill_treel_select('select_treel_add',array_of_ids)
				//		}
				//		);
						
						
				//		select_category(null,message.category, "edit")

				//		collapse_all_edit()
						my_own_BuildFunc("_msg")
						
						
						var	thediv	=	document.getElementById("clientarea_inner_msg")

				}
				);
				
				display_alert_pivacy_off("add_group")
		}
		function fill_options_add_group(targetdiv, type, msgid)	
		{	
//						var	sub_titles_div	=	createElement(targetdiv,'sub_titles_div',null,'div')
//							var	plus_a	=	createElement(sub_titles_div,'plus_a',null,'a')
//								plus_a.href = "javascript:hideorshow_div_pos_div_gen_"+type+"()"
	//							plus_a.href = "javascript:show_unshow_div_"+type+"_cat()"
	//						var	sub_titles_div_a	=	createElement(sub_titles_div,'sub_titles_div_a',null,'div')
	//							sub_titles_div_a.href="javascript:show_unshow_div_"+type+"_cat()"
	//							sub_titles_div_a.innerHTML = getTrans.Translate("Category")
//							var	select_category_div	=	createElement(sub_titles_div,"select_category_div_"+type,"select_category_div_"+type,'div')
//							var	input_cat_id_div	=	createElement(sub_titles_div,"input_cat_id_"+type+"_div","input_cat_id_"+type+"_div",'div')
//								input_cat_id_div.innerHTML =	'<input	type="hidden"	id="input_cat_id_'+type+'"	name="input_cat_id"	value="-1">'
	//			if(type == "add")
	//			{
//						var	sub_titles_div_pic	=	createElement(targetdiv,'sub_titles_div',null,'div')
//							var	plus_a_pic	=	createElement(sub_titles_div_pic,'plus_a',null,'a')
//								plus_a_pic.href = "javascript:show_unshow_div_"+type+"_pic()"
//							var	sub_titles_div_a_pic	=	createElement(sub_titles_div_pic,'sub_titles_div_a',null,'a')
//								sub_titles_div_a_pic.href="javascript:show_unshow_div_"+type+"_pic()"
//								sub_titles_div_a_pic.innerHTML = getTrans.Translate("Pictures")
//						var	select_pic_div	=	createElement(targetdiv,"extra_add_message_pic","select_pic_div_"+type,'div')
	//			}
//						var	extra_options_button	=	createElement(targetdiv,'extra_options_button','extra_options_button','div')
//							var	show_unshow_div_extra_options	=	createElement(extra_options_button,null,null,'a')
//								show_unshow_div_extra_options.innerHTML = getTrans.Translate("extra_options")
//								show_unshow_div_extra_options.href = "javascript:show_unshow_div_"+type+"_extra_options()"
						
//						var	advanced_msg_options	=	createElement(targetdiv,'advanced_msg_options_'+type,'advanced_msg_options_'+type,'div')
			var privacy = ''
			mapsystem.getMessage(msgid,function(message)
				{
					if(message.group_ids[1])
					{
						privacy	=	4
					}
					else if(message.group_ids[treelzsystem.treelersocial.basegroups.friends])
					{
						privacy	=	5
					}
					else
					{
						privacy	=	1
					}
				}
				);
								var	sub_titles_div_group	=	createElement(targetdiv,'sub_titles_div',null,'div')
									var	plus_a_group	=	createElement(sub_titles_div_group,'plus_a',null,'div')
			//							plus_a_group.href = "javascript:show_unshow_div_"+type+"_group()"
									var	sub_titles_div_a_group	=	createElement(sub_titles_div_group,'sub_titles_div_a',null,'div')
			//							sub_titles_div_a_group.href="javascript:show_unshow_div_"+type+"_group()"
										sub_titles_div_a_group.innerHTML = getTrans.Translate("Group")
									var	select_group_div	=	createElement(sub_titles_div_group,"extra_add_message","select_group_div_"+type,'div')
										select_group_div.innerHTML =	'<select id="input_my_groups" onChange="Screen_ChangedGroupseditMessage_add_group(this,'+privacy+', '+msgid+')" class="input_general_select w200" name="input_my_groups"></select>'
								
								var	selected_group_div	=	createElement(targetdiv,"selected_group_div","selected_group_div_"+type,'div')
									var	selected_group_span	=	createElement(selected_group_div,"selected_group_span grey","selected_group_span_"+type,'span')
										selected_group_span.innerHTML = getTrans.Translate("selected_groups")+": "
		
//								var	sub_titles_div_treel	=	createElement(advanced_msg_options,'sub_titles_div',null,'div')
//									var	plus_a_treel	=	createElement(sub_titles_div_treel,'plus_a',null,'div')
			//							plus_a_treel.href = "javascript:show_unshow_div_"+type+"_treel()"
//									var	sub_titles_div_a_treel	=	createElement(sub_titles_div_treel,'sub_titles_div_a',null,'div')
			//							sub_titles_div_a_treel.href="javascript:show_unshow_div_"+type+"_treel()"
//										sub_titles_div_a_treel.innerHTML = getTrans.Translate("Treel")
//								var	select_treel_div	=	createElement(sub_titles_div_treel,"extra_add_message","select_treel_div_"+type,'div')
//									select_treel_div.innerHTML =	'<select	onChange="Screen_Add_Changed_Treel(this)"	id="select_treel_add"	class="input_general_select w200"><option	value="-1">< '+getTrans.Translate("Not part of a Treel")+' ></option><option	value="0">< '+getTrans.Translate("New Treel")+' ></option></select>'
		
//								var	sub_titles_div_lang	=	createElement(advanced_msg_options,'sub_titles_div',null,'div')
//									var	plus_a_lang	=	createElement(sub_titles_div_lang,'plus_a',null,'div')
			//							plus_a_lang.href = "javascript:show_unshow_div_"+type+"_lang()"
//									var	sub_titles_div_a_lang	=	createElement(sub_titles_div_lang,'sub_titles_div_a',null,'div')
			//							sub_titles_div_a_lang.href="javascript:show_unshow_div_"+type+"_lang()"
//										sub_titles_div_a_lang.innerHTML = getTrans.Translate("Language")
//								var	input_language_div	=	createElement(sub_titles_div_lang,"extra_add_message","input_language_div_"+type,'div')
//									input_language_div.innerHTML =	'<select id="input_language" class="input_general_select w200"  name="input_language"></select>'
		
//								var	sub_titles_div_tags	=	createElement(advanced_msg_options,'sub_titles_div_tags',null,'div')
//									var	plus_a_tags	=	createElement(sub_titles_div_tags,'plus_a',null,'div')
			//							plus_a_tags.href = "javascript:show_unshow_div_"+type+"_tags()"
//									var	sub_titles_div_a_tags	=	createElement(sub_titles_div_tags,'sub_titles_div_a',null,'div')
			//							sub_titles_div_a_tags.href="javascript:show_unshow_div_"+type+"_tags()"
//										sub_titles_div_a_tags.innerHTML = getTrans.Translate("Tags")
//								var	input_tags_div	=	createElement(sub_titles_div_tags,"extra_add_message","input_tags_div_"+type,'div')
//									input_tags_div.innerHTML =	'(vb:	amsterdam,	student,	cafe):	<input	type="text"	name="add_new_input_tags"	id="add_new_input_tags"	class="input_general_text_w200"><br>'
				
				if(type == "edit")
				{						
			//			var	current_tags_of_msg_edit	=	createElement(advanced_msg_options,'current_tags_of_msg_edit','current_tags_of_msg_edit','div')

						var	submit_edit_msg	=	createElement(targetdiv,"submit_edit_msg","submit_edit_msg",'div')
						submit_edit_msg.innerHTML = '<br	/><br	/><input	id="edit_inputsubmit"	class="input_general_submit"	onclick="javascript:Message_Submit_Update_add_group('+msgid+')"	type="button"	value="'+getTrans.Translate("save_added_groups")+'"	/><br	/><br	/>'
				}
		}
		function	Message_Submit_Update_add_group(msgid)
		{
				
				mapsystem.getMessage(msgid,function(message)
				{

		//				var	comment_input	=	document.getElementById('edit_comment')
		//				var	title_input	=	document.getElementById('edit_title_input')
		//				var	inputsubmit	=	document.getElementById('edit_inputsubmit')
		//				var	category	=	document.getElementById('input_cat_id_edit').value

		//				inputsubmit.disabled	=	true
		//				title_input.disabled	=	true
		//				comment_input.disabled	=	true
		//				var	comment	=	comment_input.value
		//				var	title	=	title_input.value

		
				
				if(message.group_ids[1])
				{
					privacy	=	4
				}
				else if(message.group_ids[treelzsystem.treelersocial.basegroups.friends])
				{
					privacy	=	5
				}
				else
				{
					privacy	=	1
				}
				
		
		//		var	privacy_public	=		document.getElementById('privacy_input_public')
		//		var	privacy_private	=		document.getElementById('privacy_input_private')
		//		var	privacy_friends	=		document.getElementById('privacy_input_friends')
				//var	privacy	=	4
		//		if(privacy_public.checked)	privacy	=	4
		//		if(privacy_private.checked)	privacy	=	5
		//		if(privacy_friends.checked)	privacy	=	1

				var groups_ids = add_message_get_groups();
				// now add the possible groups
				groups_ids[treelzsystem.treelersocial.basegroups.private] = true
				if(privacy == 1)
				{
						// friends
						groups_ids[treelzsystem.treelersocial.basegroups.friends] = true
				}
				else if(privacy == 4)
				{
						// public (also do friends then...)
						groups_ids[1] =true;
						groups_ids[treelzsystem.treelersocial.basegroups.public] = true
						groups_ids[treelzsystem.treelersocial.basegroups.friends] = true
				}
				else
				{
						// private
						// is always added // see above						
				}
						// now compare groups				
						// what was in orignal & no more
						debug("what was in orignal & no more");
						for(i in message.group_ids)
						{
						   var grpid = message.group_ids[i]
							 if(groups_ids[grpid])
							 {
							  //  both in orignal ass new
								// debug('both in lold en niew gorup ' + grpid + ' from messge ' + message.id);	
							 }
							 else
							 {
							   // was in original, no more
								 // REMOVE
								// debug('todo remove gorup ' + grpid + ' from messge ' + message.id);								 
								 Screen_RemoveMessageFromGroup(message.id,grpid,function(x){});		 
							 }						
						}
						
						// what was not in original & is now
						//debug("what was not in original & is now")
						for(i in groups_ids)
						{
						   var grpid = i
							 if(message.group_ids[grpid])
							 {
							  // both in new and original
							 }
							 else
							 {
							   // was in not original, but is now
								 // add						
								  Screen_AddMessageToGroup(message.id,grpid,function(x){});		 
								 //debug('todo add gorup ' + grpid + ' to messge ' + message.id);
							 }						
						}
						
			//			var	extraoptions	=	{}
			//			var	treelzselect	=	document.getElementById('select_treel_add')
			//			var	traveltreelz	=	treelzselect.options[treelzselect.selectedIndex].value;
			//			if(traveltreelz	>	0	||	traveltreelz	==	-1)	extraoptions.traveltreel	=	traveltreelz
			//			var	tagsinput	=	document.getElementById('add_new_input_tags')
			//			if(tagsinput.value	!=	'')	extraoptions.tags	=	tagsinput.value

			//			var langselect = document.getElementById('input_language')
			//			extraoptions.language  =	langselect.options[langselect.selectedIndex].value;
					
			//			message.updateMessage(title,comment,null,	function(msg)
			//			{ 						    
								//Screen_ShowMessageDetails(msgid)
			//					Screen_Attach_Extra_Photos(msg.id)
			//			}
			//			,category,extraoptions);
			
			Screen_ShowMessageDetails(msgid)
				}
				);
		}
		function AddAGroupToTheGroupsDiv_add_to_group(grp_id, type, privacy, msgid)
		{
	//				alert("AddAGroupToTheGroupsDiv_add_to_group")
			if(the_memorized_array_of_grps_for_addmsg[grp_id] == true)
				{return;}

				the_memorized_array_of_grps_for_addmsg[grp_id] = true;
				var thediv = document.getElementById("selected_group_div_"+type);
					thediv.style.display = ""
					
				
				var inhouddiv = createElement(thediv,null,'groups_selected_by_'+type+'_div_'+grp_id,'div')
				
				mapsystem.groups.getGroup(grp_id,function(grp)
				{
						inhouddiv.innerHTML = " <a class=\"red_font\" href=\"javascript:verwijderGroupFromAddMessage("+grp_id+",'"+type+"')\"> X </a> " + grp.name + " " + grp.title
	//					alert("added to inhouddiv.innerHTML")
					
				//		var privacy_input_publicinput = document.getElementById('privacy_input_public');
	//					if(privacy !==4  && grp.level_show > 1)
	//					{
								// indien anderen akak mods/members van group mogen  zien terwijl het private of friends only is
	//							show_warning_groups_privacy("add_group", msgid)
				//				debug('Todo: check all groups && changing public...');
	//					}
				}
				);
				
				my_own_BuildFunc("_add")
				my_own_BuildFunc("_msg")
		}
		function	Edit_Message_Remove_Tag(messageid,tagid)
		{
				mapsystem.getMessage(messageid,function(message)
				{
						message.removeTag(tagid,function(newlyloadmessage)
						{
								//	reload	new	thing
								var	tags_div	=	document.getElementById('current_tags_of_msg_edit')
								tags_div.innerHTML	=	''
								fill_tags('current_tags_of_msg_edit',newlyloadmessage)
						}
						)
				}
				);
		}
		function		fill_tags(thediv,message)
		{
				var	tags_div	=	document.getElementById(thediv)
				tags_div.innerHTML = ''
				for(i	in	message.tag_ids)
				{
						var	tagid	=	message.tag_ids[i]

						var	tag_remove_a	=	createElement(tags_div,"red_font",null,'a')
						tag_remove_a.setAttribute('href',"javascript:Edit_Message_Remove_Tag("+message.id+","+tagid+")")
						tag_remove_a.innerHTML = "X "

		//				var	tag_remove_img	=	createElement(tag_remove_a,null,null,'img')
		//				tag_remove_img.setAttribute('src',"http://www.vaneede.com/images/delete.gif")

						var	tag_div	=	createElement(tags_div,null,null,'span')
						Screen_FillElementWithTag(tag_div,tagid)
						var	tag_remove_br	=	createElement(tags_div,null,null,'br')
				}
		}

		


		function	Delete_Message(msgid)
		{
				//	var	message_div	=	document.getElementById("message")
				//		message_div.style.height	=	''

				var	thediv	=	document.getElementById("clientarea_inner_msg")
				thediv.innerHTML	=	''
				var	message_edit_div	=	createElement(thediv,null,'message_edit_div','div')
				var	fill_str	=	''
				fill_str	+=	getTrans.Translate("confirm_message_delete");
		//		fill_str	+=	'<br	/><br	/><input	id="inputsubmit"	class="input_general_submit"	onclick="javascript:Delete_Message_Yes_Submit('+msgid+')"	type="button"	value="'	+	getTrans.Translate("yes")	+	'"	/>';
		//		fill_str	+=	'&nbsp;&nbsp;&nbsp;<input	id="inputsubmit"	class="input_general_submit"	onclick="javascript:Delete_Message_Yes_And_Attached_Submit('+msgid+')"	type="button"	value="'+getTrans.Translate("yes_and_pictures")+'"/>';
				fill_str	+=	'<br	/><br	/><input	id="inputsubmit"	class="input_general_submit"	onclick="javascript:Delete_Message_Yes_And_Attached_Submit('+msgid+')"	type="button"	value="'	+	getTrans.Translate("yes")	+	'"	/>';
				fill_str	+=	'&nbsp;&nbsp;&nbsp;<input	id="inputsubmit"	class="input_general_submit"	onclick="javascript:Delete_Message_No_Submit('+msgid+')"	type="button"	value="'	+	getTrans.Translate("no")	+	'"	/><br	/><br	/>';

				message_edit_div.innerHTML	=	fill_str

				my_own_BuildFunc("_msg")
		}


		function	Delete_Message_No_Submit(msgid)
		{
				Screen_ShowMessageDetails(msgid)
		}

		function	Delete_Message_Yes_Submit(msgid)
		{
				var	thediv	=	document.getElementById("clientarea_inner_msg")
				thediv.innerHTML	=	''
				var	message_edit_div	=	createElement(thediv,null,'message_edit_div','div')
					message_edit_div.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
					mapsystem.getMessage(msgid,function(msg)
					{
							var	locid	=	msg.location_id
							msg.removeThisMessae(true,function()
							{
									mapsystem.locations.getLocation(locid,function(loc)
									{
											//Screen_ShowLocationDetails(locid)
											var	fill_str	=	getTrans.Translate("message_deleted")
											document.getElementById("clientarea_inner_msg").innerHTML	=	fill_str
											my_own_BuildFunc("_msg")
									}
									,true)
							}
							);
					}
					);
		}
		function	Delete_Message_Yes_And_Attached_Submit(msgid)
		{
				var	thediv	=	document.getElementById("clientarea_inner_msg")
					thediv.innerHTML	=	''
				var	message_edit_div	=	createElement(thediv,null,'message_edit_div','div')
					message_edit_div.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
					mapsystem.getMessage(msgid,function(msg)
					{
							var	locid	=	msg.location_id
							msg.removeThisMessae(true,function()
							{
									mapsystem.locations.getLocation(locid,function(loc)
									{
											//Screen_ShowLocationDetails(locid)
											var	fill_str	=	getTrans.Translate("message_deleted")
											document.getElementById("clientarea_inner_msg").innerHTML	=	fill_str
											my_own_BuildFunc("_msg")
									}
									,true)
	
							}
							,true);
					}
					);
		}

		function	show_large_picture(msgid, button)
		{
			show.stop();
				clickedon_smallpicture()

				var	outer_largepicture	=	document.getElementById("outer_largepicture")	;
				outer_largepicture.innerHTML	=	'';
				outer_largepicture.style.visibility	=	"inherit";

				var	picture_normal_div	=	createElement(outer_largepicture,"largepicture","largepicture",'div');

				var	picture_a	=	document.createElement('a');
				picture_a.href	=	"javascript:close_large_pic()";
				picture_normal_div.appendChild(picture_a);

				var	picture_img	=		document.createElement('img');
				picture_img.src=baseurl+	'imageshow.php?thumb=true&h=500&w=600&imageid='+msgid+'';
				picture_img.title	=	getTrans.Translate("title_large_pic")
				//picture_img.width="600";
				//picture_img.height="600";
				picture_img.border="0";
				picture_a.appendChild(picture_img);

				var	outer_largepicture_div	=	document.getElementById("outer_largepicture");



				if (button != "no_button") 
				{
					var	slideshowbuttons_div	=	createElement(outer_largepicture_div,"slideshowbuttons_div","slideshowbuttons_div",'div');
						slideshowbuttons_div.style.bottom = "10px"
						slideshowbuttons_div.style.top = ""						
						slideshowbuttons_div.style.left = "0px"						
						slideshowbuttons_div.style.right = ""						
						slideshowbuttons_div.style.width = "100%"						
						
						var	center	=	createElement(slideshowbuttons_div,null,null,'center');
							var	slideshowbuttons_div_center	=	createElement(center,"button_div_center","slideshowbuttons_div_center",'div');
								slideshowbuttons_div_center.style.width	=	'0px'
					
					create_clickable_icon("slideshowbuttons_div_center", "slideshow_previous", "slideshow/icon_slideshow_previous", "javascript:show.showPrev()",  "title_prev_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
					if (show.ReturnStatus() == "running"){create_clickable_icon("slideshowbuttons_div_center", "slideshow_play_pause", "slideshow/icon_slideshow_pause", "javascript:show.PlayPause_button(); change_button_play_pause()",  "title_pause", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)}
					else{create_clickable_icon("slideshowbuttons_div_center", "slideshow_play_pause", "slideshow/icon_slideshow_play", "javascript:show.PlayPause_button(); change_button_play_pause()",  "title_play", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)}
					create_clickable_icon("slideshowbuttons_div_center", "slideshow_next", "slideshow/icon_slideshow_next", "javascript:show.showNext()",  "title_next_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
					create_clickable_icon("slideshowbuttons_div_center", "slideshow_fullscreen", "slideshow/icon_slideshow_full_screen", "javascript:show.fullscreen("+msgid+")",  "title_full_screen", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
					create_clickable_icon("slideshowbuttons_div_center", "slideshow_print", "slideshow/icon_slideshow_print", "javascript:print_large_pic("+msgid+")",  "title_print_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
					create_clickable_icon("slideshowbuttons_div_center", "slideshow_close", "slideshow/icon_slideshow_close", "javascript:close_large_pic()",  "title_close_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
				}
				else
				{
					
					var	slideshowbuttons_div	=	createElement(outer_largepicture_div,"slideshowbuttons_div","slideshowbuttons_div",'div');
						slideshowbuttons_div.style.bottom = ""
						slideshowbuttons_div.style.top = "5px"						
						slideshowbuttons_div.style.left = ""						
						slideshowbuttons_div.style.right = "3px"						
						slideshowbuttons_div.style.width = "50px"						
					
					
					create_clickable_icon("slideshowbuttons_div", "slideshow_close", "slideshow/icon_slideshow_close_userpic", "javascript:close_large_pic()",  "title_close_pic", null,  "right", space_inbetween, slideshow_b_o, slideshow_f_o, true)

		//			add_close_button("largepicture",	"javascript:close_large_pic()")

				}
				fOnResizeWindow()
				
				
				
		}
		function change_button_play_pause() 
		{
			var play_pause_span = document.getElementById("slideshow_play_pause");
			if (show.ReturnStatus() == "running") 
			{
				play_pause_span.title=getTrans.Translate("title_pause")
				set_background_image(play_pause_span, "images/1_knoppen/slideshow/icon_slideshow_pause.png")
			}
			else if (show.ReturnStatus() == "paused") 
			{
				play_pause_span.title=getTrans.Translate("title_play")
				set_background_image(play_pause_span, "images/1_knoppen/slideshow/icon_slideshow_play.png")
			}	
		}
		function change_button_play_pause_f() 
		{
			var play_pause_span = document.getElementById("slideshow_play_pause_full");
			if (show.ReturnStatusf() == "running") 
			{
				play_pause_span.title=getTrans.Translate("title_pause")
				set_background_image(play_pause_span, "images/1_knoppen/slideshow/icon_slideshow_pause.png")
			}
			else if (show.ReturnStatusf() == "paused") 
			{
				play_pause_span.title=getTrans.Translate("title_play")
				set_background_image(play_pause_span, "images/1_knoppen/slideshow/icon_slideshow_play.png")
			}	
		}

		function	close_large_pic()
		{
				show.stop();
				clickedon_largepicture()

				var	picture_large_div	=	document.getElementById("outer_largepicture")
					picture_large_div.innerHTML	=	''
					picture_large_div.style.visibility	=	"hidden";


				var	picture_normal_div	=	createElement(picture_large_div,"largepicture","largepicture",'div');

		}
		function	print_large_pic(imageid)	{
				//alert	(imageid);
				window.open('imageprint.php?imageid='	+	imageid,	imageid,	'width=800,height=600,directories=no,location=no,menubar=no,resizable=no,status=no,toolbars=no,scrollbars=yes');
		}
		function	Screen_AddClickableUserImageToDiv(thediv,user)
		{

				var	userpicture_span	=	createElement(thediv,"class_h5","class_h5",'span')

				var	userpicture_a	=		document.createElement('a');
				userpicture_a.href="javascript:Screen_InitSideBarUserProfile("+user.id+")"
				userpicture_span.appendChild(userpicture_a)

				var	userpicture_img	=	createElement(userpicture_a,"img_align_left",null,'img')


				userpicture_img.src=baseurl+	'imageshow.php?thumb=true&h=60&w=60&imageid='+user.picture_id+'';
				userpicture_img.border="0"
				userpicture_img.style.align="left"
				userpicture_img.align="left"
				userpicture_img.title	=	getTrans.Translate("title_user_pic_msg")
		}

		function	Screen_AddClickableUserImageToReply(thediv,user)
		{

				var	userpicture_span	=	createElement(thediv,"class_h5","class_h5",'span')

				var	userpicture_a	=		document.createElement('a');
				userpicture_a.href="javascript:Screen_InitSideBarUserProfile("+user.id+")"
				userpicture_span.appendChild(userpicture_a)

				var	userpicture_img	=	createElement(userpicture_a,"img_align_left",null,'img')


				userpicture_img.src=baseurl+	'imageshow.php?thumb=true&h=40&w=40&imageid='+user.picture_id+'';
				userpicture_img.border="0"
				userpicture_img.title	=	getTrans.Translate("title_user_pic_msg")
		}


		function	load_content_loc(locid)
		{


				clickedon_location()

				var	thediv_outer	=	document.getElementById("frame_loc")
				thediv_outer.innerHTML	=	'';

				var	thediv	=	document.getElementById("clientarea_loc")
				thediv.style.height	=	''

				var	thediv	=	document.getElementById("clientarea_inner_loc")
				thediv.innerHTML	=	'';
				thediv.style.height	=	''

				//		var	tabs_div	=	createElement(thediv_outer,"tabs_div","tabs_loc",'div')

				//			fill_tabs_location_div(tabs_div,	locid)

				var	details_div_location	=	createElement(thediv,'details_div_location','details_div_location','div')

				show_both_location	(locid)


				show_container("_loc")

				urls.AddVariable("L", locid);
				urls.UpdateURL();

				var	buttons_loc_div		=	document.getElementById("buttons_loc_div")
				buttons_loc_div.style.visibility = "inherit"

		create_clickable_icon("buttons_center_loc_div", "add_message_loc", "icon_add_message", "javascript:Screen_Add_Message("+locid+")",  "title_add_message", null,  "right", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_loc_div", "zoom_in_loc", "icon_zoom_in", "javascript:tooltip_zoom_clicked("+locid+")",  "title_zoomin_location", null,  "right", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_loc_div", "center_loc", "icon_center", "javascript:tooltip_center_clicked("+locid+")",  "title_center_location", null,  "right", 3, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_loc_div", "zoom_out_loc", "icon_zoom_out", "javascript:zoomout()",  "title_zoomout_location", null,  "right", 3, option_b_o, option_f_o)
		}

		function	Screen_ShowLatestMessageOfLocation(loc)
		{

				loc.getMessages(function(msgs)
				{

						var	maxi	=	-1
						for(i	in	msgs)
						{
								if(i	>	maxi)	maxi	=	i;
						}

						if(maxi	>	0)
						{
								Screen_ShowMessageDetails(maxi)
						}

				}
				);

		}


		function	Screen_LocationDetailAddMessageToTable(themessagediv,message)
		{
				//		var	message_icon_a	=	createElement(themessagediv,null,null,'a')
				//			message_icon_a	=	"javascript:Screen_ShowMessageDetails("+message.id+")"

				var	message_icon_a_img	=	createElement(themessagediv,	null,	null,'img')
				treelzsystem.users.getUser(message.userid,true,function(user)
				{
						message_icon_a_img.src	=	createimageshowUrl(user.picture_id,true,16,16)
				}
				);

				//				message_icon_a_img.src	=	createimageshowUrl(message.user.icon,true,16,16)


				//		treelzsystem.users.getUser(userid,true,function(user)
				//		{
				//		Screen_AddClickableUserImageToDiv(message_icon_a,user)
				//		}
				//		);

				var	message_title_a	=	createElement(themessagediv,null,null,'a')
				message_title_a.href="javascript:Screen_ShowMessageDetails("+message.id+")"
				title	=	message.title

				if(title	==	null	||		title	==	'')
				{
						title	=	'No	title	'	+	message.id
				}
				message_title_a.innerHTML	=	title


				/*
				var	message_reply_a	=createElement(themessagediv,null,null,'a')
				message_reply_a.href="javascript:Screen_ShowMessageDetails("+message.id+")"
				message.getNumberOfReplies(function(aantal)
				{
				message_reply_a.innerHTML	=	'	('+aantal+'	<img	src="http://support.introweb.nl/email/webmail/gfx/icons/reply_act.png"	width="16"	alt=""	border="0"	>,	'
				}
				);
				*/
				var	message_att_span	=createElement(themessagediv,null,null,'span')
				//		message_att_a.href="javascript:Screen_ShowMessageDetails("+message.id+")"
				message.getNumberOfAttached(function(aantal)
				{
						if(aantal > 0)
						{
								message_att_span.innerHTML	=	' ('+aantal+')'
						}

				}
				);


				themessagediv.appendChild(document.createElement('br'))

		}

		function	fill_tabs_location_div(tabs_location_div,	locid)
		{

				var	show_pictures_a	=	createElement(tabs_location_div,null,null,'a')
				show_pictures_a.href	=	"javascript:show_both_location("+locid+")"
				show_pictures_a.innerHTML	=	getTrans.Translate("both")
				show_pictures_a.title	=	getTrans.Translate("title_show_both_loc")

				var	streepje_span	=	createElement(tabs_location_div,null,null,'span')
				streepje_span.innerHTML	=	"	|	"

				var	show_pictures_a	=	createElement(tabs_location_div,null,null,'a')
				show_pictures_a.href	=	"javascript:show_only_pictures_location("+locid+")"
				show_pictures_a.innerHTML	=	getTrans.Translate("pictures")
				show_pictures_a.title	=	getTrans.Translate("title_show_pictures_loc")

				var	streepje_span	=	createElement(tabs_location_div,null,null,'span')
				streepje_span.innerHTML	=	"	|	"

				var	show_messages_a	=	createElement(tabs_location_div,null,null,'a')
				show_messages_a.href	=	"javascript:show_only_messages_location("+locid+")"
				show_messages_a.innerHTML	=	getTrans.Translate("messages")
				show_messages_a.title	=	getTrans.Translate("title_show_messages_loc")

		}




		function	show_only_pictures_location(locid)
		{
				show_pictures_location(locid,	"details_div_location")
		}

		function	show_only_messages_location(locid)
		{
				show_messages_location(locid,	"details_div_location")

		}

		function	show_both_location(locid)
		{

				var	details_div_location	=	document.getElementById("details_div_location")
				details_div_location.innerHTML	=	''

				var	msg_div_location		=	createElement(details_div_location,"msg_div_location","msg_div_location",'div')
				show_messages_location(locid,	"msg_div_location")

				var	pic_div_location		=	createElement(details_div_location,"pic_div_location","pic_div_location",'div')
				show_pictures_location(locid,	"pic_div_location")

		}





		function	show_pictures_location(locid,	destination_div)
		{
				var	details_div_location	=	document.getElementById(destination_div)
				details_div_location.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'

				mapsystem.locations.getLocation(locid,function(gevondenlocation)
				{
						gevondenlocation.getMessages(function(msgs)
						{
								details_div_location.innerHTML	=	''


								for(i	in	msgs)
								{
										var	message	=	msgs[i]
										if(message.type	==	4)
										{
												Screen_LocationDetailAddPhotoToDiv(details_div_location,message)
												my_own_BuildFunc("_loc")
										}
								}
						}
						);

				}
				);


		}

		function showWikiArticle(article,lang)
		{
				clickedon_message(null, true)

				var	thediv_outer	=	document.getElementById("frame_msg")
				thediv_outer.innerHTML	=	'';

				var	thediv	=	document.getElementById("clientarea_inner_msg")
				thediv.innerHTML	=		'<img	src="images/indicator.gif"	alt="">'
				Wiki_DownloadArticle(article,lang,function(stars)
				{
						//alert(stars)
						//alert(stars[0])
						//	var thediv = document.getElementById('wiki_article_div')


						thediv.innerHTML	=''

						var theart = stars[0]
						var links = theart.indexOf("==")
						if(links != -1)
						{
								theart= theart.substring(0,links)
						}
						thediv.innerHTML = theart

						my_own_BuildFunc("_msg")

				}
				)

				show_container("_msg")


		}

		function	show_messages_location(locid,	destination_div)
		{
				var	details_div_location	=	document.getElementById(destination_div)
				details_div_location.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'

				mapsystem.locations.getLocation(locid,function(gevondenlocation)
				{
						gevondenlocation.getMessages(function(msgs)
						{
								if(gevondenlocation.wiki)
								{

										if(gevondenlocation.wiki.other_langs['nl'])
										{
												//details_div_location.innerHTML	=	'<a target="_blank" href="http://nl.wikipedia.org/wiki/'+gevondenlocation.wiki.other_langs['nl']+'">Wiki:' + gevondenlocation.wiki.other_langs['nl'] +'</a>'
												details_div_location.innerHTML = '<a href="javascript:showWikiArticle(\''+gevondenlocation.wiki.other_langs['nl']+'\',\'nl\')">Wiki: '+gevondenlocation.wiki.other_langs['nl']+'</a><div id="wiki_article_div"></div>'
										}
										else if(gevondenlocation.wiki.other_langs['en'])
										{
												details_div_location.innerHTML = '<a href="javascript:showWikiArticle(\''+gevondenlocation.wiki.other_langs['en']+'\',\'en\')">Wiki: '+gevondenlocation.wiki.other_langs['en']+'</a><div id="wiki_article_div"></div>'
												//details_div_location.innerHTML	=	'<a target="_blank" href="http://en.wikipedia.org/wiki/'+gevondenlocation.wiki.other_langs['en']+'">Wiki:' + gevondenlocation.wiki.other_langs['en'] +'</a>';
										}
										else
										{
												details_div_location.innerHTML = '<a href="javascript:showWikiArticle(\''+gevondenlocation.wiki.titel+'\',\''+gevondenlocation.wiki.lang+'\')">Wiki:' + gevondenlocation.wiki.titel +'</a><div id="wiki_article_div"></div>'
												//details_div_location.innerHTML	=	'<a target="_blank" href="http://'+gevondenlocation.wiki.lang+'.wikipedia.org/wiki/'+gevondenlocation.wiki.titel+'">Wiki:' + gevondenlocation.wiki.titel +'</a>';
										}


								}
								else
								{

										details_div_location.innerHTML	=	'';
								}


								for(i	in	msgs)
								{

										var	message	=	msgs[i]
										if(message.type	==	1)
										{
												Screen_LocationDetailAddMessageToTable(details_div_location,message)
										}


								}
						}
						);

				}
				);


		}


		/*
		function	show_messages_location(msgid)
		{
		var	details_div_location	=	document.getElementById("details_div_location")

		var	picturesonthislocation_inner_div		=	createElement(picturesonthislocation_div,"locoverview","locoverview",'div')
		picturesonthislocation_inner_div.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'

		mapsystem.locations.getLocation(locid,function(gevondenlocation)
		{
		gevondenlocation.getMessages(function(msgs)
		{
		messagesonthislocation_div.innerHTML	=	''
		picturesonthislocation_inner_div.innerHTML	=	''

		var	message_div		=	createElement(messagesonthislocation_div,null,null,'div')
		message_div.cellpadding="0"
		message_div.cellspacing="0"


		for(i	in	msgs)
		{
		var	message	=	msgs[i]
		if(message.type	==	4)
		{
		Screen_LocationDetailAddPhotoToDiv(picturesonthislocation_inner_div,message)
		}
		else	if(message.type	==	1)
		{
		Screen_LocationDetailAddMessageToTable(message_div,message)
		}
		}
		}
		);

		}
		);

		}
		*/
		function	Screen_LocationDetailAddPhotoToDiv(thefotodiv,message)
		{

				//	var	thumb_div		=	createElement(thefotodiv,"smallthumb-lo","smallthumb-lo",'div')


				var	thumb_a	=		document.createElement('a');
				thumb_a.href="javascript:Screen_ShowMessageDetails("+message.id+")"
				thefotodiv.appendChild(thumb_a)


				var	thumb_img	=	createElement(thumb_a,"thumb_img",null,'img')
				thumb_img.src=	baseurl+	'imageshow.php?thumb=true&h=42&w=56&imageid='+message.picture_id+'';//"images/voorbeelden/huub.jpg"
				thumb_img.width="56"
				thumb_img.height="42"
				thumb_img.border="0"
		}

		function	updateWhoFilter(yes,filter,dontdownload)
		{
				debug("Tpoints::updateWhoFilter is old");
				/*
				if(yes)

				{
				mapsystem.addWhoFilter(filter,dontdownload)
				}
				else
				{
				mapsystem.removeWhoFilter(filter,dontdownload)
				}
				*/
		}
		function	updateWhatFilter(yes,filter,dontdownload)
		{
				debug("Tpoints::updateWhatFilter is old");
				x.fs()
				/*
				if(yes)
				{
				mapsystem.addWhatFilter(filter,dontdownload)
				}
				else
				{
				mapsystem.removeWhatFilter(filter,dontdownload)
				}
				*/
		}

		function	enableMapClick(eenfunction,reset)
		{
				if(reset	!=	false	&&	reset	!=	true)	reset	=	false
				mapsystem.registerLocationClickCallback(eenfunction,reset)
		}


		function	Screen_Point_ExistingLocClicked(loc)
		{
				//	alert(loc.id)

				//	var nr_of_messages = ??????????
				//  if(nr_of_messages > 1)	<-- zoiets, maar dan met de juiste code  ;-)	, zodat loc ding alleen komt als er meer dan 1 bericht is
				//	{
				loc.getMessages(function(msgs)
				{
						var aantal = 0;
						for(i in msgs)
						{
								var msg = msgs[i]
								if(msg.attached_to_messages_ids.length == 0)
								{
										aantal++;
								}
						}
						if(aantal > 1)
						{
								Screen_ShowLocationDetails(loc.id);
						}
						else
						{
								hide_container_onscreen("_loc")
						}

				}
				);

				//	}

				Screen_ShowLatestMessageOfLocation(loc)

		}

		function add_message_get_groups()
		{
				// debug("Screen_Add_Message_Submit ==>please implement t_points::add_message_get_groups()");
				removeNullsFromArray(the_memorized_array_of_grps_for_addmsg)
				return removeNullsFromArray(the_memorized_array_of_grps_for_addmsg);
		}

		function	Screen_Add_Message_Submit()
		{
				var	comment_input	=	document.getElementById('comment')
				var	title_input	=	document.getElementById('title_input')
				var	inputsubmit	=	document.getElementById('inputsubmit')
				var	input_lat	=	document.getElementById('input_lat')
				var	input_lng	=	document.getElementById('input_lng')
				var	input_id	=	document.getElementById('input_id')
				var	comment	=	comment_input.value

				debug(input_lat + ' ' + input_lng)

				var	privacy_public	=		document.getElementById('privacy_input_public')
				var	privacy_private	=		document.getElementById('privacy_input_private')
				var	privacy_friends	=		document.getElementById('privacy_input_friends')
				var	privacy	=	4
				if(privacy_public.checked)	privacy	=	4
				if(privacy_private.checked)	privacy	=	5
				if(privacy_friends.checked)	privacy	=	1

				var groups_ids = add_message_get_groups();
				// now add the possible groups
				groups_ids[treelzsystem.treelersocial.basegroups.private] = true
				if(privacy == 1)
				{
						// friends
						groups_ids[treelzsystem.treelersocial.basegroups.friends] = true
				}
				else if(privacy == 4)
				{
						// public (also do friends then...)
						groups_ids[1] =true;
						groups_ids[treelzsystem.treelersocial.basegroups.friends] = true
												groups_ids[treelzsystem.treelersocial.basegroups.public] = true
				}
				else
				{
						// private
						// is always added
				}

				var	catsselect	=		document.getElementById('input_cat_id_add');
				var	category = catsselect.value

				var	options	=	{}
				var	treelzselect	=	document.getElementById('select_treel_add')
				var	traveltreelz	=	treelzselect.options[treelzselect.selectedIndex].value;
				if(traveltreelz	>	0)	options.traveltreel	=	traveltreelz

				var langselect = document.getElementById('input_language')
				options.language  =	langselect.options[langselect.selectedIndex].value;

				var	tagsinput	=	document.getElementById('add_new_input_tags')
				if(tagsinput.value	!=	'')	options.tags	=	tagsinput.value

				if(category	==	-1	||	category	==	false	||	category	==	'')
				{
						var	category	=	1101
				}
				var	title	=	title_input.value

				if(title	==	''	||	comment	==	'')
				{
						alert(getTrans.Translate("insert_titel_and_message"));
						return
				}
				inputsubmit.disabled	=	true
				title_input.disabled	=	true
				comment_input.disabled	=	true

				//alert(comment	+	title)
				if(input_id)
				{
						//	add	to	existing
						var	locid=	input_id.value
						mapsystem.locations.getLocation(locid,function(existloc)
						{
								// DIT IS ZELFDE ALS ONDER!!!
								existloc.saveNewInfo(title,comment,groups_ids,function(loc,themessageid)
								{
										if(testapple	||navigator.platform	==	'MacIntel'	||	navigator.platform	==	'MacPPC'	||		navigator.platform.substring(0,3).toLowerCase()	==	'mac')
										{
												upload_show_new_msg_id	=	themessageid
												var	evalstr=	'window.frames.iframe_pics_'+iframecountertje+'.submitPictures('+themessageid+',"'+sid+'")'
												eval(evalstr)
										}
										else
										{
												Screen_Add_Message_SaveImages(themessageid)
										}
								}
//hier doet ie het nog kan je checken met:
//alert(category)
								,category,options)
						}
						);
				}
				else
				{
						// just create a location
						var lng = input_lng.value
						var lat =input_lat.value
						mapsystem.locations.createNewLocation(lng,lat,function(existloc)
						{
								// DIT IS ZELFDE ALS BOVEN!!!
								existloc.saveNewInfo(title,comment,groups_ids,function(loc,themessageid)
								{
										if(testapple	||navigator.platform	==	'MacIntel'	||	navigator.platform	==	'MacPPC'	||		navigator.platform.substring(0,3).toLowerCase()	==	'mac')
										{
												upload_show_new_msg_id	=	themessageid
												var	evalstr=	'window.frames.iframe_pics_'+iframecountertje+'.submitPictures('+themessageid+',"'+sid+'")'
												eval(evalstr)
										}
										else
										{
												Screen_Add_Message_SaveImages(themessageid)
										}
								}
								,category,options)
						}
						);
				}
				/*
				}

				else
				{
				//	add	to	new

				var	lat=	input_lat.value
				var	lng=	input_lng.value
				mapsystem.locations.saveNewLocation(lng,lat,title,privacy,comment,function(newloc,newmessageid)
				{

				if(testapple	||	navigator.platform	==	'MacIntel'	||	navigator.platform	==	'MacPPC'	||		navigator.platform.substring(0,3).toLowerCase()	==	'mac')
				{
				upload_show_new_msg_id	=	newmessageid
				var	evalstr=	'window.frames.iframe_pics_'+iframecountertje+'.submitPictures('+newmessageid+',"'+sid+'")'
				eval(evalstr)
				}
				else
				{
				Screen_Add_Message_SaveImages(newmessageid)
				}
				}
				,category,options)

				}
				*/

		}

		var	upload_show_new_msg_id=false

		function	Screen_Add_Message_SaveImages(attachedtonewmessageid)
		{
				//	update	post	setttings
				var	params	=	new	Object();
				params['attach_to_msg']	=	attachedtonewmessageid;
				params['sid']	=	sid;
				upload1.setPostParams(params);
				//	set	upload	id
				upload_show_new_msg_id	=	attachedtonewmessageid

				//	now	check	whether	empty	queue
				var	allnone	=	true
				for(i	in	fileobject_queue)
				{
						if(fileobject_queue[i]	==	true)
						{
								allnone	=	false
						}
				}

				if(allnone)
				{
						Screen_Add_Message_SaveImages_After()
				}
				else
				{
						//	start	upload
						upload1.startUpload()
				}

		}

		function	Screen_Add_Message_SaveImages_After()
		{
				debug('after uploading images' + upload_show_new_msg_id);
				if(upload_show_new_msg_id)
				{
							 var msgcacher	=	getMessageCacher();		
				    msgcacher.getMessage(upload_show_new_msg_id,	function(msg)
						//mapsystem.getMessage(upload_show_new_msg_id,function(msg)
						{
						    // update screen
								mapsystem.globalfilter.recheckFilter()
						    // showmsg								
								Screen_ShowMessageDetails(upload_show_new_msg_id);
								upload_show_new_msg_id=false;
						}
						,true,true)
				}

		}

		var	upload1	=	null
		var	iframecountertje	=	0;

		function	load_content_add(id,lat,lng)
		{
				the_memorized_array_of_grps_for_addmsg = []
				iframecountertje = iframecountertje + 1

				if(treelzsystem	&&	treelzsystem.treelersocial)
				{
						clickedon_addmessage()

						var	thediv_outer	=	document.getElementById("frame_add")
						thediv_outer.innerHTML	=	'';

						var	thediv	=	document.getElementById("clientarea_inner_add");
						thediv.innerHTML	=	'';

						var	fill_str	=	''	//'<form	action="upload_test_server.php"	method="post"	id="photoupload"	enctype="multipart/form-data">';

						fill_str	+=	''+getTrans.Translate("title")+':	';
						fill_str	+=	'<br	/>';
						fill_str	+=	'<input	class="input_general_text"	id="title_input"	type="text"	name="userid"		value=""	/><br	/>';
						fill_str	+=	''+getTrans.Translate("message")+':<br	/>';
						fill_str	+=	'<textarea	class="input_general_text"	id="comment"	class="treelz-input-nieuwbericht"	rows="7"		name="comment"><\/textarea><br	/>';
						if(id)
						{

								fill_str	+=	'<input	type="hidden"	id="input_id"	value="'+id+'">';
						}
						else
						{
								fill_str	+=	'<input	type="hidden"	id="input_lat"	value="'+lat+'">';
								fill_str	+=	'<input	type="hidden"	id="input_lng"	value="'+lng+'">';
						}

						if(domain_gid != -1)
						{
							mapsystem.groups.getGroup(domain_gid,function(group)
							{
								if(group.level_show == 3)
								{
									fill_str	+=	'<div	id="select_showlevel_div_add"	class="select_showlevel_div_add"><input	type="radio"	name="privacy_input"	 onclick="display_alert_pivacy_off(\'add\')"		value="4"	id="privacy_input_public"/>	'+getTrans.Translate("public")+' <input	type="radio"	name="privacy_input"	value="1" 		id="privacy_input_friends" onclick="check_if_groups_selected(\'add\')"/>	'+getTrans.Translate("friends")+'	<input	type="radio"	name="privacy_input" checked	value="5"	id="privacy_input_private" onclick="check_if_groups_selected(\'add\')"/>	'+getTrans.Translate("private")+'</div>'
								}
								else
								{
									fill_str	+=	'<div	id="select_showlevel_div_add"	class="select_showlevel_div_add"><input	type="radio"	name="privacy_input"	onclick="display_alert_pivacy_off(\'add\')"checked value="4"	id="privacy_input_public"/>	'+getTrans.Translate("public")+' <input	type="radio"	name="privacy_input"	value="1" 		id="privacy_input_friends" onclick="check_if_groups_selected(\'add\')"/>	'+getTrans.Translate("friends")+'	<input	type="radio"	name="privacy_input"			value="5"	id="privacy_input_private" onclick="check_if_groups_selected(\'add\')"/>	'+getTrans.Translate("private")+'</div>'
								}
							}
							);
						}
						else
						{
									fill_str	+=	'<div	id="select_showlevel_div_add"	class="select_showlevel_div_add"><input	type="radio"	name="privacy_input"	onclick="display_alert_pivacy_off(\'add\')" checked value="4"	id="privacy_input_public"/>	'+getTrans.Translate("public")+' <input	type="radio"	name="privacy_input"	value="1" 		id="privacy_input_friends" onclick="check_if_groups_selected(\'add\')"/>	'+getTrans.Translate("friends")+'	<input	type="radio"	name="privacy_input"			value="5"	id="privacy_input_private" onclick="check_if_groups_selected(\'add\')"/>	'+getTrans.Translate("private")+'</div>'
						}
						
						fill_str	+=	'<div	id="selected_group"	class="selected_group"></div>'
						fill_str +=   '<div class="alert_not_private_friends" id="alert_not_private_friends_add" ><div id="alert_not_private_friends_image"></div><div class="grey" id="alert_not_private_friends_text"></div></div>';
		//				fill_str +=   '<div id="groups_selected_by_add_div"></div>';
						
						thediv.innerHTML	=	fill_str;
						
						fill_options(thediv, "add")	
						
						collapse_all()
						
						fill_str_with_add_picture('select_pic_div_add')
						
						fill_groups_myadd('input_my_groups')
						fill_treel_select('select_treel_add')
						fill_language_select(document.getElementById('input_language'),treelzsystem.treelersocial.user.primary_language_id)
						fill_category_div("add")

						//domain of current group:
						//debug('need to work on current domain setting, now grp 1735');
						var current_group_domain = domain_gid;
						if(current_group_domain != -1)
						{
								mapsystem.groups.getGroupUsersCanAdd(treelzsystem.treelersocial.user.id,	function(grps)
								{
										if(grps[current_group_domain])
										{
												var selctgrpdiv = document.getElementById("selected_group");
								//				selctgrpdiv.innerHTML = 'Current domain: '+grps[current_group_domain].name+'.treelz.com  <a href="javascript:debug()">(?)</a>'
												selctgrpdiv.innerHTML = 'Current domain: '+grps[current_group_domain].name+'.treelz.com'
												AddAGroupToTheGroupsDiv(current_group_domain, "add")
										}
										else
										{
												debug('domain not part of groups add-able by user');
										}
								}
								);
						}
						
						show_container("_add")
						add_submit_button_add_message()
				}
				else
				{
				show_treelz_alert("not_loggedin_msg")
				}
				display_alert_pivacy_off("add")
				
			my_own_BuildFunc('_add')
		}

function fill_str_with_add_picture(targetdiv_id)
{
	var targetdiv = document.getElementById(targetdiv_id)

						if(testapple	||	navigator.platform	==	'MacIntel'	||	navigator.platform	==	'MacPPC'	||		navigator.platform.substring(0,3).toLowerCase()	==	'mac')
						{
							targetdiv.innerHTML	+=	'<span class="grey">'+getTrans.Translate("only_jpg")+'</span><br/><br/>'
							targetdiv.innerHTML	+=	'<IFRAME	src="uploadclientmac.php"	name="iframe_pics_'+iframecountertje+'"	id="iframe_pics_'+iframecountertje+'"		width="300"	height="150">	</IFRAME>'
						}
						else
						{
							var fill_str = ''
							fill_str +=	'				<span class="grey">'+getTrans.Translate("only_jpg")+'</span>'
							fill_str +=	'<table>'
							fill_str +=	'	<tr	valign="top">'
							fill_str +=	'		<td>'
							fill_str +=	'			<div	id="flashUI1"	style="display:	none;">'
							fill_str +=	'				<div>'
							fill_str +=	'					<input type="button" class="input_general_submit" id="inputsubmit" value="'+getTrans.Translate("Browse for pictures")+'" onclick="upload1.browse()" style="font-size:8pt;"	/>'
					//		fill_str +=	'					<input id="btnCancel1" class="input_general_submit" id="inputsubmit" type="button" value="'+getTrans.Translate("Cancel uploads")+'"	onclick="upload1.cancelQueue();" disabled="disabled" style="font-size:8pt;"/><br />'
							fill_str +=	'				</div>'
							fill_str +=	'				<fieldset	class="flash"	id="fsUploadProgress1">'
							fill_str +=	'					<legend>'+getTrans.Translate("pictures")+'</legend>'
							fill_str +=	'				</fieldset>'
							fill_str +=	'			</div>'
							fill_str +=	'			<div	id="degradedUI1">'
							fill_str +=	'				'+getTrans.Translate("pic_upload_not_loaded")+''
							fill_str +=	'				<fieldset>'
							fill_str +=	'				<legend>'+getTrans.Translate("pictures")+'</legend>'
							fill_str +=	'				</fieldset>'
							fill_str +=	'				<div>'
							fill_str +=	'				</div>'
							fill_str +=	'			</div>'
							fill_str +=	'		</td>'
							fill_str +=	'		<td>'
							fill_str +=	'		</td>'
							fill_str +=	'	</tr>'
							fill_str +=	'</table>'
							
							targetdiv.innerHTML = fill_str 
							
							load_swfupload()
						}
}

		var the_memorized_array_of_grps_for_addmsg = [];

		function verwijderGroupFromAddMessage(grp_id, type)
		{
				var thediv = document.getElementById('selected_group_div_'+type);
				var thediv_to_remove = document.getElementById('groups_selected_by_'+type+'_div_'+grp_id)
				thediv.removeChild(thediv_to_remove);
				the_memorized_array_of_grps_for_addmsg[grp_id] = null;
		}

		function AddAGroupToTheGroupsDiv(grp_id, type)
		{
				if(the_memorized_array_of_grps_for_addmsg[grp_id] == true) return;

				the_memorized_array_of_grps_for_addmsg[grp_id] = true;
				var thediv = document.getElementById("selected_group_div_"+type);
					thediv.style.display = ""
					
				
				var inhouddiv = createElement(thediv,null,'groups_selected_by_'+type+'_div_'+grp_id,'div')
				
				mapsystem.groups.getGroup(grp_id,function(grp)
				{
						inhouddiv.innerHTML = " <a class=\"red_font\" href=\"javascript:verwijderGroupFromAddMessage("+grp_id+",'"+type+"')\"> X </a> " + grp.name + " " + grp.title
						
						var privacy_input_publicinput = document.getElementById('privacy_input_public');
						if(privacy_input_publicinput.checked == false && grp.level_show == 4 )
						{
								// indien anderen akak mods/members van group mogen  zien terwijl het private of friends only is
								show_warning_groups_privacy(type)
								debug('Todo: check all groups && changing public...');
						}
				}
				);
				
				my_own_BuildFunc("_add")
				my_own_BuildFunc("_msg")
		}
		function show_warning_groups_privacy(type, msgid)
		{
				display_alert_pivacy_on(type)					
				
				var alert_not_private_friends_image = document.getElementById('alert_not_private_friends_image');
					alert_not_private_friends_image.innerHTML = ''
					
					
					create_clickable_icon("alert_not_private_friends_image", "alert", "icon_alert", null,  null, null,  "left", 0, option_b_o, option_b_o, true)
				
				var thenotediv = document.getElementById('alert_not_private_friends_text');
				
				if(type == "add_group")
				{
					mapsystem.getMessage(msgid,function(msg)
					{	
						if(msg.userid == loggedin_id)
						{
							thenotediv.innerHTML = getTrans.Translate("warning_groups_privacy_your_own")
						}
						else
						{
							thenotediv.innerHTML = getTrans.Translate("warning_groups_privacy_someone_else")
						}
					}
					);
				}
				else
				{
					thenotediv.innerHTML = getTrans.Translate("warning_groups_privacy")
				}
		}
		function Screen_ChangedGroupsaddMessage(myaddselect)
		{
				var	number	=	myaddselect.options[myaddselect.selectedIndex].value;
				//debug('voeg toe groep: ' + number);
				myaddselect.selectedIndex= 0;
				AddAGroupToTheGroupsDiv(number, "add")
		}
		
		function Screen_ChangedGroupseditMessage(myaddselect)
		{
				var	number	=	myaddselect.options[myaddselect.selectedIndex].value;
				debug('voeg toe groep: ' + number);
				myaddselect.selectedIndex= 0;
				AddAGroupToTheGroupsDiv(number, "edit")
		}
		function Screen_ChangedGroupseditMessage_add_group(myaddselect, privacy, msgid)
		{
				var	number	=	myaddselect.options[myaddselect.selectedIndex].value;
					mapsystem.groups.getGroup(number,function(grp)
					{
						if(privacy !==4  && grp.level_show == 4)
						{
							show_warning_groups_privacy("add_group", msgid)
							
							mapsystem.getMessage(msgid,function(msg)
							{	
								if(msg.userid == loggedin_id)
								{
									myaddselect.selectedIndex= 0;
									AddAGroupToTheGroupsDiv_add_to_group(number, "edit", privacy,msgid)
								}
							}
							);

						}
						else
						{
							myaddselect.selectedIndex= 0;
							AddAGroupToTheGroupsDiv_add_to_group(number, "edit", privacy,msgid)
						}
					}
					);

			
			
			
		}


		function fill_groups_myadd(selectname)
		{
				var	myaddselect=	document.getElementById(selectname);
				myaddselect.options.length = 0 ;
				myaddselect.options[myaddselect.options.length]	=	new	Option("< "+getTrans.Translate("select_a_group")+" >",0);
				if(treelzsystem	&&	treelzsystem.treelersocial)
				{
						mapsystem.groups.getGroupUsersCanAdd(treelzsystem.treelersocial.user.id,	function(grps)
						{
								for(i	in	grps)
								{
										var	thegropu	=	grps[i];
										if(thegropu.type == 0) myaddselect.options[myaddselect.options.length]	=	new	Option(thegropu.name,thegropu.id);
								}
						}
						)
				}

		}

		function add_submit_button_add_message()
		{
				var	frame_add	=	document.getElementById("frame_add")
				var	submit_div	=	createElement(frame_add,"submit_div","submit_div",'div')
				var	center	=	createElement(submit_div,null,null,'center')
				var	submit_div_rel	=	createElement(center,"submit_div_rel","submit_div_rel",'div')
				submit_div_rel.innerHTML	=	'<input	class="input_general_submit"	id="inputsubmit"	onclick="javascript:Screen_Add_Message_Submit()"	type="button"	value="'	+	getTrans.Translate("place message")	+	'"	/>';

		}
		function show_extra_options()
		{
				var advanced_msg_options = document.getElementById("advanced_msg_options")
				advanced_msg_options.style.height = ''

		}

		function fill_language_select(thediv, selectvalue)
		{
				thediv.innerHTML = ''
				treelzsystem.languages.getAllLanguages(function(alllangs)
				{
						for(i	in	alllangs)
						{
								var	thelang	=	alllangs[i]
								thediv.options[thediv.options.length]	=	new	Option(thelang.name,thelang.id);
								if(selectvalue	&&	thelang.id	==	selectvalue)
								{
										thediv.selectedIndex	=	thediv.options.length	-	1
								}

						}
				}
				);
		}

		function	fill_treel_select(theoptionname,array_op_ids)
		{

				var	select_treel_add	=	document.getElementById(theoptionname)
				if(treelzsystem	&&	treelzsystem.treelersocial)
				{
						mapsystem.treelz.getTreelzFromUser(treelzsystem.treelersocial.user.id,function(thetreelz)
						{
								for(i	in	thetreelz)
								{
										var	thetreel	=	thetreelz[i]
										select_treel_add.options[select_treel_add.options.length]	=	new	Option(thetreel.name,thetreel.id);
										if(array_op_ids	&&	thetreel.id	in	array_op_ids)
										{
												select_treel_add.selectedIndex	=	select_treel_add.options.length	-	1
										}
										/*if(thetreel.id	==	selecttreelid)
										{
										select_treel_add.selectedIndex	=	select_treel_add.options.length	-	1
										}*/

								}
								//readyfunction(select_treel_add)
						}
						)
				}
		}
		function	Screen_Add_Changed_Treel(theselect)
		{
				var	number	=	theselect.options[theselect.selectedIndex].value;

				if(number	==	0)
				{
						//	nieuwe
				var	extraoptions	=	{}

						var	reply	=	prompt(getTrans.Translate("name_travel_treel"),	getTrans.Translate("new_treel"))
						if(reply)
						{
								extraoptions.name	=	reply
								extraoptions.showlevel	=	4	//	TEMP	TODO!!!
								mapsystem.treelz.addNewTrail(function(thenewtreel)
								{

										theselect.options[theselect.options.length]	=	new	Option(thenewtreel.name,thenewtreel.id);
										theselect.selectedIndex	=	theselect.options.length	-	1
								},extraoptions)
						}
				}
				else	if(number	==	-1)
				{
						//none
				}
				else
				{
						//	a	selected	on

				}


		}

		function	collapse_all()
		{
//				collapse("select_showlevel_div_add")
//				collapse("select_category_div_add")
//				collapse("select_treel_div_add")
//				collapse("select_group_div_add")
//				collapse("input_tags_div_add")
//				collapse("input_language_div_add")
				
		if(add_pictures_div_add == false){collapse("select_pic_div_add")}
		if(add_groups_div_add == false){collapse("select_group_div_add")}
		if(advanced_options_div_add == false){collapse("advanced_msg_options_add")}
			
				document.getElementById("selected_group_div_add").style.display = "none"
		}


		function	collapse_all_edit()
		{
//				collapse("select_showlevel_div_add")
//				collapse("select_category_div_edit")
//				collapse("select_group_div_edit")
//				collapse("select_treel_div_edit")
//				collapse("input_tags_div_edit")
//				collapse("input_language_div_edit")

collapse("select_pic_div_edit")
collapse("select_group_div_edit")
collapse("advanced_msg_options_edit")


document.getElementById("selected_group_div_edit").style.display = "none"

	//	if(add_pictures_div_edit == false){collapse("select_pic_div_edit")}
	//	if(add_groups_div_edit == false){collapse("select_group_div_edit")}
	//	if(advanced_options_div_edit == false){collapse("advanced_msg_options_edit")}
		}

		function	collapse(targetdiv)
		{
				var	targetdiv	=	document.getElementById(targetdiv)
				targetdiv.style.height	=	"1px"
				targetdiv.style.overflow	=	"hidden"
	//			targetdiv.style.visibility	=	"hidden"
				targetdiv.style.display	=	"none"				
		}

/*		function	show_unshow_div_edit_cat(){show_unshow_div("select_category_div_edit")}
		function	show_unshow_div_edit_treel(){show_unshow_div("select_treel_div_edit")}
		function	show_unshow_div_edit_group(){show_unshow_div("select_group_div_edit")}
		function	show_unshow_div_edit_tags(){show_unshow_div("input_tags_div_edit")}
		function	show_unshow_div_edit_lang(){show_unshow_div("input_language_div_edit")}*/
		
		function	show_unshow_div_edit_pic()
		{
			if(document.getElementById("select_pic_div_edit").style.height == "1px")
			{add_pictures_div_edit = true}
			else
			{add_pictures_div_edit = false}
			
			show_unshow_div("select_pic_div_edit")
		}
		function	show_unshow_div_edit_group()
		{
			if(document.getElementById("select_group_div_edit").style.height == "1px")
			{add_groups_div_edit = true}
			else
			{add_groups_div_edit = false}
			
			show_unshow_div("select_group_div_edit")
		}
		function	show_unshow_div_edit_extra_options(type)
		{
			if(document.getElementById("advanced_msg_options_edit").style.height == "1px")
			{advanced_options_div_edit = true}
			else
			{advanced_options_div_edit = false}
			show_unshow_div("advanced_msg_options_edit", true, 'edit')
		}

//		function	show_unshow_div_add_cat(){show_unshow_div("select_category_div_add")}
//		function	show_unshow_div_add_treel(){show_unshow_div("select_treel_div_add")}
//		function	show_unshow_div_add_group(){show_unshow_div("select_group_div_add")}
//		function	show_unshow_div_add_tags(){show_unshow_div("input_tags_div_add")}
//		function	show_unshow_div_add_lang(){show_unshow_div("input_language_div_add")}
		
		function	show_unshow_div_add_pic()
		{
			if(document.getElementById("select_pic_div_add").style.height == "1px")
			{add_pictures_div_add = true}
			else
			{add_pictures_div_add = false}
			show_unshow_div("select_pic_div_add")
		}
		function	show_unshow_div_add_group()
		{
			if(document.getElementById("select_group_div_add").style.height == "1px")
			{add_groups_div_add = true}
			else
			{add_groups_div_add = false}
			
			show_unshow_div("select_group_div_add")
		}
		function	show_unshow_div_add_extra_options(type)
		{
			if(document.getElementById("advanced_msg_options_add").style.height	==	"1px")
			{advanced_options_div_add = true}
			else
			{advanced_options_div_add = false}
			show_unshow_div("advanced_msg_options_add", true, 'add')
		}

		function	show_unshow_div(targetdiv, adv_msg, type)
		{
				var	More_options_a	=	document.getElementById("More_options_a_"+type)
				
				var	targetdiv	=	document.getElementById(targetdiv)
				if(targetdiv.style.height	==	"1px")
				{
					if(adv_msg == true)
					{More_options_a.innerHTML = getTrans.Translate("Close_extra_options")}

						targetdiv.style.height	=	""
						targetdiv.style.overflow	=	""
						targetdiv.style.display	=	""
						my_own_BuildFunc("_add")
						my_own_BuildFunc("_msg")
				}
				else
				{
					if(adv_msg == true)
					{More_options_a.innerHTML = getTrans.Translate("More_options")}
						targetdiv.style.height	=	"1px"
						targetdiv.style.overflow = "hidden"
						targetdiv.style.display	=	"none"
						my_own_BuildFunc("_add")
						my_own_BuildFunc("_msg")
				}

		}

		function	show_showlevel_choises()
		{

				var showlevel_choises = document.getElementById("showlevel_choises")
				showlevel_choises.style.visibility = "visible"

		}
		function	hide_showlevel_choises()
		{
				var showlevel_choises = document.getElementById("showlevel_choises")
				showlevel_choises.style.visibility = "hidden"

		}


// ========================================================================
//  							EEN GROOT DEEL VAN DE ONDERSTAANDE CODE IS OUT DATED!!   (Weggehaald door Arjen)
// ========================================================================
		function changeNoneMarkers_new(het,dontdownload)
		{
				debug('remove javascript:changeNoneMarkers_new() function, it is old')
//				return
		}


		function changePrivateMarkers_new(het,dontdownload)
		{
				debug('remove javascript:changePrivateMarkers_new() function, it is old')
//				return
		}

		function changeFriendsMarkers_new(het,dontdownload)
		{
				debug('remove javascript:changeFriendsMarkers_new() function, it is old')
//				return
		}

		function changePublicMarkers_new(het,dontdownload)
		{
				debug('remove javascript:changePublicMarkers_new() function, it is old')
//				return
		}

// =========================================================================
// tot hier kan het weg waarschijnlijk   (Weggehaald door Arjen)             WAAROM RETURNS?
// =========================================================================
		
		function set_add_messages_icon(showinmiddle)
		{
		//		var	add_messages_on_map	=	document.getElementById("bu_footer_addmessage")
				if(mapsystem.getShowNewIcon()	==	false)
				{
						mapsystem.setShowNewIcon(true)
						if(showinmiddle==true) mapsystem.showNewLocIconInCenter()
				}
				else
				{

						mapsystem.setShowNewIcon(false)
				}
		}

		var my_info_button = 1

		function set_my_info_button()
		{
	//			var	my_info_button_div	=	document.getElementById("my_info_button")
				if(my_info_button	==	1)
				{
						my_info_button = 0
	//					my_info_button_div.innerHTML	=	getTrans.Translate("hide_my_info_a")
						show_info_container_notonstartup()
				}
				else
				{
						my_info_button = 1
	//					my_info_button_div.innerHTML	=	getTrans.Translate("show_my_info_a")
						hide_container('_info', true)
				}
		}

		var overview_button = 1

		function set_overview_button()
		{
	//			var	overview_button_div	=	document.getElementById("overview_button")
				if(overview_button	==	1)
				{
						overview_button = 0
	//					overview_button_div.innerHTML	=	getTrans.Translate("hide_overview_a")
						show_overview_fm()
				}
				else
				{
						overview_button = 1
	//					overview_button_div.innerHTML	=	getTrans.Translate("show_overview_a")
						hide_container('_view', true)
				}
		}


		var set_bu_footer_help_var = 1
		function set_bu_footer_help()
		{
	//			var	bu_footer_help	=	document.getElementById("bu_footer_help")
				if(set_bu_footer_help_var	==	1)
				{
						set_bu_footer_help_var = 0
						show_help_container()
	//					bu_footer_help.setAttribute('class',"footer_buttons bu_footer_help_active")
	//					bu_footer_help.setAttribute('className',"footer_buttons bu_footer_help_active")
				}
				else
				{
						set_bu_footer_help_var = 1
						hide_container('_help', true)
	//					bu_footer_help.setAttribute('class',"footer_buttons bu_footer_help")
	//					bu_footer_help.setAttribute('className',"footer_buttons bu_footer_help")
				}
		}

		var set_bu_footer_myinfo_var = 1
		var set_bu_footer_intro_var = 1

		function set_bu_footer_myinfo()
		{
				if(treelzsystem.treelersocial)
				{
		//				var	bu_footer_myinfo	=	document.getElementById("bu_footer_myinfo")
						if(set_bu_footer_myinfo_var	==	1)
						{
								set_bu_footer_myinfo_var = 0
								show_info_container_notonstartup()
		//						bu_footer_myinfo.setAttribute('class',"footer_buttons bu_footer_myinfo_active")
		//						bu_footer_myinfo.setAttribute('className',"footer_buttons bu_footer_myinfo_active")
						}
						else
						{
								set_bu_footer_myinfo_var = 1
								hide_container('_info', true)
		//						bu_footer_myinfo.setAttribute('class',"footer_buttons bu_footer_myinfo")
		//						bu_footer_myinfo.setAttribute('className',"footer_buttons bu_footer_myinfo")
						}

				}
				else
				{
						show_global_intro('start')
				}

		}
		function set_bu_footer_intro()
		{
			show_global_intro('start')
		}

		var set_bu_footer_link_var = 1

		function set_bu_footer_link()
		{
	//			var	bu_footer_link	=	document.getElementById("bu_footer_link")
				if(set_bu_footer_link_var	==	1)
				{
						set_bu_footer_link_var = 0
						fill_mail_link_div()
	//					bu_footer_link.setAttribute('class',"footer_buttons bu_footer_link_active")
	//					bu_footer_link.setAttribute('className',"footer_buttons bu_footer_link_active")


				}
				else
				{
						set_bu_footer_link_var = 1
						hide_container('_link', true, true)
	//					bu_footer_link.setAttribute('class',"footer_buttons bu_footer_link")
	//					bu_footer_link.setAttribute('className',"footer_buttons bu_footer_link")
				}


				my_own_BuildFunc("_link")
				//				alert("waarom?")

		}

		var set_bu_footer_addmessage_var = 1

		function set_bu_footer_addmessage()
		{

			if(treelzsystem	&&	treelzsystem.treelersocial)
			{
				if(domain_uid != -1)
				{
					if(domain_uid == -1 || domain_uid == loggedin_id)
					{
						set_add_messages_icon(true)
					}
					else
					{
							treelzsystem.users.getUser(domain_uid,true,function(user)
							{
								
									var treelz_alert_div = document.getElementById('treelz_alert_div')
									treelz_alert_div.style.visibility = "inherit"
									treelz_alert_div.innerHTML = '<img	src="images/1_knoppen/icon_alert.jpg" width=\"48\"	height=\"43\"><br/><br/>'+getTrans.Translate("not_domain_2")+'<br/> '+ user.firstname	+' ' +user.lastname+'.<br /><br />'
							treelzsystem.users.getUser(loggedin_id,true,function(user_yourself)
							{
									treelz_alert_div.innerHTML += getTrans.Translate("not_domain_3",	"%DOM%="+user_yourself.nickname)
							}
							);


									var treelz_alert_a_close = createElement(treelz_alert_div,"treelz_alert_a_close",null,'a');
									treelz_alert_a_close.href = "javascript:close_treelz_alert()"

									var bodyW = document.body.offsetWidth;
									var alert_divW = document.getElementById('treelz_alert_div').offsetWidth;

									treelz_alert_div.style.left = (bodyW/2) - (alert_divW/2)
							}
							);
					}
				}
				else if(domain_gid != -1)
				{
					mapsystem.groups.getGroup(domain_gid,function(gevondengroup)
					{
						gevondengroup.getUserIsMember(loggedin_id,function(value_if_member)
						{
							if(value_if_member == true)
							{
								set_add_messages_icon(true)
							}
							else
							{
										var treelz_alert_div = document.getElementById('treelz_alert_div')
										treelz_alert_div.style.visibility = "inherit"
	
										treelz_alert_div.innerHTML = '<img	src="images/1_knoppen/icon_alert.jpg" width=\"48\"	height=\"43\"><br/><br/>'+getTrans.Translate("not_domain_group")+' '+ gevondengroup.name +'.<br /><br />'
										treelz_alert_div.innerHTML += getTrans.Translate("not_domain_3")
	
	
										var treelz_alert_a_close = createElement(treelz_alert_div,"treelz_alert_a_close",null,'a');
										treelz_alert_a_close.href = "javascript:close_treelz_alert()"
										var bodyW = document.body.offsetWidth;
										var alert_divW = document.getElementById('treelz_alert_div').offsetWidth;
										treelz_alert_div.style.left = (bodyW/2) - (alert_divW/2)
								
							}
						}
						);
					}
					);
				}
				else
				{
						set_add_messages_icon(true)
				}
			}
			else
			{
					show_treelz_alert("not_loggedin_msg")
			}
		}

		var set_bu_footer_overview_var = 1

		function set_bu_footer_overview()
		{

		//		var	bu_footer_overview	=	document.getElementById("bu_footer_overview")
				if(set_bu_footer_overview_var	==	1)
				{

						//			bu_footer_help.innerHTML	=	getTrans.Translate("hide_overview_a")

						show_overview_fm()




				}
				else
				{
						set_bu_footer_overview_var = 1
						//			overview_button_div.innerHTML	=	getTrans.Translate("show_overview_a")
						hide_container('_view', true)

			//			bu_footer_overview.setAttribute('class',"footer_buttons bu_footer_overview")
			//			bu_footer_overview.setAttribute('className',"footer_buttons bu_footer_overview")

				}
		}


		function make_footer_inactive()
		{
				set_bu_footer_help_var = 1
				set_bu_footer_myinfo_var = 1
				set_bu_footer_overview_var = 1

	//			document.getElementById("bu_footer_help").setAttribute('class',"footer_buttons bu_footer_help")
	//			document.getElementById("bu_footer_help").setAttribute('className',"footer_buttons bu_footer_help")

	//			document.getElementById("bu_footer_myinfo").setAttribute('class',"footer_buttons bu_footer_myinfo")
	//			document.getElementById("bu_footer_myinfo").setAttribute('className',"footer_buttons bu_footer_myinfo")

	//			document.getElementById("bu_footer_overview").setAttribute('class',"footer_buttons bu_footer_overview")
	//			document.getElementById("bu_footer_overview").setAttribute('className',"footer_buttons bu_footer_overview")
		}
		function showSearchAddress()
		{
				var searchval = document.getElementById("search").value

				if(searchval == getTrans.Translate('street_city_country') || searchval == '')
				{
						alert(getTrans.Translate("Fill_in_searchfield"))
				}



				mapsystem.gotoPlace(searchval,'','',function(point,address)
				{

						//alert(address) TOOD, locatie gevonden
				}
				,true);
		}
		function Wiki_DownloadArticle(article,lang,callback)
		{
				messagecacher_instance.getWikiText(article,lang,callback);
				/*
				var options = []
				options['article']=  article
				options['lang'] = lang

				mapsystem.apisystem.command("FETCH_WIKI_ARTICLE",options,	function	(jsonData)
				{
				callback(jsonData.wiki)
				return
				var answers = []
				var pages =jsonData.pages
				for(i in pages)
				{
				if(i != -1)
				{
				var content = pages[i].content
				var star = content['*']
				answers[answers.length] = star
				}
				}
				callback(answers)
				}
				);
				*/
		}
		
		function show_location_from_msg(loc_id)
		{
			if(document.getElementById("frame_loc"))
			{
				if(document.getElementById("frame_loc").style.visibility == "hidden")
				{
					Screen_ShowLocationDetails(loc_id)
				}
				else
				{
					hide_container('_loc', true)
				}
			}
			else
			{
					Screen_ShowLocationDetails(loc_id)
			}
		}

function centeron_world(){map.setCenter(new GLatLng(33.582591163939185,3.1256103515625),3);}
function centeron_australia(){map.setCenter(new GLatLng(-23.6443669478441,132.88942337036133),3);}
function centeron_northamerica(){map.setCenter(new GLatLng(51.835794094289874,-100.54699838161469),3);}
function centeron_europe(){map.setCenter(new GLatLng(50.8475881952258,14.150361120700836),4);}
function centeron_africa(){map.setCenter(new GLatLng(2.6357992916519337,23.378833830356598),3);}
function centeron_southamerica(){map.setCenter(new GLatLng(-25.482934226492976,-57.480498254299164),3);}
function centeron_asia(){map.setCenter(new GLatLng(39.09598791595532,98.96478205919266),3);}
function centeron_netherlands(){centreOn('','NL',7)}
function centeron_belgium(){centreOn('','BE',7)}
function centeron_germany(){centreOn('','germany',6)}
function centeron_england(){centreOn('','england',6)}
function centeron_france(){centreOn('bourges','fr',6)}
function centeron_italy(){centreOn('rome','it',6)}
function centeron_spain(){centreOn('madrid','spain',6)}
function centeron_greece(){centreOn('','greece',6)}
function centeron_norway(){centreOn('','norway',5)}
function centeron_amsterdam(){centreOn('amsterdam','NL',13)}
function centeron_rotterdam(){centreOn('rotterdam','NL',13)}
function centeron_delft(){centreOn('delft','NL',14)}
function centeron_leiden(){centreOn('leiden','NL',14)}
function centeron_denhaag(){centreOn('den haag','NL',13)}
function centeron_groningen(){centreOn('groningen','NL',13)}
function centeron_maastricht(){centreOn('maastricht','NL',13)}
function centeron_utrecht(){centreOn('utrecht','NL',13)}
function centeron_tilburg(){centreOn('tilburg','NL',13)}
function centeron_usa(){centreOn('clarinda','usa',5)}
function centeron_canada(){centreOn('','canada',4)}
function centeron_mexico(){centreOn('','mexico',5)}
function centeron_cuba(){centreOn('','cuba',7)}
function centeron_guatemala(){centreOn('','guatemala',7)}
function centeron_honduras(){centreOn('','honduras',7)}
function centeron_nicaragua(){centreOn('','nicaragua',7)}
function centeron_costarica(){centreOn('','costa rica',7)}
function centeron_panama(){centreOn('','panama',8)}
function centeron_dominicanrepublic(){centreOn('','dominican republic',8)}
function centeron_puertorico(){centreOn('','puerto rico',9)}
function centeron_brasil(){centreOn('','brasil',4)}
function centeron_peru(){centreOn('','peru',5)}
function centeron_argentina(){centreOn('','argentina',4)}
function centeron_chile(){centreOn('santiago','chile',4)}
function centeron_venezuela(){centreOn('','venezuela',6)}
function centeron_suriname(){centreOn('','suriname',7)}
function centeron_bolivia(){centreOn('','bolivia',6)}
function centeron_ecuador(){centreOn('guaranda','ecuador',6)}
function centeron_quyana(){centreOn('','guyana',6)}
function centeron_paraguay(){centreOn('','paraguay',6)}
function centeron_uruguay(){centreOn('','uruguay',7)}
function centeron_australia_c(){centreOn('','australia',4)}
function centeron_newzealand(){centreOn('','new zealand',5)}
function centeron_fiji(){centreOn('','fiji',6)}
function centeron_papuanewguinea(){centreOn('','papua new guinea',6)}
function centeron_solomonislands(){centreOn('','solomon islands',6)}
function centeron_frenchpolynesia(){centreOn('','french polynesia',6)}
function centeron_china(){centreOn('','china',4)}
function centeron_russia(){centreOn('','russia',3)}
function centeron_turkey(){centreOn('','turkey',6)}
function centeron_israel(){centreOn('','israel',7)}
function centeron_japan(){centreOn('tokyo','japan',5)}
function centeron_india(){centreOn('','india',5)}
function centeron_nepal(){centreOn('','nepal',7)}
function centeron_pakistan(){centreOn('','pakistan',6)}
function centeron_indonesia(){centreOn('','indonesia',6)}
function centeron_thailand(){centreOn('','thailand',6)}
function centeron_philippines(){centreOn('','philippines',6)}
function centeron_morocco(){centreOn('','morocco',6)}
function centeron_egypt(){centreOn('','egypt',6)}
function centeron_southafrica(){centreOn('bloemfontein','south africa',5)}
function centeron_kenya(){centreOn('','kenya',6)}
function centeron_tanzania(){centreOn('','tanzania',6)}
function centeron_nigeria(){centreOn('','nigeria',6)}
function centeron_angola(){centreOn('','angola',6)}
function centeron_congo(){centreOn('','congo',6)}
function centeron_algeria(){centreOn('','algeria',5)}
function centeron_tunisia(){centreOn('','tunisia',6)}
function centeronbelgiumsimpel()
{
var buurtmap;
var messageidtotile=[];
var straat=''
var plaats=''
var land=be.value
mapsystem.gotoPlace(straat,plaats,land,function(point,address)
{
}
,true);
}
function centreOn(city,country,zoom)
{
mapsystem.gotoPlace('',city,country,function(point,address){},true);
mapsystem.map.setZoom(zoom)
}/*t_preferences.js*/

function set_personal_pref()
{
	var thezoom
	var thetype
	var thecenter
	var thelat
	var thelong
/*	treelzsystem.treelersocial.getSetting('pref_showlevel',function(setting)
	{
		if(setting == 4){changeNoneMarkers_new()}
		if(setting == 3){changePrivateMarkers_new()}
		if(setting == 2){changeFriendsMarkers_new()}
		if(setting == 1){changePublicMarkers_new()}
	}
	);
*/	
	treelzsystem.treelersocial.getSetting('pref_mapstyle',function(setting)
	{
		if(setting	==	1)
		{
		setmaptypeonsatellite_pref();
		}
		if(setting	==	2)
		{
		setmaptypeonmap_pref();
		}
		if(setting	==	3)
		{
		setmaptypeonhybrid_pref();
		}
		if(setting	==	4)
		{
		setmaptypeonterrain_pref();
		}
	}
	);
	treelzsystem.treelersocial.getSetting('pref_zoom',function(thezoom)
	{
		if(thezoom != 0)
		{
			treelzsystem.treelersocial.getSetting('pref_long',function(thelong)
				{
				if(thelong != 0)
				{
					treelzsystem.treelersocial.getSetting('pref_lat',function(thelat)
					{
						if(thelat != 0)
						{
							var thecenter =new GLatLng(thelat, thelong)
							var rareomweg = thezoom - 0
							mapsystem.map.setCenter(thecenter, rareomweg)
						}
					}
					);
				}
			}
			);
		}
	}
	);
}

function set_domain_pref()
{
	var thetype
	treelzsystem.getDomainSetting(assumeduser,'zoomlevel',function(thezoom)
	{
		if(thezoom != 0)
		{
			treelzsystem.getDomainSetting(assumeduser,'center_lat',function(thelat)
			{
				if(thelat != 0)
				{
					treelzsystem.getDomainSetting(assumeduser,'center_lng',function(thelong)
					{
						if(thelong != 0)
						{
							var thecenter =new GLatLng(thelat, thelong)
							var rareomweg = thezoom - 0
							mapsystem.map.setCenter(thecenter, rareomweg)
							debug("mapsystem.map.setCenter("+thecenter+","+thezoom+")")
						}
					}
					);
				}
			}
			);
		}
	}
	);
}
function	load_content_pref()
{
	clickedon_pref()
	var	thediv_outer	=	document.getElementById("frame_pref")
		thediv_outer.innerHTML	=	'';
	var	thediv	=	document.getElementById("clientarea_inner_pref")
		thediv.innerHTML	=	'';
	var	pref_div	=	createElement(thediv,"pref_div","pref_div",'div')
		pref_div.innerHTML	=	getTrans.Translate("intro_pref")
	
	//fill_pref_showlevel(pref_div)
	fill_pref_mapstyle(pref_div)
	fill_pref_overview_onstartup(pref_div)
	fill_pref_gettingstarted_onstartup(pref_div)
	fill_pref_myinfo_onstartup(pref_div)
	fill_pref_center_zoom(pref_div)
	
	var	submit_div_pref	=	createElement(thediv_outer,"submit_div","submit_div_pref",'div')
	var	center	=	createElement(submit_div_pref,null,null,'center')
	var	submit_div_rel_pref	=	createElement(center,"submit_div_rel","submit_div_rel_pref",'div')
		submit_div_rel_pref.innerHTML	=	'<input	class="input_general_submit"	onclick="javascript:hide_container_pref()"	type="button"	value="'	+	getTrans.Translate("submit_changes")	+	'"	/>';
	show_container("_pref")
	my_own_BuildFunc('_pref')
}
function	hide_container_pref()
{
	hide_container('_pref', true)
}
function	fill_pref_showlevel(pref_div)
{	/*	
	var	pref_showlevel_div_title	=	createElement(pref_div,"spec_pref_title",null,'div')
		pref_showlevel_div_title.innerHTML = getTrans.Translate("view_messages")+":"
	var	pref_showlevel_div	=	createElement(pref_div,"spec_pref_div","pref_showlevel_div",'div')
	var	no_messages_a	=	createElement(pref_showlevel_div,"grey","pref_no_messages",'a')
		no_messages_a.href = "javascript:change_pref_no_messages()"
		no_messages_a.innerHTML = getTrans.Translate("none")
	var	br_element	=	createElement(pref_showlevel_div,null,null,'br')
	var	my_messages_a	=	createElement(pref_showlevel_div,"grey","pref_my_messages",'a')
		my_messages_a.href = "javascript:change_pref_my_messages()"
		my_messages_a.innerHTML = getTrans.Translate("my_own")+'&nbsp;<img src="images/voorbeelden/blue_small.jpg" />'
	var	br_element	=	createElement(pref_showlevel_div,null,null,'br')
	var	friends_messages_a	=	createElement(pref_showlevel_div,"grey","pref_friends_messages",'a')
		friends_messages_a.href = "javascript:change_pref_friends_messages()"
		friends_messages_a.innerHTML = getTrans.Translate("friends")+'&nbsp;<img src="images/voorbeelden/blue_small.jpg" /><img src="images/voorbeelden/orange_small.jpg" />'
	var	br_element	=	createElement(pref_showlevel_div,null,null,'br')
	var	all_messages_a	=	createElement(pref_showlevel_div,"grey","pref_all_messages",'a')
		all_messages_a.href = "javascript:change_pref_all_messages()"
		all_messages_a.innerHTML = getTrans.Translate("all")+'&nbsp;<img src="images/voorbeelden/blue_small.jpg" /><img src="images/voorbeelden/orange_small.jpg" /><img src="images/voorbeelden/white_small.jpg" />'
	treelzsystem.treelersocial.getSetting('pref_showlevel',function(setting)
	{
		if(setting == 4){var pref_no_messages = document.getElementById("pref_no_messages").style.color = "white"}
		if(setting == 3){var pref_my_messages = document.getElementById("pref_my_messages").style.color = "white"}
		if(setting == 2){var pref_friends_messages = document.getElementById("pref_friends_messages").style.color = "white"}
		if(setting == 1){var pref_all_messages = document.getElementById("pref_all_messages").style.color = "white"}
	}
	);
	*/
}
function change_pref_no_messages()
{
	changeNoneMarkers_new()
	var pref_no_messages = document.getElementById("pref_no_messages").style.color = "white"
	var pref_my_messages = document.getElementById("pref_my_messages").style.color = ""
	var pref_friends_messages = document.getElementById("pref_friends_messages").style.color = ""
	var pref_all_messages = document.getElementById("pref_all_messages").style.color = ""
	treelzsystem.treelersocial.setSetting('pref_showlevel',4,function(setting)
	{
	}
	);
}	
function change_pref_my_messages()
{
	changePrivateMarkers_new()
	var pref_no_messages = document.getElementById("pref_no_messages").style.color = ""
	var pref_my_messages = document.getElementById("pref_my_messages").style.color = "white"
	var pref_friends_messages = document.getElementById("pref_friends_messages").style.color = ""
	var pref_all_messages = document.getElementById("pref_all_messages").style.color = ""
	treelzsystem.treelersocial.setSetting('pref_showlevel',3,function(setting)
	{
	}
	);
}	
function change_pref_friends_messages()
{
	changeFriendsMarkers_new()
	var pref_no_messages = document.getElementById("pref_no_messages").style.color = ""
	var pref_my_messages = document.getElementById("pref_my_messages").style.color = ""
	var pref_friends_messages = document.getElementById("pref_friends_messages").style.color = "white"
	var pref_all_messages = document.getElementById("pref_all_messages").style.color = ""
	treelzsystem.treelersocial.setSetting('pref_showlevel',2,function(setting)
	{
	}
	);
}	
function change_pref_all_messages()
{
	changePublicMarkers_new()
	var pref_no_messages = document.getElementById("pref_no_messages").style.color = ""
	var pref_my_messages = document.getElementById("pref_my_messages").style.color = ""
	var pref_friends_messages = document.getElementById("pref_friends_messages").style.color = ""
	var pref_all_messages = document.getElementById("pref_all_messages").style.color = "white"
	treelzsystem.treelersocial.setSetting('pref_showlevel',1,function(setting)
	{
	}
	);
}	
function fill_pref_mapstyle(pref_div)
{	
	var	pref_mapstyle_title	=	createElement(pref_div,"spec_pref_title",null,'div')
		pref_mapstyle_title.innerHTML = getTrans.Translate("map_style")+":"
	var	pref_mapstyle_div	=	createElement(pref_div,"spec_pref_div","pref_mapstyle_div",'div')
	var	button_satellite_a	=	createElement(pref_mapstyle_div,"grey","pref_button_satellite",'a')
		button_satellite_a.href = "javascript:change_pref_maptypeonsatellite()"
		button_satellite_a.innerHTML = getTrans.Translate("satellite")+"&nbsp;&nbsp;&nbsp;"
		button_satellite_a.title = getTrans.Translate("title_satellite")
	var	button_map_a	=	createElement(pref_mapstyle_div,"grey","pref_button_map",'a')
		button_map_a.href = "javascript:change_pref_setmaptypeonmap()"
		button_map_a.innerHTML = getTrans.Translate("map")+"&nbsp;&nbsp;&nbsp;"
		button_map_a.title = getTrans.Translate("title_map")
	var	button_hybrid_a	=	createElement(pref_mapstyle_div,"grey","pref_button_hybrid",'a')
		button_hybrid_a.href = "javascript:change_pref_setmaptypeonhybrid()"
		button_hybrid_a.innerHTML = getTrans.Translate("both")+"&nbsp;&nbsp;&nbsp;"
		button_hybrid_a.title = getTrans.Translate("title_both")
	var	button_terrain_a	=	createElement(pref_mapstyle_div,"grey","pref_button_terrain",'a')
		button_terrain_a.href = "javascript:change_pref_setmaptypeonterrain()"
		button_terrain_a.innerHTML = getTrans.Translate("terrain")
		button_terrain_a.title = getTrans.Translate("title_terrain")
	treelzsystem.treelersocial.getSetting('pref_mapstyle',function(setting)
	{
		if(setting == 1){var pref_button_satellite = document.getElementById("pref_button_satellite").style.color = "white"}
		if(setting == 2){var pref_button_map = document.getElementById("pref_button_map").style.color = "white"}
		if(setting == 3){var pref_button_hybrid = document.getElementById("pref_button_hybrid").style.color = "white"}
		if(setting == 4){var pref_button_terrain = document.getElementById("pref_button_terrain").style.color = "white"}
	}
	);
}
function change_pref_maptypeonsatellite()
{
	setmaptypeonsatellite()
	var pref_button_satellite = document.getElementById("pref_button_satellite").style.color = "white"
	var pref_button_map = document.getElementById("pref_button_map").style.color = ''
	var pref_button_hybrid = document.getElementById("pref_button_hybrid").style.color = ''
	var pref_button_terrain = document.getElementById("pref_button_terrain").style.color = ''
	treelzsystem.treelersocial.setSetting('pref_mapstyle',1,function(setting)
	{
	}
	);
}
function change_pref_setmaptypeonmap()
{
	setmaptypeonmap()								
	var pref_button_satellite = document.getElementById("pref_button_satellite").style.color = ''
	var pref_button_map = document.getElementById("pref_button_map").style.color = "white"
	var pref_button_hybrid = document.getElementById("pref_button_hybrid").style.color = ''
	var pref_button_terrain = document.getElementById("pref_button_terrain").style.color = ''
	treelzsystem.treelersocial.setSetting('pref_mapstyle',2,function(setting)
	{
	}
	);
}
function change_pref_setmaptypeonhybrid()
{
	setmaptypeonhybrid()
	var pref_button_satellite = document.getElementById("pref_button_satellite").style.color = ''
	var pref_button_map = document.getElementById("pref_button_map").style.color = ''
	var pref_button_hybrid = document.getElementById("pref_button_hybrid").style.color = "white"
	var pref_button_terrain = document.getElementById("pref_button_terrain").style.color = ''
	treelzsystem.treelersocial.setSetting('pref_mapstyle',3,function(setting)
	{
	}
	);
}
function change_pref_setmaptypeonterrain()
{
	setmaptypeonterrain()
	var pref_button_satellite = document.getElementById("pref_button_satellite").style.color = ''
	var pref_button_map = document.getElementById("pref_button_map").style.color = ''
	var pref_button_hybrid = document.getElementById("pref_button_hybrid").style.color = ''
	var pref_button_terrain = document.getElementById("pref_button_terrain").style.color = 'white'
	treelzsystem.treelersocial.setSetting('pref_mapstyle',4,function(setting)
	{
	}
	);
}
function fill_pref_overview_onstartup(pref_div)
{
	var	pref_overview_onstartup_title	=	createElement(pref_div,"spec_pref_title",null,'div')
		pref_overview_onstartup_title.innerHTML = getTrans.Translate("overview")+":"
	var	pref_overview_onstartup_div	=	createElement(pref_div,"spec_pref_div","pref_overview_onstartup_div",'div')
		pref_overview_onstartup_div.innerHTML	+=	"<input	type=\"checkbox\"	onClick='changeOverviewStarted_Startup(this)'	id='overviewshowcheckbox_pref'/>"+getTrans.Translate("Show_on_startup")
	treelzsystem.treelersocial.getSetting('show_overview',function(overviewsetting)
	{
		if(overviewsetting	==	1)		//	getting	started
		{
			document.getElementById('overviewshowcheckbox_pref').checked	=	true
		}
		else
		{
			document.getElementById('overviewshowcheckbox_pref').checked	=	false
		}
	}
	);
}
function fill_pref_gettingstarted_onstartup(pref_div)
{
	var	pref_gettingstarted_onstartup_title	=	createElement(pref_div,"spec_pref_title",null,'div')
		pref_gettingstarted_onstartup_title.innerHTML = getTrans.Translate("getting_started")+":"
	var	pref_gettingstarted_onstartup_div	=	createElement(pref_div,"spec_pref_div","pref_gettingstarted_onstartup_div",'div')
		pref_gettingstarted_onstartup_div.innerHTML	+=	"<input	type=\"checkbox\"	onClick='changeGettingStarted_Startup(this)'	id='gettingstartedcheckbox_pref'/>"+getTrans.Translate("Show_on_startup")
	treelzsystem.treelersocial.getSetting('show_gettingstarted',function(setting)
	{
		if(setting	==	1)		//	getting	started
		{
			document.getElementById('gettingstartedcheckbox_pref').checked	=	true
		}
		else
		{
			document.getElementById('gettingstartedcheckbox_pref').checked	=	false
		}
	}
	);
}
function fill_pref_myinfo_onstartup(pref_div)
{
	var	pref_myinfo_onstartup_title	=	createElement(pref_div,"spec_pref_title",null,'div')
		pref_myinfo_onstartup_title.innerHTML = getTrans.Translate("my_info")+":"
	var	pref_myinfo_onstartup_div	=	createElement(pref_div,"spec_pref_div","pref_gettingstarted_onstartup_div",'div')
		pref_myinfo_onstartup_div.innerHTML	+=	"<input	type=\"checkbox\"	onClick='changeMyinfo_Startup(this)'	id='myinfocheckbox_pref'/>"+getTrans.Translate("Show_on_startup")
	treelzsystem.treelersocial.getSetting('show_myinfo',function(setting)
	{
		if(setting	==	1)		//	getting	started
		{
			document.getElementById('myinfocheckbox_pref').checked	=	true
		}
		else
		{
			document.getElementById('myinfocheckbox_pref').checked	=	false
		}
	}
	);
}
function fill_pref_center_zoom(pref_div)
{
	var	pref_center_zoom_title	=	createElement(pref_div,"spec_pref_title",null,'div')
		pref_center_zoom_title.innerHTML = getTrans.Translate("my_starting_point")+":"
	var	pref_center_zoom_div	=	createElement(pref_div,"spec_pref_div","pref_center_zoom_div",'div')
		pref_center_zoom_div.innerHTML	=	getTrans.Translate("current_starting_point")+": "
	var	current_starting_point_div	=	createElement(pref_center_zoom_div,"current_starting_point_div","current_starting_point_div",'div')
	update_values_starting_point()
	pref_center_zoom_div.innerHTML	+=	'<br /><input class="input_general_submit" type="button" value="'+getTrans.Translate("take_current_view_as_starting_point") +'" onclick="javascript:save_new_starting_point()"/>'
}
function update_values_starting_point(targetdiv_id)
{
	if(targetdiv_id)
	{
	var current_starting_point_div = document.getElementById(targetdiv_id)
	}
	else
	{
	var current_starting_point_div = document.getElementById("current_starting_point_div")
	}
	
	treelzsystem.treelersocial.getSetting('pref_long',function(setting)
	{
		current_starting_point_div.innerHTML = getTrans.Translate("longitude") +": "+ setting+"<br />"
	}
	);
	treelzsystem.treelersocial.getSetting('pref_lat',function(setting)
	{
		current_starting_point_div.innerHTML += getTrans.Translate("latitude") +": "+ setting+"<br />"
	}
	);
	treelzsystem.treelersocial.getSetting('pref_zoom',function(setting)
	{
		current_starting_point_div.innerHTML += getTrans.Translate("zoomlevel") +": "+ setting+"<br />"
	}
	);
}
function save_new_starting_point()
{
	var centre = mapsystem.map.getCenter();
	var	value_lat = centre.lat();
	var	value_long = centre.lng();
	var	value_zoom = mapsystem.map.getZoom();
	if(treelzsystem	&&	treelzsystem.treelersocial)
	{
		var nickname_user = treelzsystem.treelersocial.user.nickname
		treelzsystem.setDomainSetting(nickname_user,'center_lat',value_lat,function(x)
		{
		}
		);												
		treelzsystem.setDomainSetting(nickname_user,'center_lng',value_long,function(x)
		{
		}
		);
		treelzsystem.setDomainSetting(nickname_user,'zoomlevel',value_zoom,function(x)
		{
		}
		);
		treelzsystem.treelersocial.setSetting('pref_lat',value_lat,function(setting)
		{
		}
		);
		treelzsystem.treelersocial.setSetting('pref_long',value_long,function(setting)
		{
		}
		);
		treelzsystem.treelersocial.setSetting('pref_zoom',value_zoom,function(setting)
		{
		}
		);
	}
	else
	{
	debug('inloggen!');
	}
	update_values_starting_point()
} 
/*t_search_external.js*/

function ajaxcall(url, vars, callbackFunction){
 
        var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");
 
        request.open("GET", url, true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
 
        request.onreadystatechange = function(){
 
                if (request.readyState == 4 && request.status == 200) {
 
                        if (request.responseText){
 
                                callbackFunction(request.responseText);
                        }
                }
        };
//        request.send(vars);
}


function searchPossiblesOfString(string,callback)
{
 				 var url = 'http://www.treelz.nl/DEVO3/jsonapi.php?command=EXTERNAL&type=geonames&string='+string
				 
 				  ajaxcall(url, [], function(doc)
						{
                  		var	jsonData = eval('('+doc+')')
											callback(jsonData)
						});
}


function searchPossiblesOfWikipedia(string,callback)
{
 				 var url = 'http://www.treelz.nl/DEVO3/jsonapi.php?command=EXTERNAL&type=wikipedia_boundary&max=500&minlat=50&minlong=4&maxlat=52&maxlong=5'
 				  ajaxcall(url, [], function(doc)
						{
                  		var	jsonData = eval('('+doc+')')
											callback(jsonData)
						});
}

/*t_startup.js*/

		var selected_marker = 0;
		var urls = new URLManager();
		eval ("var URLValues = "+urls.GetLocationHash());
		urls.Display("low");
		var lat = URLValues.Cy;
		var long = URLValues.Cx;
		var ma = URLValues.MA;
		
		
		var embedded_version_var = "not embedded"

		if(typeof(URLValues.mz) != "undefined")
		{
				startup_zoomlevel = parseInt(URLValues.mz);
		}
		else
		{
				startup_zoomlevel = 2
		}





		function check_login_error()
		{
		 				 switch (returncode_login)
						{
								case 0:
										{
										alert('ingelogt'); break
								}
								case -1:
										{
										alert('server error on login, request administrator'); break
								}
								case -2:
										{
												/*alert('no login');*/ break
										}
								case -3:
										{
										show_treelz_alert("no_password", "(case_sensitive)"); break
								}
								case -4:
										{
										show_treelz_alert("login_data_incorrect", "(case_sensitive)"); break
								}
								case -5:
										{
										show_treelz_alert("login_data_incorrect", "(case_sensitive)"); break
								}
								case -6:
										{
										show_treelz_alert("no_password_present_in_database"); break
								}
								case -7:
										{
										show_treelz_alert("password_is_wrong", "(case_sensitive)"); break
								}
								case -8:
										{
										show_treelz_alert("check_required_user_level"); break
								}
								case -9:
										{
										show_treelz_alert("not_required_user_level"); break
								}
								case -10:
										{
										show_treelz_alert("not_activated_plus_request"); break
								}
								// And so on.. and so on..
								// whatever is passed to switch that is not caught
								// by the above fall under this category.
								default:
								{
										break
								}
						}
		}
		
		function load_systems()
		{
				//close_treelz_alert()

				//staat nu in t_startup.js
				dynamic_size_windows_load()
				//treelzsystem = new TreelzSystem();//getNewTreelzSystem()
				nr = treelzsystem.createNewMapSystem(map)
				mapsystem = treelzsystem.getMapSystem(nr)
				mapsystem.basepath = baseurl

				mapsystem.apisystem.registerActiveRequestCallback(updated_num_active_requests)

				mapsystem.globalfilter.registerCallbackMoreLocsOnScreen(function(hoeveel, maxi)
				{
						var countdiv = document.getElementById('counter_div')
						countdiv.innerHTML = 'Loaded ' + maxi + ' of ' + hoeveel + " points"


				}
				)
	//			show_global_filter()
				load_global_filter_basics()
				/* -------- Added by Melle 2/10/2008 --------- */
				//alert (domain_gid);
	/*			if (domain_gid != "-1") {
					//alert ("Applying group settings");
					ApplyGroupPrefs (domain_gid, function (prefs) {
						for (key in prefs) {
							//alert ("var " + key + " = " + prefs[key]);
							eval ("var " + key + " = " + prefs[key]);
						}
						thecenter = new GLatLng(pref_lat,pref_long);
						thezoom = pref_zoom
						map.setCenter(thecenter,thezoom);
						switch (pref_map) {
						case 1:
							setmaptypeonsatellite()
							break;
						case 2:
							setmaptypeonmap()
							break;
						case 3:
							setmaptypeonhybrid()
							break;
						case 4:
							setmaptypeonterrain()
							break;
						}
					});
				}
	*/			/* -------- --------------------------------*/
				
		}

		function load_global_filter_basics()
		{
	//		alert(domain_gid)
	//		alert(domain_uid)
		
		    if(domain_uid != -1)
				{
				 //debug('loading user domain ' + domain_uid);
				 turn_on_user_groups(domain_uid)
				}
				else if(domain_gid != -1)
				{
				//debug('loading groep domain ' + domain_gid);
					mapsystem.globalfilter.setGroupFilter(domain_gid,true,true)
					mapsystem.globalfilter.recheckFilter()
				}
				else if(loggedin_id && loggedin_id != -1)
				{
						// logged in
						// set all groups a user is member of!!
						//debug('loading loggedin - load all groups member of!!');
						mapsystem.globalfilter.setGroupFilter(1,true,true)
						gebruikuid = loggedin_id
						mapsystem.groups.getGroupUsersMemberOf(gebruikuid,	function(grps)
						{
								var grp_ids = []
								for(i in grps)
								{
										var grp = grps[i]
										grp_ids[grp.id] = grp.id
								}
								
								mapsystem.globalfilter.setMultipleGroupFilter(grp_ids,true)

						}
						)
				}
				else
				{
						//debug('loading uitgelogd - only load global group');
						// only global
						mapsystem.globalfilter.setGroupFilter(1,true,true)
						mapsystem.globalfilter.recheckFilter()
				}
		}


		function dynamic_size_windows_load()
		{
				window.onresize= fOnResizeWindow;
				fOnResizeWindow()
				loadgm()

		}

		function at_end_map_inc_php()
		{
				SET_DHTML();
				create_general_containers()

				//	load_all_containers()

				//	resize_all_containers()

		}

		function init_load_something()
		{
				mapsystem.setShowNewIcon(false)
				
				load_YUI_menu()
			
				if(domain_uid != -1)
				{
					Screen_InitSideBarUserProfile(domain_uid)
					set_domain_pref()
					close_global_intro()
				}
				else if(domain_gid != -1)
				{
					open_screen_intro_group(domain_gid)
					close_global_intro()
					if(treelzsystem.treelersocial)
					{
						show_logged_in_or_out()	
					}
				}
				else
				{
					
					if(treelzsystem.treelersocial)
					{
						show_logged_in_or_out()	
						close_global_intro()
						
		
						if (lat)
						{
						}
						else
						{
							set_personal_pref()
						}
						
						
					}
					else
					{
						show_global_intro()
					}
				}

				enableMapClick(Screen_Point_ExistingLocClicked,true)
				mapsystem.registerTooltipZoomCallback("tooltip_zoom_clicked");
				mapsystem.registerTooltipMessageDetailCallback('Screen_ShowMessageDetails')
				mapsystem.registerTooltipDetailCallback("tooltip_details_clicked");
				mapsystem.registerAddMessageCallback('Screen_Add_Message');
				mapsystem.registerMapZoomToLatLng('Screen_ZoomToLatLng')
				

				BuildState (URLValues);
				
				open_normal_screens_or_embedded()
				
				mapsystem.globalfilter.registerChanged_GlobalFilters(check_all_filters_if_some_on);
				
		}

		var map

		function open_normal_screens_or_embedded()
		{
				if(embedded_version_var == "not embedded")
				{		
					create_footer_map()
					fill_filter_groups()
					check_all_filters_if_some_on();
				}
					fill_filter_cat()
			
		}
		function loadgm()
		{
				if (GBrowserIsCompatible())
				{
				    // generate map object
						var map_div = document.getElementById("map");
						map = new GMap2(map_div);
						map_div.style.backgroundColor = '#333333';

						// determine the center
						if(domain_center_lat != '0' && domain_center_lat && domain_center_lng != '0' && domain_center_lng  && domain_zoomlevel != '0' && domain_zoomlevel&& domain_pref_map != '0' && domain_pref_map)
						{
								var thecenter = new GLatLng(domain_center_lat, domain_center_lng)
								
								if(domain_pref_map == 1){var thetype =G_SATELLITE_MAP}
								if(domain_pref_map == 2){var thetype =G_NORMAL_MAP}
								if(domain_pref_map == 3){var thetype =G_HYBRID_MAP}
								if(domain_pref_map == 4){var thetype =G_PHYSICAL_MAP}
		//						var thezoom = domain_zoomlevel
						}
						else if (typeof(URLValues.mc) != "undefined")
						{
								eval ("var thecenter = new GLatLng"+URLValues.mc.replace("%20", " ")+"");
						}
						else
						{
								var thecenter =new GLatLng(32.23454143555035, 5.361253023147583)
								var thezoom = startup_zoomlevel
								var thetype =G_SATELLITE_MAP
						}

						// determine zoomlevel from either domain (first) or startup 
						if(domain_zoomlevel != '0' && domain_zoomlevel)
						{
								var thezoom = domain_zoomlevel
						}
						else
						{
								var thezoom = startup_zoomlevel
						}
						
				//		var thetype =G_PHYSICAL_MAP
				//		setcolormaptypes("terrain")
						setcolormaptypes("satellite")

						//
						if (typeof(lat) != "undefined")
						{
				//			alert("en dit?")
								thecenter = new GLatLng(lat,long)
								if (ma == "s") thetype =G_SATELLITE_MAP;
								if (ma == "m") thetype =G_NORMAL_MAP;
								if (ma == "h") thetype =G_HYBRID_MAP;
								if (ma == "t") thetype =G_PHYSICAL_MAP;
						}

//alert('de ma: ' + ma + ' , de type:' + thetype.getName())
//alert('blabla')		
						/* -------- Added by Melle 28/9/2008 --------- 
						alert (domain_gid);
						if (domain_gid != "-1") {
							alert ("Applying group settings");
							ApplyGroupPrefs (domain_gid, function (prefs) {
								for (key in prefs) {
									alert ("var " + key + " = " + prefs[key]);
									eval ("var " + key + " = " + prefs[key]);
								}
								thecenter = new GLatLng(pref_lat,pref_long);
								thezoom = pref_zoom
								//map.setCenter(thecenter,thezoom);
							});
						}
						/* -------- --------------------------------*/
						
						map.setCenter(thecenter,thezoom,thetype)
//alert('blabla2')

						map.enableScrollWheelZoom()
						map.enableContinuousZoom()

						goverviewcontrol = new GOverviewMapControl(new GSize(150,100))
						map.addControl(goverviewcontrol);


				}
		}

		var winW = -1;
		var winH = -1;

		function fOnResizeWindow()

		{

				var winH = document.body.offsetHeight;
				var winW = document.body.offsetWidth;



				if(winH > 75)
				{
						var mapH = winH - 60;
				}
				else
				{
						var mapH = 75;
				}

				document.getElementById('map').style.height = mapH;
				document.getElementById('middle').style.height = mapH;
				document.getElementById('largepicture').style.maxHeight = mapH - 14;

				resize_all_containers()

				center_container_hor("footer_map")
		
				
		//		center_container_hor("footer_map_old")

				if(document.getElementById('centered_screen'))
				{
						center_div('centered_screen')
				}
				if(document.getElementById('intro_screen'))
				{
						center_div('intro_screen')
				}
				if(document.getElementById('ajax_loader_div'))
				{
						center_div('ajax_loader_div')
				}
				if(document.getElementById('count_and_loading_div_outer'))
				{
						center_container_hor('count_and_loading_div_outer')
				}
				if(document.getElementById('frame_set'))
				{
					center_container("_set")
				}
				if(document.getElementById('frame_help'))
				{
					center_container("_help")
				}
				if(document.getElementById('frame_intro'))
				{
					center_container("_intro",	25)
				}
				if(document.getElementById('frame_link'))
				{
					center_container("_link")
				}
				
				


				
				
		}


		function check_browser()
		{
			testapple_or_not()
			
		  var brwsr = BrowserDetect.browser;
			var vers = BrowserDetect.version
			
				if (brwsr == "Explorer")
				{
						if (vers == "6")
						{
								if (navigator.appMinorVersion== "SP1")
								{
										alert_browser_old_version_explorer_SP1()
										return false;
								}
								else
								{
								  	return true;//load_systems()										
								}
						}
						else if (BrowserDetect.version == "7")
						{
								return true;	//load_systems()							
						}
						else if (BrowserDetect.version == "8")
						{
								
							//	hide_tools_on_map()
							//	close_global_intro()
							//	hide_container_all(true)
							//	alert_browser_not_tested()
							//	return false;
								return true;//load_systems()
						}
						else
						{
								alert_browser_old_version()
								return false;
						}

				}
				else if (BrowserDetect.browser == "Firefox")
				{
						if (BrowserDetect.OS == "Windows")
						{
								if (BrowserDetect.version == "2")
								{
								return true;//load_systems()
								}
								else if (BrowserDetect.version == "1")
								{
										alert_browser_old_version()
										return false;
								}
								else if (BrowserDetect.version == "3")
								{
										return true;//load_systems()
								}
						}

						if (BrowserDetect.OS == "Mac")
						{
								if (BrowserDetect.version == "2")
								{
										return true;//load_systems()
								}
								else if (BrowserDetect.version == "1")
								{
										alert_browser_old_version()
										return fakse;
								}
								else if (BrowserDetect.version == "3")
								{
										return true;//load_systems()
								}
						}
				}
				else if (BrowserDetect.browser == "Safari")
				{
				    /*
						if (BrowserDetect.OS == "Mac")
						{

						
								if (window.devicePixelRatio) //een element dat alleen in Safari 3 voorkomt
								{
								
										return true;//load_systems()
								}

								else
								{
																		alert_browser_old_version()
										return true;//load_systems()
								}
								
						}

						if (BrowserDetect.OS == "Windows")
						{
								if (window.devicePixelRatio) //een element dat alleen in Safari 3 voorkomt
								{
										return true;//load_systems()
								}

								else
								{
																		alert_browser_old_version()
										return true;//load_systems()
								}
						}
						*/
						
						// JUST DOESNT WORK IN SAFARI!
//						alert_browser_old_version();

					//	alert_browser_not_tested()
					//	hide_tools_on_map()
						
						return true;
				}
				else if (BrowserDetect.browser == "Opera")
				{
				//		alert_browser_not_tested()
				//		hide_tools_on_map()
				//		return false;
				return true;
				}
				else
				{
					
					return true;
					//	alert_browser_not_tested()
					//	hide_tools_on_map()
					//	return false;
				}

		}

		function alert_browser_old_version()
		{
				var treelz_alert_div = document.getElementById('treelz_alert_div')


				treelz_alert_div.innerHTML = getTrans.Translate("you_are_using")+' '+BrowserDetect.browser+' '+BrowserDetect.version+' '+getTrans.Translate("on")+' '+BrowserDetect.OS+'.<br /> <br />'
				treelz_alert_div.innerHTML += getTrans.Translate("alert_browser_old_version")

				if(BrowserDetect.browser == "Firefox")
				{
						treelz_alert_div.innerHTML += '<br /> <br /><strong><a href="http://www.firefox.com" target="_blank">Download Firefox 2</a></strong>'
				}

				if(BrowserDetect.browser == "Safari")
				{
						treelz_alert_div.innerHTML += '<br /> <br /><strong><a href="http://www.apple.com/safari" target="_blank">Download Safari 3</a></strong>'
				}

				if(BrowserDetect.browser == "Explorer")
				{

						treelz_alert_div.innerHTML += '<br /> <br /><strong><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx" target="_blank">Download Internet Explorer 7</a></strong>'
				}

				treelz_alert_div.innerHTML += getTrans.Translate("treelz_tested_on")
				show_alert()
		}

		function alert_browser_old_version_explorer_SP1()
		{

				var treelz_alert_div = document.getElementById('treelz_alert_div')


				treelz_alert_div.innerHTML = getTrans.Translate("you_are_using")+' '+BrowserDetect.browser+' '+BrowserDetect.version+' SP1 '+getTrans.Translate("on")+' '+BrowserDetect.OS+'.<br /> <br />'
				treelz_alert_div.innerHTML += getTrans.Translate("alert_browser_old_version")

				treelz_alert_div.innerHTML += '<br /> <br /><strong><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx" target="_blank">Download Internet Explorer 7</a></strong>'

				treelz_alert_div.innerHTML += getTrans.Translate("treelz_tested_on")
				show_alert()
		}


		function alert_browser_not_tested()
		{
				var treelz_alert_div = document.getElementById('treelz_alert_div')

				treelz_alert_div.innerHTML = 'You\'re using	'+BrowserDetect.browser+' '+BrowserDetect.version+' on '+BrowserDetect.OS+'.<br /> <br />'
				treelz_alert_div.innerHTML += getTrans.Translate("alert_browser_not_tested")
				treelz_alert_div.innerHTML += getTrans.Translate("treelz_tested_on")


				show_alert()
		}

		function show_alert()
		{
				treelz_alert_div.style.visibility = "inherit"

				var treelz_alert_a_close = createElement(treelz_alert_div,"treelz_alert_a_close","treelz_alert_a_close",'a');
				treelz_alert_a_close.href = "javascript:close_treelz_alert()"


				var bodyW = document.body.offsetWidth;
				var alert_divW = document.getElementById('treelz_alert_div').offsetWidth;

				treelz_alert_div.style.left = (bodyW/2) - (alert_divW/2)
		}





		function show_logged_in_or_out(domain_user_id)
		{
				if(treelzsystem.treelersocial)
				{
					if(domain_gid == -1)
					{
						treelzsystem.treelersocial.getSetting('show_overview',function(overviewsetting)
						{
								if(overviewsetting	==	1)
								{
										
										set_bu_footer_overview()	;//	overview
										
								}
								else
								{
										//	dont	show	overview
								}
						}
						);
						treelzsystem.treelersocial.getSetting('show_gettingstarted',function(setting)
						{
								if(setting	==	1)
								{	
									show_help_container();
								}	
								if(setting	==	0)
								{	
									hide_container("_help");
								}
						}
						);
				}
						treelzsystem.treelersocial.getSetting('show_myinfo',function(setting)
						{
								if(setting	==	1)
								{
										set_bu_footer_myinfo()
								}
								if(setting	==	0)
								{
									treelzsystem.treelersocial.hasRequestOrInvites(function(user_has_info)
									{
										if(user_has_info == true)
										{
											set_bu_footer_myinfo()
										}
									}
									);
								}
						}
						);


				}
		}







		function BuildState(status)
		{
				/* Wat nog niet werkt is:_help en _pref */

				/*
				Legenda:

				Cx = Mapcenter long
				Cy = Mapcenter lat

				Uid = User id

				U = Userprofile
				i = init
				p = pictures
				m = messages
				tr = treelz
				f = friends
				ta = tags

				L = Location
				
				M = Message
				
				V = Overview
				i = init
				p = pictures
				m = messages
				nt = new treelerz
				al = all treelerz
				tn = treelerz newest
				tf = treelerz friends
				s = search
				
				MI = My Info
				
				H = Help (Getting started)
				I = Introduction screen
				i = init
				cl = closed
				x = Extra info
				n = News
				c = Contact
				t = Terms of Use
				l = Links
				T = Treelz
				p = pictures
				m = messages
				i = init

				MA = map setting
				h = hybrid
				m = map
				s = satellite


				MM = Messages on map
				n = none
				a = all
				f = friends
				s = specific user

				G = Groupprofile
				Gid = Group id


				*/



				for (key in status)
				{
						if (key == "EMB")
						{
							embedded_version_var = "embedded"
						}
						
						if (key == "Cy")
						{
							close_global_intro()
						}
						if (key == "U")
						{
								if(status.Uid && status.Uid != "undefined")
								{
										Screen_InitSideBarUserProfile(status.Uid);

										if (status.U == "i")
										{
										}
										if (status.U == "p")
										{
												show_pictures_userprofile(status.Uid);
										}
										if (status.U == "m")
										{
												show_messages_userprofile(status.Uid);
										}
										if (status.U == "tr")
										{
												show_treelz_userprofile(status.Uid);
										}
										if (status.U == "f")
										{
												show_friends_userprofile(status.Uid);
										}
										if (status.U == "ta")
										{
												show_messages_by_tag_userprofile(status.Uid);
										}
								}
						}
						if (key == "G")
						{
								if(status.Gid && status.Gid != "undefined")
								{
									Screen_ShowGroupDetails(status.Gid);

										if (status.G == "i")
										{
										}
										if (status.G == "p")
										{
												show_pictures_groupprofile(status.Gid);
										}
										if (status.G == "m")
										{
												show_messages_groupprofile(status.Gid);
										}
										if (status.G == "f")
										{
												show_members_groupprofile(status.Gid);
										}
								}
						}
						if (key == "L")
						{
								if(status.L && status.L != "undefined")
								{
										Screen_ShowLocationDetails(status.L);
								}
						}
						if (key == "M")
						{
								if(status.M && status.M != "undefined")
								{
										Screen_ShowMessageDetails(status.M);
								}
						}
						if (key == "V")
						{
								show_overview_fm();
								if (status.V == "i") show_new_all();
								if (status.V == "p") show_new_pictures();
								if (status.V == "m") show_new_messages();
								if (status.V == "nt") show_new_treelerz();
								if (status.V == "at") show_treelerz_all();
								if (status.V == "tn") show_treelerz_new();
								if (status.V == "tf")show_treelerz_friends();
								if (status.V == "s") show_search();
						}
						if (key == "MI") show_info_container_notonstartup();
						if (key == "H")
						{
								look_around();
								//show_getting_started(status[key]);
						}



						if (key == "_lrg") show_large_picture(status[key])


						if (key == "MA")
						{
								if (status.MA == "s") setmaptypeonsatellite();
								if (status.MA == "m") setmaptypeonmap();
								if (status.MA == "h") setmaptypeonhybrid();
								if (status.MA == "t") setmaptypeonterrain();
						}
						
						if (key == "I")
						{
							show_global_intro()
								if (status.I == "S") {}
								if (status.I == "G1") show_more_details('groups', 1)
								if (status.I == "G2") show_more_details('groups', 2)
								if (status.I == "G3") show_more_details('groups', 3)
								if (status.I == "T1") show_more_details('travel', 1)
								if (status.I == "T2") show_more_details('travel', 2)
								if (status.I == "T3") show_more_details('travel', 3)
								if (status.I == "T4") show_more_details('travel', 4)
								if (status.I == "M1") show_more_details('maplog', 1)
								if (status.I == "M2") show_more_details('maplog', 2)
								if (status.I == "M3") show_more_details('maplog', 3)
						}
						
						if (key == "GS")
						{
							close_global_intro()
							show_help_container()
							
								if (status.GS == "1") show_getting_started(1)
								if (status.GS == "2") show_getting_started(2)
								if (status.GS == "3") show_getting_started(3)
								if (status.GS == "4") show_getting_started(4)
								if (status.GS == "5") show_getting_started(5)
								if (status.GS == "6") show_getting_started(6)
								if (status.GS == "7") show_getting_started(7)
						}

			//			if (key == "MM")
			//			{
			//					if(status.MMid && status.MMid != "undefined")
			//					{
			//							if (status.MM == "n") changeNoneMarkers_new();
			//							if (status.MM == "a") changePublicMarkers_new();
			//							if (status.MM == "f") changeFriendsMarkers_new();
			//							if (status.MM == "s") Screen_Clicked_ShowUserOnly(status.MMid);
			//					}
			//			}
			//			if (key == "TA")
			//			{
			//					if(status.TAid && status.TAid != "undefined")
			//					{
			//							if(status.Uid && status.Uid != "undefined")
			//							{
			//									Screen_ShowTagMessage(status.Uid,status.TAid);
			//									if (status.TA == "p")
			//									{
			//											show_pictures_tag(status.TAid,status.Uid);
			//									}
			//							}
			//					}
			//			}
			//			if (key == "I") {
//
			//					if (status.I == "cl")
			//					{
			//							//			hide_container('_intro', true);
			//							urls.AddVariable("I", "cl");
			//							urls.UpdateURL();
			//					}
			//					else
			//					{
			//							//		 show_intro_container()

			//							if (status.I == "x") show_inintro_extra_info();
			//							if (status.I == "n") all_news_intro();
			//							if (status.I == "c") show_inintro_contact();
			//							if (status.I == "t") show_inintro_terms_of_use();
			//							if (status.I == "l") show_inintro_links();
			//					}
			//			}


						if (key == "T")
						{
								if(status.Tid && status.Tid != "undefined")
								{
										if(status.Uid && status.Uid != "undefined")
										{
												Screen_ShowTreel(status.Tid,status.Uid,true);
												//	alert("T")
												if (status.T == "p")
												{
														show_pictures_treel(status.Tid,status.Uid);
														//	alert("T pics")
												}
												if (status.T == "m") show_messages_treel(status.Tid,status.Uid);
												if (status.T == "i") show_info_treel(status.Tid,status.Uid);
										}
								}
						}

				}
		}
		// BROSWER CHECK
		var BrowserDetect =
		{
				init: function ()
				{
						this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
						this.version = this.searchVersion(navigator.userAgent)
						|| this.searchVersion(navigator.appVersion)
						|| "an unknown version";
						this.OS = this.searchString(this.dataOS) || "an unknown OS";
				}
				,
				searchString: function (data)
				{
						for (var i=0;i<data.length;i++)
						{
								var dataString = data[i].string;
								var dataProp = data[i].prop;
								this.versionSearchString = data[i].versionSearch || data[i].identity;
								if (dataString)
								{
										if (dataString.indexOf(data[i].subString) != -1)
										return data[i].identity;
								}
								else if (dataProp)
								{
										return data[i].identity;
								}
						}
				}
				,
				searchVersion: function (dataString)
				{
						var index = dataString.indexOf(this.versionSearchString);
						if (index == -1) return;
						return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
				}
				,
				dataBrowser: [
				{
						string: navigator.userAgent,
						subString: "OmniWeb",
						versionSearch: "OmniWeb/",
						identity: "OmniWeb"
				}
				,
				{
						string: navigator.vendor,
						subString: "Apple",
						identity: "Safari"
				}
				,
				{
						prop: window.opera,
						identity: "Opera"
				}
				,
				{
						string: navigator.vendor,
						subString: "iCab",
						identity: "iCab"
				}
				,
				{
						string: navigator.vendor,
						subString: "KDE",
						identity: "Konqueror"
				}
				,
				{
						string: navigator.userAgent,
						subString: "Firefox",
						identity: "Firefox"
				}
				,
				{
						string: navigator.vendor,
						subString: "Camino",
						identity: "Camino"
				}
				,
				{
						// for newer Netscapes (6+)
						string: navigator.userAgent,
						subString: "Netscape",
						identity: "Netscape"
				}
				,
				{
						string: navigator.userAgent,
						subString: "MSIE",
						identity: "Explorer",
						versionSearch: "MSIE"
				}
				,
				{
						string: navigator.userAgent,
						subString: "Gecko",
						identity: "Mozilla",
						versionSearch: "rv"
				}
				,
				{
						// for older Netscapes (4-)
						string: navigator.userAgent,
						subString: "Mozilla",
						identity: "Netscape",
						versionSearch: "Mozilla"
				}
				],
				dataOS : [
				{
						string: navigator.platform,
						subString: "Win",
						identity: "Windows"
				}
				,
				{
						string: navigator.platform,
						subString: "Mac",
						identity: "Mac"
				}
				,
				{
						string: navigator.platform,
						subString: "Linux",
						identity: "Linux"
				}
				]

		}
		;

		BrowserDetect.init();


		function embedded_version()
		{
			
								var	footer_map	=	document.getElementById("footer_map")
									footer_map.style.display = "none"
							
								var	groups_selection	=	document.getElementById("groups_selection")
									groups_selection.style.display = "none"

				//				var	header	=	document.getElementById("header")
				//					header.style.display = "none"
									
									
									hide_container('_intro', true)

			
		}

		function check_browser_old_IE_or_safari()
		{
				if (BrowserDetect.browser == "Explorer")
				{
						if (BrowserDetect.version == "6")
						{
								if (navigator.appMinorVersion== "SP1")
								{
										alert_old_browser()
										show_treelz_alert()
								}
						}
				}
				else if (BrowserDetect.browser == "Safari")
				{
						if (BrowserDetect.OS == "Mac")
						{

								if (!window.devicePixelRatio)
								{
										alert_old_browser()
										show_treelz_alert()
								}

						}


				}

		}

		function alert_old_browser()
		{
				var treelz_alert_div = document.getElementById('treelz_alert_div')

				treelz_alert_div.innerHTML =getTrans.Translate("alert_browser_old_version")

				treelz_alert_div.innerHTML += '<br /> <br /><strong><a href="http://www.firefox.com" target="_blank">Download Firefox 2</a></strong>'
				treelz_alert_div.innerHTML += '<br /> <br /><strong><a href="http://www.apple.com/safari" target="_blank">Download Safari 3</a></strong>'
				treelz_alert_div.innerHTML += '<br /> <br /><strong><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx" target="_blank">Download Internet Explorer 7</a></strong>'

				treelz_alert_div.innerHTML += getTrans.Translate("treelz_tested_on")
		}



		
		function unload_the_treelz_system()
				{
				/*
						treelzystem.nullify();
						mapsystem.nullify();
						treelzsystem=null;
						nr=null;
						mapsystem=null;
						msgcacher =null;
						httphost =null;
						subdomain = null;
						assumeduser = null;
						domain_uid = null;
						domain_gid = null;
						assumeduser =null;
						domain_center_lat =null;
						domain_center_lng = null;
						domain_zoomlevel = null;
						baseurl = null;
						loggedin_id = null;
						dodebug = null;
						sid = null;
						returncode_login = null;
						urls = null;
						BrowserDetect = null;

						delete	 treelzsystem;
						delete nr;
						delete mapsystem;
						delete msgcacher ;
						delete httphost ;
						delete subdomain ;
						delete assumeduser ;
						delete domain_uid ;
						delete domain_gid ;
						delete assumeduser ;
						delete domain_center_lat ;
						delete domain_center_lng ;
						delete domain_zoomlevel ;
						delete baseurl ;
						delete loggedin_id ;
						delete dodebug ;
						delete sid ;
						delete returncode_login ;
						delete urls ;
						delete BrowserDetect ;
*/
						GUnload()
				}/*t_treel.js*/
				
				
var	tr = new DrawTreelz();
var selected_treel_point = "0";
var locations = [];
/*
var	tempiets
*/
function	load_content_treel(treelid,userid, URL)
{

	clickedon_treel(treelid,userid)
	var	containerdiv_outer	=		document.getElementById("frame_treel")
		containerdiv_outer.innerHTML	=	'';
	var	tabs_div	=	createElement(containerdiv_outer,"tabs_div","tabs_user",'div')
	var	name_div	=	createElement(containerdiv_outer,"name_div","name_div",'div')
	fill_tabs_treel_div(tabs_div,	treelid,	userid, name_div)
	show_container("_treel")
	show_info_treel(treelid,userid)
//	create_normal_buttons(treelid, userid)
	build_treel_line (treelid, URL);
}
function create_submit_buttons(treelid, userid, type)
{
	var	buttons_center_treel_div = document.getElementById("buttons_center_treel_div")
		buttons_center_treel_div.style.width = "0px"
		buttons_center_treel_div.innerHTML = ''
	if(type == "description")
	{
		create_clickable_icon("buttons_center_treel_div", "submit", "icon_submit", "javascript:Edit_Treel_Save("+treelid+", "+userid+")",  "title_submit", null,  "left", 0, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_treel_div", "cancel", "icon_cancel", "javascript:show_info_treel("+treelid+", "+userid+")",  "title_cancel", null,  "left", 6, option_b_o, option_f_o)
	}
	if(type == "order")
	{
		create_clickable_icon("buttons_center_treel_div", "moveup", "icon_move_up", "javascript:tr.MoveUp("+treelid+","+userid+",selected_treel_point)",  "title_move_up", null,  "left", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_treel_div", "movedown", "icon_move_down", "javascript:tr.MoveDown("+treelid+","+userid+",selected_treel_point)",  "title_move_down", null,  "left", 6, option_b_o, option_f_o)
		
		create_clickable_icon("buttons_center_treel_div", "submit", "icon_submit", "javascript:save_new_treel_order("+treelid+", "+userid+")",  "title_submit", null,  "left", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_treel_div", "cancel", "icon_cancel", "javascript:cancel_edit_treel("+treelid+", "+userid+")",  "title_cancel", null,  "left", 6, option_b_o, option_f_o)
		

	}
	if(type == "delete")
	{
		create_clickable_icon("buttons_center_treel_div", "submit", "icon_submit", "javascript:Delete_Treel_Yes_Submit("+treelid+", "+userid+")",  "title_delete_treel", null,  "left", 0, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_treel_div", "cancel", "icon_cancel", "javascript:Delete_Treel_No_Submit("+treelid+", "+userid+")",  "title_cancel", null,  "left", 6, option_b_o, option_f_o)
	}
	
		
}
function create_normal_buttons(treelid, userid)
{
	var	buttons_center_treel_div = document.getElementById("buttons_center_treel_div")
		buttons_center_treel_div.innerHTML = ''
		buttons_center_treel_div.style.width = "0px"
		
	
	create_buttons_general(treelid, userid)
	if(userid	==	loggedin_id)
	{
		create_buttons_edit(treelid, userid)
	}		
	
	
}
function create_buttons_general(treelid, userid)
{								
	var	buttons_center_treel_div = document.getElementById("buttons_center_treel_div")

		var	show_unshow_line_div	=	createElement(buttons_center_treel_div,"float_right","show_unshow_line_div",'div')
			
			adjust_size_to_image(show_unshow_line_div, "images/1_knoppen/icon_treel_line_hide.png")
			add_size_to_element(buttons_center_treel_div, "images/1_knoppen/icon_treel_line_hide.png")
		
		create_clickable_icon("show_unshow_line_div", "show_hide_treel_line", "icon_treel_line_hide", "javascript:hide_treel_line("+treelid+")",  "title_hide_treel_line", null,  "right", 0, option_b_o, option_f_o, true)
		create_clickable_icon("buttons_center_treel_div", "zoom_in_on_treel", "icon_zoom_in", "javascript:tr.CenterTreel("+treelid+")",  "title_zoomout_treel", null,  "right", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_treel_div", "zoom_out_from_treel", "icon_zoom_out", "javascript:zoomout()",  "title_zoomin_treel", null,  "right", 6, option_b_o, option_f_o)
//		create_clickable_icon("buttons_center_treel_div", "create_route_treel", "icon_treel_line_hide", "javascript:toggle_treel_view("+treelid+")",  "title_build_route_of_treel_points", null,  "right", 6, option_b_o, option_f_o)
}
function create_buttons_edit(treelid, userid)
{
		create_clickable_icon("buttons_center_treel_div", "order_treel", "icon_treel_order", "javascript:order_messages_treel_wrapper("+treelid+", "+userid+")",  "title_change_order", null,  "right", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_treel_div", "delete_treel", "icon_delete", "javascript:Delete_Treelz("+treelid+", "+userid+")",  "title_delete_treel", null,  "right", 6, option_b_o, option_f_o)
		create_clickable_icon("buttons_center_treel_div", "edit_treel", "icon_edit", "javascript:Edit_Treel("+treelid+", "+userid+")",  "title_edit_description_treel", null,  "right", 6, option_b_o, option_f_o)
}
function	show_info_treel(treelid, userid)
{
	urls.AddVariable("T", "i");
	urls.AddVariable("Tid", treelid);
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	var thediv	=	document.getElementById('clientarea_inner_treel')
		thediv.innerHTML = ''
	var usrdiv	=	createElement(thediv,null,null,'div')
	var descdiv	=	createElement(thediv,null,null,'div')
	var distance_treel = createElement(thediv,"distance_treel","distance_treel",'div')
	mapsystem.treelz.getTreel(treelid,function(treel)
	{
		descdiv.innerHTML	=	'<br	/>'+treel.description+'<br	/><br	/>'
		my_own_BuildFunc('_treel')
	}
	);
	create_normal_buttons(treelid, userid)
}
function	show_pictures_treel(treelid, userid)
{
	urls.AddVariable("T", "p");
	urls.AddVariable("Tid", treelid);
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	var thediv	=	document.getElementById('clientarea_inner_treel')
		thediv.innerHTML	=	'';
	mapsystem.treelz.getTreel(treelid,function(foundtreel)
	{
		thediv.innerHTML	=	''
		for(i	in	foundtreel.tpoints)
		{
			var	tpoint	=	foundtreel.tpoints[i]
			mapsystem.getMessage(tpoint.themessage,function(msg)
			{							    
				fill_detailstreel_point(msg,thediv,foundtreel,4)       									
				msg.getAttachedMessages(function(childs)
				{
					for(i in childs)
					{
						var child = childs[i]
						fill_detailstreel_point(child,thediv,foundtreel,4)
					} 
				}
				);
			}
			);
		}
	}
	);
	my_own_BuildFunc('_treel')
	create_normal_buttons(treelid, userid)
}
function	show_messages_treel(treelid, userid)
{
	urls.AddVariable("T", "m");
	urls.AddVariable("Tid", treelid);
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	var thediv	=	document.getElementById('clientarea_inner_treel')
		thediv.innerHTML	=	'';
	
	mapsystem.treelz.getTreel(treelid,function(foundtreel)
		{
		thediv.innerHTML	=	''
		for(i	in	foundtreel.tpoints)
		{
			var	tpoint	=	foundtreel.tpoints[i]
			mapsystem.getMessage(tpoint.themessage,function(msg)
			{							    
				fill_detailstreel_point(msg,thediv,foundtreel,1)       									
				msg.getAttachedMessages(function(childs)
				{
					for(i in childs)
					{
						var child = childs[i]
						fill_detailstreel_point(child,thediv,foundtreel,1)
					} 
				}
				);
			}
			);
		}
	}
	);
	create_normal_buttons(treelid, userid)
}
function Edit_Treel_Save(treelid)
{
	mapsystem.treelz.getTreel(treelid,function(foundtreel)
	{
		var txtarea = document.getElementById('treel_edit_textarea')
		var desc = txtarea.value
		var titelarea = document.getElementById('input_general_title')
		var titel = titelarea.value
		foundtreel.updateDescription(desc,function(x)
		{
			x.updateTitel(titel,function(y)
			{
				Screen_ShowTreel(treelid,y.userid)
			}
			);
		}
		);
	}
	);
}
function	Edit_Treel(treelid, userid)
{
	create_submit_buttons(treelid, userid, "description")
	mapsystem.treelz.getTreel(treelid,function(foundtreel)
	{
		var	thediv	=	document.getElementById('clientarea_inner_treel')
			thediv.innerHTML	=	''
			thediv.innerHTML	+=	'<br	/><br	/>'+getTrans.Translate("about_this_treel")+':<br	/>'
			thediv.innerHTML	+=	'<input type="text" id="input_general_title" value="'+foundtreel.name+'" 	class="input_general_text"	><br/>'
			thediv.innerHTML	+=	'<textarea rows="5"  name="textarea1" 	class="input_general_text"	id="treel_edit_textarea">'+foundtreel.description+'</textarea>';
		my_own_BuildFunc('_treel')
	}
	);
}
function Delete_Treelz(treelid, userid)
{
	create_submit_buttons(treelid, userid, "delete")
	var	thediv = document.getElementById("clientarea_inner_treel")
		thediv.innerHTML = getTrans.Translate("confirm_treel_delete");
	my_own_BuildFunc("_treel")
}
function	Delete_Treel_No_Submit(treelid, userid)
{
	mapsystem.treelz.getTreel(treelid,function(foundtreel)
	{
		Screen_ShowTreel(treelid,foundtreel.userid)
	}
	);
}
function	Delete_Treel_Yes_Submit(treelid, userid)
{
	mapsystem.treelz.deleteTreel(treelid,function(x)
	{
		var	thediv	=	document.getElementById("clientarea_inner_treel")
			thediv.innerHTML	=	''
		var	fill_str	=	''
			fill_str	+=	getTrans.Translate("treel_deleted");
		thediv.innerHTML	=	fill_str
		my_own_BuildFunc("_msg")      						
	}
	);
}
function	fill_detailstreel_point(msg,thediv,foundtreel,type)
{					   
	if(msg.type==type)
	{
		if(type ==4)
		{
			var the_a	=	createElement(thediv,null,null,'a')
				the_a.setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+msg.id+')')
			var	theimg	=	createElement(the_a,"thumb_img","thumb_img",'img')
				theimg.setAttribute('width','56')
				theimg.setAttribute('height','42')
				theimg.setAttribute('src','imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+msg.picture_id)
			my_own_BuildFunc('_treel')
		}
		else if(type ==1)
		{
			thediv.innerHTML	+=	'<a	href="javascript:Screen_ShowMessageDetails_from_container('+msg.id+')">'+msg.title+'</a><br	/>'
			my_own_BuildFunc('_treel')
		}
	}
}
function	fill_tabs_treel_div(tabs_userprofile_div,	treelid,	userid, name_div)
{
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		name_div.innerHTML	 +=	'<a	href="javascript:Screen_InitSideBarUserProfile('+userid+')">'	+	gevondenuser.firstname	+	'	'	+	gevondenuser.lastname+'</a>';
	}
	);
	var	show_profile_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_profile_a.href	=	"javascript:show_info_treel("+treelid+",	"+userid+")"
		show_profile_a.innerHTML	=	getTrans.Translate("info")
		show_profile_a.title	=	getTrans.Translate("title_show_profile_user")
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_pictures_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_pictures_a.href	=	"javascript:show_pictures_treel("+treelid+", "+userid+")"
		show_pictures_a.innerHTML	=	getTrans.Translate("pictures")
		show_pictures_a.title	=	getTrans.Translate("title_show_pictures_user")
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_messages_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_messages_a.href	=	"javascript:show_messages_treel("+treelid+", "+userid+")"
		show_messages_a.innerHTML	=	getTrans.Translate("messages")
		show_messages_a.title	=	getTrans.Translate("title_show_messages_user")
}
function build_treel_line (treelid, URL) {
	if (tr.ReturnPool(treelid) == "INPOOL") {
		//alert ("Doe niets, niet 2x die lijn tekenen :S");	
		tr.ShowTreel(treelid);
	}
	else {
	mapsystem.getTreelMessages (treelid, "order", function (Puntjes_tmp)
	{
		tr.AddTreel(treelid, "#00FF00", "4");

		for (i in Puntjes_tmp) 
		{
			var Puntjes = Puntjes_tmp[i];
			tr.AddPoint(Puntjes.trail_id, Puntjes.latitude, Puntjes.longitude, Puntjes.tpoint_id, "lijn1", Puntjes.messageid, Puntjes.messagetitle);
		}
		tr.BuildTreel(treelid);
		//hide_treel_line (treelid)
		if (URL == true) 
		{
			tr.Pool(treelid);
		}
		if (tr.ReturnPool(treelid) == "INPOOL") 
		{
		}
		else 
		{
			treel_center_clicked(treelid)
			tr.Pool(treelid);
		}
		var distance_treel = document.getElementById("distance_treel")
		//distance_treel.innerHTML = tr.Distance(treelid)
		//		if (confirm("Hide treel:" + treelid)) { 
		//			tr.HideTreel(treelid);
		//		}
	}
	);
	}
}
function hide_treel_line (treelid) 
{
	create_clickable_icon("show_unshow_line_div", "show_hide_treel_line", "icon_treel_line_show", "javascript:show_hide_treel_line("+treelid+")",  "title_show_treel_line", null,  "right", 0, option_b_o, option_f_o, true)
	tr.HideTreel(treelid);
}
function show_treel_line (treelid) 
{
	create_clickable_icon("show_unshow_line_div", "show_hide_treel_line", "icon_treel_line_hide", "javascript:show_hide_treel_line("+treelid+")",  "title_hide_treel_line", null,  "right", 0, option_b_o, option_f_o, true)
	tr.ShowTreel(treelid);
}
function show_hide_treel_line (treelid) 
{
	if (tr.Visibility(treelid) == 1) 
	{
		hide_treel_line (treelid);
	}
	else 
	{
		show_treel_line (treelid);
	}
}
function treel_center_clicked(treel) 
{
	tr.CenterTreel(treel);
	//mapsystem.focusOnBoundsByLocs(tr.ReturnTreel(treel));
	//alert ("De reis die je hebt afgeled is hemelsbreed " + tr.Distance(treel) + " meter");
	//alert (math.round(tr.Distance(treel)/1000))
	//alert (urls.returnURL());
	//urls.forceURL();
}
function treel_zoom_clicked(treel) 
{
	treel_center_clicked(treel);
	zoomlevel = Math.round(mapsystem.map.getZoom() * 1.3);
	mapsystem.map.setZoom(zoomlevel);
}
function order_messages_treel(treelid, userid) //Het niewe systeem werkt.. alleen nog ff de twee knoppen aanmaken tr.MoveDown(treelid,userid,selected_treel_point); en tr.MoveUp(treelid,userid,selected_treel_point);
{
	//create_submit_buttons(treelid, userid, "order")
	this.treelid = treelid;
	this.index = new Array();
	var thediv = document.getElementById('clientarea_inner_treel')
		thediv.innerHTML	=	"<span class=\"grey\">Select message to move up or down</span><br/><br/>";
	foundtreel = tr.ReturnTreel(treelid);
	for(i in foundtreel) 
		{
		if (selected_treel_point == "0") {
			selected_treel_point = i;
		}
		this.index[foundtreel[i]["messageid"]] = i;
		
		//alert ("thediv.innerHTML += \"<span id=\"treel_item_nr" + i + "\" onClick=\"javascript:select_to_move_treelitem(" + i + ")\">Loading...</span><br />\";")
		
		thediv.innerHTML += "<span id=\"treel_item_nr" + i + "\" onClick=\"javascript:select_to_move_treelitem(" + i + ")\">Loading...</span><br />";
		
		try {
		
		mapsystem.getMessage(foundtreel[i]["messageid"], function(msg) 
		{	
			
				msg_div = document.getElementById("treel_item_nr"+this.index[msg.id]);
				msg_div.innerHTML = msg.title;
			my_own_BuildFunc("_treel")
			locations[this.index[msg.id]] = msg.location_id;
			if (this.index[msg.id] == selected_treel_point) {
				select_to_move_treelitem(selected_treel_point)
			}
			
		}
		);
		}//end try
		catch (e) { 
			//alert ("Error code 2: mapsystem.getMessage" + selected_treel_point + " <- selected treel poing");
		}
	
	}
	
}

function order_messages_treel_wrapper (treelid, userid) {
	create_submit_buttons(treelid, userid, "order")
	tr.CreateUndo();
	order_messages_treel(treelid, userid)
}

function select_to_move_treelitem(point) {
	//alert ("moving id "+point)
	if (selected_treel_point != "0") {
		unselect_treel_point (selected_treel_point);
	}
	selected_treel_point = point;
	treel_span = document.getElementById("treel_item_nr"+point);
	treel_span.style.backgroundColor = "#00FF00";
	/*
	alert ("Point: " + point + " has location: " + locations[point]);
					
	var icon_tmp = BuurtMap.mapmarkers["233688"].getIcon();
	var hover_icon = icon_tmp.image.replace(/(white|blue|green|red)/g	, "green");
	
	BuurtMap.mapmarkers["233688"].setImage(hover_icon);
	*/
	try {
	mapsystem.ColorMarker(locations[point], "green")
	selected_marker = locations[point];
	}
	catch (e) {
		//alert("Error 1. localized, dit bericht zit in een clusterred icon, en daarom gaat deze vastlopen :( ");
	}
}

function unselect_treel_point (point) {
		
	try {
		treel_span = document.getElementById("treel_item_nr"+point);
		treel_span.style.backgroundColor = "";
	
		mapsystem.RestoreMarker(locations[point], "green")
	}
	catch (e) {
		//alert ("Error 3: unselect_treel_point (point)");
	}
}

function save_new_treel_order (treel, userid) {
	selected_treel_point = 0;
	tr.StoreOrder (treel,userid);
	javascript:show_messages_treel(treel, userid)

}

function cancel_edit_treel (treelid, userid) {
	//tr.reset_polyline (treelid);
	//show_messages_treel (treelid, userid);
	tr.ExecUndo(treelid);
	tr.RemoveFromPool (treelid);
	Screen_ShowTreel(treelid,userid)
	//alert ("Saving cancelled");
}

function toggle_treel_view (treel) {
	//alert (tr.Visibility(treel))
	if (tr.Visibility(treel) == "1") {
		tr.BuildRoute(treel);
		tr.HideTreel(treel);
	}
	else {
		tr.ClearRoute();
		tr.ShowTreel(treel);
	}
}  /*t_upload.js*/

getTrans = new APIlanguage();

	
	if(navigator.platform == 'MacIntel')
				{
	
	// MACINTOSH!!!
	/*

    function fileQueued(file, queuelength)
		{
				var listingfiles = document.getElementById("SWFUploadFileListingFiles");

				if(!listingfiles.getElementsByTagName("ul")[0])
				{

			//			var info = document.createElement("h4");
			//			info.appendChild(document.createTextNode(getTrans.Translate("queue")));

			//			listingfiles.appendChild(info);

						var ul = document.createElement("ul")
						listingfiles.appendChild(ul);
				}

				listingfiles = listingfiles.getElementsByTagName("ul")[0];

				var li = document.createElement("li");
				li.id = file.id;
				li.className = "SWFUploadFileItem";
				li.innerHTML = file.name + " <span class='progressBar' id='" + file.id + "progress'></span><a id='" + file.id + "deletebtn' class='cancelbtn' href='javascript:swfu.cancelFile(\"" + file.id + "\");'><!-- IE --></a>";

				listingfiles.appendChild(li);

				var queueinfo = document.getElementById("queueinfo");
				queueinfo.innerHTML = queuelength +' '+ getTrans.Translate("pictures queued");
			//	document.getElementById(swfu.movieName + "UploadBtn").style.display = "block";
				document.getElementById("cancelqueuebtn").style.display = "block";
				
			my_own_BuildFunc('_add')	
		}

		function uploadFileCancelled(file, queuelength)
		{
				var li = document.getElementById(file.id);
				li.innerHTML = file.name + +' '+ getTrans.Translate("cancelled");
				li.className = "SWFUploadFileItem uploadCancelled";
				var queueinfo = document.getElementById("queueinfo");
				queueinfo.innerHTML = queuelength +' '+ getTrans.Translate("pictures queued");
		}

		function uploadFileStart(file, position, queuelength)
		 {
				var div = document.getElementById("queueinfo");
				div.innerHTML = getTrans.Translate("uploading picture") +': '+ position + ' / ' + queuelength;

				var li = document.getElementById(file.id);
				li.className += " fileUploading";
		}

		function uploadProgress(file, bytesLoaded) {

				var progress = document.getElementById(file.id + "progress");
				var percent = Math.ceil((bytesLoaded / file.size) * 200)
				progress.style.background = "#f0f0f0 url(http://swfupload.mammon.se/images/progressbar.png) no-repeat -" + (200 - percent) + "px 0";
		}

		function uploadError(errno)
		{
				// SWFUpload.debug(errno);
		}

		function uploadFileComplete(file)
	 {
				var li = document.getElementById(file.id);
				li.className = "SWFUploadFileItem uploadCompleted";
		}

		function cancelQueue()
		{
				swfu.cancelQueue();
				document.getElementById(swfu.movieName + "UploadBtn").style.display = "none";
				document.getElementById("cancelqueuebtn").style.display = "none";
		}
		
		var swfu_new_msg_id=false
		var swfu_show_message_after_upload =false
		function uploadQueueComplete(file)
		{
				var div = document.getElementById("queueinfo");
				div.innerHTML = getTrans.Translate("all pictures uploaded")

				document.getElementById("cancelqueuebtn").style.display = "none";

				if(swfu_new_msg_id)
				{
						mapsystem.getMessage(swfu_new_msg_id,function(msg)
						{
								Screen_ShowMessageDetails(swfu_new_msg_id);
								swfu_new_msg_id=false;
						}
						,true)
				}
				
				if(swfu_show_message_after_upload)
				{
				mapsystem.getMessage(swfu_show_message_after_upload,function(msg)
						{
								Screen_ShowMessageDetails(swfu_show_message_after_upload);
								swfu_show_message_after_upload=false;
						}
						,true)
				}
		}

		var swfu;
		var swfu2;

		function hiveUpload()
		{
				//var div = document.getElementById("queueinfo");
		}

		function load_Swfu(url)
		{
		   if(url)
			 {
			 }
			 else
			 {
			 url = "upload.php"
			 }
			 
				// Max settings
				swfu = new SWFUpload({
						upload_script : url,
						target : "SWFUploadTarget",
						flash_path : "SWFUpload_OLD.swf",
						allowed_filesize : 2048,	// 2 MB
						allowed_filetypes : "*.*",
						allowed_filetypes_description : "*.*",
						browse_link_innerhtml : "<button class=\"button_category\" >"+getTrans.Translate("select_pics")+"</button>",
					//	browse_link_innerhtml : "<button class=\"button_category\" value=\""+getTrans.Translate("select_pics")+"\"></button>",
						//upload_link_innerhtml : "Voeg de (alle) fotos toe aan het bericht",
						browse_link_class : "swfuploadbtn browsebtn",
						upload_link_class : "swfuploadbtn uploadbtn",
						flash_loaded_callback : 'swfu.flashLoaded',
						upload_file_queued_callback : "fileQueued",
						upload_file_start_callback : 'uploadFileStart',
						upload_progress_callback : 'uploadProgress',
						upload_file_complete_callback : 'uploadFileComplete',
						upload_file_cancel_callback : 'uploadFileCancelled',
						upload_queue_complete_callback : 'uploadQueueComplete',
						upload_error_callback : 'uploadError',
						upload_cancel_callback : 'uploadCancel',
						auto_upload : false
				});

		}
		*/
		
		}
		else
		{
	// WIN32

  function load_swfupload()
  {
    upload1 = new SWFUpload({
      // Backend Settings
      upload_target_url: "upload.php",	// Relative to the SWF file
    post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"},

      // File Upload Settings
      file_size_limit : "10240",	// 2MB
     file_types : "*.gif;*.jpg;*.png",
				file_types_description : "Common Web Image Formats (gif, jpg, png)",
      file_upload_limit : "30",
      file_queue_limit : "0",
      begin_upload_on_queue : false,
 use_server_data_event:false,
      // Event Handler Settings
      file_queued_handler : uploadStart,
      file_progress_handler : uploadProgress,
      file_cancelled_handler : uploadCancel,
      file_complete_handler : uploadComplete,
      queue_complete_handler : uploadQueueComplete,
      error_handler : uploadError,

      // Flash Settings
      flash_url : "swfupload.swf",	// Relative to this file

      // UI Settings
      ui_container_id : "flashUI1",
      degraded_container_id : "degradedUI1",

      // Debug Settings
      debug: true
    });
    upload1.addSetting("progress_target", "fsUploadProgress1");	// Add an additional setting that will later be used by the handler.
    fileobject_queue = []
  }

	//var the_divs_with_progress = []
	var fileobject_queue = []


  function uploadStart(fileObj)
  {
    fileobject_queue[fileObj['id']] = true
    try
    {
//		fileObj.complete = false
      // You might include code here that prevents the form from being submitted while the upload is in
      // progress.  Then you'll want to put code in the Queue Complete handler to "unblock" the form
      var progress = new FileProgress(fileObj, this.getSetting("progress_target"));
      progress.SetStatus("");
      progress.ToggleCancel(true, this);

      document.getElementById("btnCancel1").disabled = false;

			//the_divs_with_progress[progress.file_progress_id] = progress
    }
    catch (ex)
    {
      this.debugMessage(ex);
    }

  }

  function uploadProgress(fileObj, bytesLoaded)
  {

    try
    {
      var percent = Math.ceil((bytesLoaded / fileObj.size) * 100)
      var progress = new FileProgress(fileObj, this.getSetting("progress_target"));
      progress.SetProgress(percent);
      progress.SetStatus("Uploading...");
    }
    catch (ex)
    {
      this.debugMessage(ex);
    }
  }

  function uploadComplete(fileObj, server_data)
  {
	    //fileobject_queue[fileObj['id']] = fileObj
    try
    {
		    fileobject_queue[fileObj['id']] = false
		//fileObj.complete = true
      var progress = new FileProgress(fileObj, this.getSetting("progress_target"));
      progress.SetComplete();
      progress.SetStatus("Complete.");
      progress.ToggleCancel(false);

    }
    catch (ex)
    {
      this.debugMessage(ex);
    }
  }

  function uploadQueueComplete(fileObj)
  {
    try
    {
		  fileobject_queue[fileObj['id']] = false
		Screen_Add_Message_SaveImages_After()
      document.getElementById("btnCancel1").disabled = true;
			
    }
    catch (ex)
    {
      this.debugMessage(ex);
    }
  }

  function uploadDialogCancel()
  {
    /*	try {
    Console.Writeln("Pressed Cancel");
    } catch (e) { Console.Writeln("Error displaying file cancel information"); }
    */
  }

  function uploadCancel(fileObj)
  {
    try
    {
		  fileobject_queue[fileObj['id']] = false
      var progress = new FileProgress(fileObj, this.getSetting("progress_target"));
      progress.SetCancelled();
      progress.SetStatus(getTrans.Translate("cancelled"));
      progress.ToggleCancel(false);
    }
    catch (ex)
    {
      this.debugMessage(ex);
    }
  }

  function uploadError(error_code, fileObj, message)
  {
    try
    {
      if (error_code == SWFUpload.ERROR_CODE_QUEUE_LIMIT_EXCEEDED)
      {
        alert("You have attempted to queue too many files.\n" + (message == 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
        return;
      }

      var progress = new FileProgress(fileObj, this.getSetting("progress_target"));
      progress.SetError();
      progress.ToggleCancel(false);

      switch(error_code)
      {
        case SWFUpload.ERROR_CODE_HTTP_ERROR:
          progress.SetStatus("Upload Error");
          this.debugMessage("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
        break;
        case SWFUpload.ERROR_CODE_MISSING_UPLOAD_TARGET:
          progress.SetStatus("Configuration Error");
          this.debugMessage("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
        break;
        case SWFUpload.ERROR_CODE_UPLOAD_FAILED:
          progress.SetStatus("Upload Failed.");
          this.debugMessage("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
        break;
        case SWFUpload.ERROR_CODE_IO_ERROR:
          progress.SetStatus("Server (IO) Error");
          this.debugMessage("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
        break;
        case SWFUpload.ERROR_CODE_SECURITY_ERROR:
          progress.SetStatus("Security Error");
          this.debugMessage("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
        break;
        case SWFUpload.ERROR_CODE_FILE_EXCEEDS_SIZE_LIMIT:
          progress.SetStatus("File is too big.");
          this.debugMessage("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
        break;
        case SWFUpload.ERROR_CODE_ZERO_BYTE_FILE:
          progress.SetStatus("Cannot upload Zero Byte files.");
          this.debugMessage("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
        break;
        case SWFUpload.ERROR_CODE_UPLOAD_LIMIT_EXCEEDED:
          progress.SetStatus("Upload limit exceeded.");
          this.debugMessage("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
        break;
        case SWFUpload.ERROR_CODE_INVALID_FILETYPE:
          progress.SetStatus("Invalid File Type.");
          this.debugMessage("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
        break;
        default:
        progress.SetStatus("Unhandled Error");
        this.debugMessage("Error Code: " + error_code + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
        break;
      }
    }
    catch (ex)
    {
      this.debugMessage(ex);
    }
  }


  function FileProgress(fileObj, target_id)
  {
    this.file_progress_id = fileObj.id;

    this.opacity = 100;
    this.height = 0;

    this.fileProgressWrapper = document.getElementById(this.file_progress_id);
    if (!this.fileProgressWrapper)
    {
      this.fileProgressWrapper = document.createElement("div");
      this.fileProgressWrapper.className = "progressWrapper";
      this.fileProgressWrapper.id = this.file_progress_id;

      this.fileProgressElement = document.createElement("div");
      this.fileProgressElement.className = "progressContainer";

      var progressCancel = document.createElement("a");
      progressCancel.className = "progressCancel";
      progressCancel.href = "#";
      progressCancel.style.visibility = "hidden";
      progressCancel.appendChild(document.createTextNode(" "));

      var progressText = document.createElement("div");
      progressText.className = "progressName";
      progressText.appendChild(document.createTextNode(fileObj.name));

      var progressBar = document.createElement("div");
      progressBar.className = "progressBarInProgress";

      var progressStatus = document.createElement("div");
      progressStatus.className = "progressBarStatus";
      progressStatus.innerHTML = "&nbsp;";

      this.fileProgressElement.appendChild(progressCancel);
      this.fileProgressElement.appendChild(progressText);
      this.fileProgressElement.appendChild(progressStatus);
      this.fileProgressElement.appendChild(progressBar);

      this.fileProgressWrapper.appendChild(this.fileProgressElement);

      document.getElementById(target_id).appendChild(this.fileProgressWrapper);

	my_own_BuildFunc('_add')//volgens mij de beste plek (arjen) zorgt voor het resizen van de container als foto's ingeladen worden
	my_own_BuildFunc('_msg')

    }
    else
    {
      this.fileProgressElement = this.fileProgressWrapper.firstChild;
    }

    this.height = this.fileProgressWrapper.offsetHeight;
	


  }

  FileProgress.prototype.SetProgress = function(percentage)
  {
    this.fileProgressElement.className = "progressContainer blue";
    this.fileProgressElement.childNodes[3].className = "progressBarInProgress";
    this.fileProgressElement.childNodes[3].style.width = percentage + "%";
  }

  FileProgress.prototype.SetComplete = function()
  {
    this.fileProgressElement.className = "progressContainer green";
    this.fileProgressElement.childNodes[3].className = "progressBarComplete";
    this.fileProgressElement.childNodes[3].style.width = "";

    var oSelf = this;
  setTimeout(function() { oSelf.Disappear(); }, 10000);
  }
  FileProgress.prototype.SetError = function()
  {
    this.fileProgressElement.className = "progressContainer red";
    this.fileProgressElement.childNodes[3].className = "progressBarError";
    this.fileProgressElement.childNodes[3].style.width = "";

    var oSelf = this;
  setTimeout(function() { oSelf.Disappear(); }, 5000);
  }
  FileProgress.prototype.SetCancelled = function()
  {
    this.fileProgressElement.className = "progressContainer";
    this.fileProgressElement.childNodes[3].className = "progressBarError";
    this.fileProgressElement.childNodes[3].style.width = "";

    var oSelf = this;
  setTimeout(function() { oSelf.Disappear(); }, 2000);
  }
  FileProgress.prototype.SetStatus = function(status)
  {
    this.fileProgressElement.childNodes[2].innerHTML = status;
  }

  FileProgress.prototype.ToggleCancel = function(show, upload_obj)
  {	
    this.fileProgressElement.childNodes[0].style.visibility = show ? "visible" : "hidden";
    if (upload_obj)
    {
      var file_id = this.file_progress_id;
    this.fileProgressElement.childNodes[0].onclick = function() { upload_obj.cancelUpload(file_id); return false; };
    }
  }

  FileProgress.prototype.Disappear = function()
  {

    var reduce_opacity_by = 15;
    var reduce_height_by = 4;
    var rate = 30;	// 15 fps

    if (this.opacity > 0) 
		{
      this.opacity -= reduce_opacity_by;
      if (this.opacity < 0) this.opacity = 0;

      if (this.fileProgressWrapper.filters)
      {
        try
        {
          this.fileProgressWrapper.filters.item("DXImageTransform.Microsoft.Alpha").opacity = this.opacity;
        }
        catch (e)
        {
          // If it is not set initially, the browser will throw an error.  This will set it if it is not set yet.
          this.fileProgressWrapper.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + this.opacity + ')';
        }
      }
      else
      {
        this.fileProgressWrapper.style.opacity = this.opacity / 100;
      }
    }

    if (this.height > 0)
    {
      this.height -= reduce_height_by;
      if (this.height < 0) this.height = 0;

      this.fileProgressWrapper.style.height = this.height + "px";
    }

    if (this.height > 0 || this.opacity > 0)
    {
      var oSelf = this;
    setTimeout(function() { oSelf.Disappear(); }, rate);
    }
    else
    {
      this.fileProgressWrapper.style.display = "none";
    }
  }
	
	
	
	
	
	
	
	
	
	
	
	}/*t_users.js*/

var	kortelijst	=	false; 
var	alfabet	=	false;
var	current_users	=	null;
var	get_number_users	=	25;
var	number_short	=	25;
var	number_long	=	3;

var	long_fotos_per_users	=	5
var	long_notes_per_users	=	4

var	userprofile_notes	=	100
var	userprofile_photos	=	100

var	thetags2	
var	groupselect_divs	=	[];

var only_user_var = false

function remember_me()
{
	var	remember_me_checkbox	=	document.getElementById("remember_me_checkbox")
	
	if(remember_me_checkbox.checked == true)
	{
		remember()
	}
	else
	{
		forget()
	}
}
function remember() 
{
	if (window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) 
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (req != undefined) 
	{
		req.open("GET", "remember.php", true);
		req.send("");
	}
}
function forget() 
{
	if (window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) 
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (req != undefined) 
	{
		req.open("GET", "forget.php", true);
		req.send("");
	}
}
function t_user_getid_from_domain(callback)
{
	t_user_getid_from_username(assumeduser,callback)
}
function t_user_getid_from_username(nick,callback)
{
	mapsystem.users.getUserIdByNickname(nick,callback)
}			
/*activation forgotten*/					
function activation_forgotten()
{
	var	username=prompt(getTrans.Translate("please_enter_your_email"),"");
	if(username)
	{
		treelzsystem.apisystem.tokensystem.lostActivation(username,function(x)
		{
			alert(getTrans.Translate("we_send_mail")+': '+	username);
		}
		);
	}
	
}
/*Password forgotten*/					
function password_forgotten()
{
	var	username=prompt(getTrans.Translate("please_enter_your_email"),"");
	if(username)
	{
	treelzsystem.apisystem.tokensystem.lostPassword(username,function(x)
		{
			alert(getTrans.Translate("we_send_mail")+': '+	username);
		}
	);
	}
}
  //Info

/*Userprofile*/		
function load_content_user(userid)
{
	urls.AddVariable("U", "i");
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	if(loggedin_id==userid)
	{
		var	ep=true;
	}
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		clickedon_user(gevondenuser) 
		var	containerdiv	=		document.getElementById("clientarea_inner_user")
			containerdiv.innerHTML	=	'';
		var	containerdiv_outer	=		document.getElementById("frame_user")
			containerdiv_outer.innerHTML	=	'';
		create_scroll_targetdivs("frame_user", "_userprofile")
		var	tabs_div	=	createElement(containerdiv_outer,"tabs_div","tabs_user",'div')
		fill_tabs_userprofile_div(tabs_div,gevondenuser,ep)
					
		var username_a_2 = createElement(containerdiv_outer,"greylink direct_link",null,'a')
			username_a_2.innerHTML = gevondenuser.nickname+".treelz.com"
			username_a_2.href = "http://"+gevondenuser.nickname+".treelz.com"
			username_a_2.target = "_blank"


		var	containerdiv_info	=	createElement(containerdiv,"containerdiv_info","containerdiv_info",'div')
		var	userpicture_div	=	createElement(containerdiv_info,"userpicture_div","userpicture_div",'div')
		fill_userpicture(userpicture_div,	gevondenuser)
		var	details_div_userprofile	=	createElement(containerdiv_info,'details_div_userprofile','details_div_userprofile','div')
		show_userinfo_userprofile(userid,ep)
		show_container("_user")
		var	resizehandle_user	=		document.getElementById("resizehandle_user") 
			resizehandle_user.style.visibility	=	"hidden"
		fill_buttons_userprofile(gevondenuser, userid, ep)
	}
	);
}
function fill_userpicture(userpicture_div,	gevondenuser)
{
	var	userpicture_a	=	createElement(userpicture_div,null,null,'a')
	var	userpicture_img	=	createElement(userpicture_a,null,null,'img')
		userpicture_img.src=''+baseurl	+'imageshow.php?thumb=true&h=60&imageid='+gevondenuser.picture_id+'';
		userpicture_img.border="0"
		userpicture_img.height="60"
		userpicture_a.href = "javascript:show_large_picture("+gevondenuser.picture_id+", 'no_button')";
		userpicture_a.title = getTrans.Translate("click to enlarge")
}

function fill_tabs_userprofile_div(tabs_userprofile_div,gevondenuser,ep)
{
	var	show_profile_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_profile_a.href	=	"javascript:Screen_InitSideBarUserProfile("+gevondenuser.id+")"
		show_profile_a.innerHTML	=	getTrans.Translate("profile")
		show_profile_a.title	=	getTrans.Translate("title_show_profile_user")
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_pictures_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_pictures_a.href	=	"javascript:show_pictures_userprofile("+gevondenuser.id+")"
		show_pictures_a.innerHTML	=	getTrans.Translate("pictures")
		show_pictures_a.title	=	getTrans.Translate("title_show_pictures_user")
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_messages_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_messages_a.href	=	"javascript:show_messages_userprofile("+gevondenuser.id+")"
		show_messages_a.innerHTML	=	getTrans.Translate("messages")
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_messages_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_messages_a.href	=	"javascript:show_groups_userprofile("+gevondenuser.id+")"
		show_messages_a.innerHTML	=	getTrans.Translate("groups")
		show_messages_a.title	=	getTrans.Translate("title_show_messages_user")
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_friends_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_friends_a.href	=	"javascript:show_friends_userprofile("+gevondenuser.id+")"
		show_friends_a.innerHTML	=	getTrans.Translate("friends")
		show_friends_a.title	=	getTrans.Translate("title_show_friends_user")
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_treelz_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_treelz_a.href	=	"javascript:show_treelz_userprofile("+gevondenuser.id+")"
		show_treelz_a.innerHTML	=	getTrans.Translate("treelz")
		show_treelz_a.title	=	getTrans.Translate("title_show_treelz_user")
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	var	show_tags_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_tags_a.href	=	"javascript:show_messages_by_tag_userprofile("+gevondenuser.id+")"
		show_tags_a.innerHTML	=	getTrans.Translate("tags")
		show_tags_a.title	=	getTrans.Translate("title_show_tags_user")
}
function fill_buttons_userprofile(gevondenuser, userid, ep)
{
	var	buttons_user_div	= document.getElementById("buttons_user_div") 
		buttons_user_div.style.visibility = "inherit"
	
	var	userinfo_showonlythis	=	createElement(buttons_user_div,"float_left","userinfo_showonlythis",'div')

		adjust_size_to_image(userinfo_showonlythis, "images/1_knoppen/icon_show_user_only.png")
		add_size_to_element(buttons_user_div, "images/1_knoppen/icon_show_user_only.png")
					create_clickable_icon("userinfo_showonlythis", "showonlythis_user", "icon_show_user_only", "javascript:Screen_Clicked_ShowUserOnly("+userid+", true)",  "title_show_only_this_user_on_map", null,  "left", 0, option_b_o, option_f_o, true)
	
	if(BrowserDetect.browser == "Explorer")
	{
		if (BrowserDetect.version == "6")
		{
				create_clickable_icon("buttons_user_div", "rss_feed", "icon_rss", "javascript:show_treelz_alert(\'not_in_IE\')",  "title_rss", null,  "left", 6, option_b_o, option_f_o)
			
		}
	}
	else
	{
				create_clickable_icon("buttons_user_div", "rss_feed", "icon_rss", 'show_treelz_alert_URL_RSS(\'rss_link\',\'past_link_rss\', "feed.php?type=msgs&username='+gevondenuser.nickname+'")',  "title_rss", null,  "left", 6, option_b_o, option_f_o)
	}
	
	if(ep)	
	{
	create_clickable_icon("buttons_user_div", "settings_user", "icon_settings", "javascript:show_mysettings()",  "title_mysettings", null,  "left", 6, option_b_o, option_f_o)
	}
	else
	{
		if(treelzsystem	&&	treelzsystem.treelersocial)
		{
			treelzsystem.treelersocial.isFriend(gevondenuser.id,function(ishe)
			{
				if(ishe)
				{
				create_clickable_icon("buttons_user_div", "friend", "icon_friend", null,  "title_treelz_friend", null,  "left", 6, option_b_o, option_b_o)
				}
				else
				{
				create_clickable_icon("buttons_user_div", "add_friend", "icon_add_friend", "javascript:addtofriends("+gevondenuser.id+")",  "title_invite", null,  "left", 6, option_b_o, option_f_o)
				}
			}
			);
		}
	}
}
function show_userinfo_userprofile(userid,ep)
{
	var	details_div_userprofile	=		document.getElementById("details_div_userprofile")
	details_div_userprofile.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		details_div_userprofile.innerHTML	=	''
		var	userinfo_pc_up_div	=	createElement(details_div_userprofile,"userinfo_pc_up","userinfo_pc_up",'div')
		var	home_a	=	createElement(userinfo_pc_up_div,"greylink",null,'a')
		home_a.innerHTML	=	gevondenuser.home+""
		userhome	=	gevondenuser.home
		home_a.href	=	"javascript:centreOn(userhome,'',13)"
		var	br_element	=	createElement(userinfo_pc_up_div,null,null,'br')
		var	br_element	=	createElement(userinfo_pc_up_div,null,null,'br')
		/*
		var	birthday_span	=	createElement(userinfo_pc_up_div,null,null,'span')
		birthday_span.innerHTML	=	"<br	/>"+gevondenuser.birthday+"<br	/><br	/>"
		*/
		var	number_span	=	createElement(userinfo_pc_up_div,null,null,'span')
		var eoptions = []
		var	br_element	=	createElement(userinfo_pc_up_div,null,null,'br')
		var	number_span2	=	createElement(userinfo_pc_up_div,null,null,'span')
		
		eoptions["type"] = '1';
		mapsystem.groups.getGroup(gevondenuser.b_grp.public,function(fgrp)
		{
			fgrp.getAmountMessages(function(aantalpublic)
			{
				number_span2.innerHTML	=	""+aantalpublic+ "  "+getTrans.Translate("public_messages")
					mapsystem.groups.getGroup(gevondenuser.b_grp.friends,function(fgrp)
					{
						fgrp.getAmountMessages(function(aantalfriends)
						{
							var only_friends = aantalfriends - aantalpublic
							
							number_span.innerHTML	=	""+only_friends+ "  "+getTrans.Translate("friends_messages")
						}
						,eoptions)
					}
					);
					
			}
			,eoptions)
		}
		);
	}
	);
}
function addtofriends(userid)
{
	var treelz_alert_div = document.getElementById('treelz_alert_div')
		treelz_alert_div.style.visibility = "inherit"
		treelz_alert_div.innerHTML	=	"<br>"+getTrans.Translate("submit_invite")
		treelz_alert_div.innerHTML	+=	'<br	/><input	id="inputsubmit"	class="input_general_submit"	onclick="javascript:invite_user('+userid+')"	type="button"	value="'	+	getTrans.Translate("yes")	+	'"	/>';
		treelz_alert_div.innerHTML	+=	'&nbsp;&nbsp;&nbsp;<input	id="inputsubmit"	class="input_general_submit"	onclick="javascript:close_treelz_alert()"	type="button"	value="'	+	getTrans.Translate("no")	+	'"	/><br	/><br	/>';
	show_alert()
}
function invite_user(userid)
{
	var	msg	=	prompt(getTrans.Translate("Personal_message")+':');
	if(msg)
	{
	treelzsystem.treelersocial.addFriend(userid,msg,function(treelersocial)
	{
		show_treelz_alert("friend_invite_send")
		show_userinfo_userprofile(userid)
	}
	);
	}
}
function clean_invite_user()
{
}
function show_profile_userprofile()
{
	var	scroll_arrows	=		document.getElementById("scroll_arrows")
		scroll_arrows.innerHTML	=	''
	var	details_div_userprofile	=		document.getElementById("details_div_userprofile")
		details_div_userprofile.innerHTML	=	'<b>School:</b>	TU	Delft<br	/><b>Werk:</b>	Myrdalhof<br	/><b>Vereniging:</b>	Sanctus	Virgilius<br	/>'
}
function show_groups_userprofile(userid)
{
	var	details_div_userprofile	=		document.getElementById("details_div_userprofile")
		details_div_userprofile.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	
	urls.AddVariable("U", "m");
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		bs	=	new	UniversalScroller	(gevondenuser,	"details_div_userprofile",	"scroll_numbers_userprofile",	user_steps_usergroups,	"0",	6,user_steps_usergroups_getamount, "scroll_left_userprofile", "scroll_right_userprofile", "bs");
		bs.Init("bs");	
	}
	);					
}
function show_messages_userprofile(userid)
{
	var	details_div_userprofile	=		document.getElementById("details_div_userprofile")
		details_div_userprofile.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'

	urls.AddVariable("U", "m");
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		bs	=	new	UniversalScroller	(gevondenuser,	"details_div_userprofile",	"scroll_numbers_userprofile",	user_steps_usermessages,	"0",	6,user_steps_usermessages_getamount, "scroll_left_userprofile", "scroll_right_userprofile", "bs");
		bs.Init("bs");
	}
	);
}
function user_steps_usergroups_getamount(object,callbackfunc)
{
	var extraoptions = [];
	extraoptions['type']='0';
	extraoptions['start']='0';
	extraoptions['amount']=1;		
	mapsystem.groups.getGroupUsersMemberOf(object.id,	function(grps,amount)
	{
		debug('aantal is'+amount)
		callbackfunc(amount)
	}
	,extraoptions)
}

function user_steps_usergroups(object,	start, amount,	callbackfunc)
{
debug('get usergroups ' + start + ' ' + amount)
	var extraoptions = [];
	extraoptions['type']='0';
	extraoptions['start']= ''+start;
	extraoptions['amount']= ''+amount;		
	mapsystem.groups.getGroupUsersMemberOf(object.id,	function(grps,amount)
	{
		var	thesubsetgrps	=	[]
		for	(i	in	grps)
		{
			if (grps[i].id != null) 
			{
				var	grp	=	grps[i]
				thesubsetgrps[i] = createElement(null,null,null,'a');
				thesubsetgrps[i].setAttribute('href','javascript:Screen_ShowGroupDetails('+grp.id+')')
				thesubsetgrps[i].innerHTML = grp.name+'<br />'
			}			
		}
		callbackfunc(thesubsetgrps);
	}
	,extraoptions)
}
function user_steps_usermessages_getamount(object,callbackfunc)
{
	// verwacht twee parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// callback func. een functie die een aantal terug geeft
	object.getLatestMessages(userprofile_notes,1,function(messages)
	{
		var	teller	=	0;
		for(i	in	messages)
		{
			teller	++;
		}
		callbackfunc(teller);
	}
	);
}
function user_steps_usermessages(object,	start, amount,	callbackfunc)
{
	// verwacht vier parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// start: vanaf welk nummer (eerste is 0)
	// amount: en welk aantal terug te geven
	// callback func. een functie die een 'amount' html elements terug geeft te starten bij 'start' om in the scroll div te gooien
	object.getMessagesBetween(start,amount,1,function(messages,maxaantal)
	{							
		var	thesubsetmessages	=	[]
		for	(i	in	messages)
		{
			if (messages[i].id != null) 
			{
			thesubsetmessages[i] = Screen_getMessageTextElement(messages[i])
			/*
				var	themessage	=	messages[i]
				thesubsetmessages[i] = createElement(null,null,null,'a');
				thesubsetmessages[i].setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+themessage.id+')')
				thesubsetmessages[i].innerHTML = themessage.title+'<br />'
				*/
			}			
		}
		callbackfunc(thesubsetmessages);
	}
	);
}
function show_treelz_userprofile(userid)
{
	urls.AddVariable("U", "tr");
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		bs	=	new	UniversalScroller	(gevondenuser,	"details_div_userprofile",	"scroll_numbers_userprofile",	user_steps_usertreelz,	"0",	6,user_steps_usertreelz_getamount, "scroll_left_userprofile", "scroll_right_userprofile", "bs");
		bs.Scroll("LEFT");
	}
	);
}
function user_steps_usertreelz_getamount(object,callbackfunc)
{
	// verwacht twee parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// callback func. een functie die een aantal terug geeft
	mapsystem.treelz.getTreelzFromUser(object.id,function(thetreelz)
	{
		var	teller	=	0;
		for(i	in	thetreelz)
		{
			teller	++;
		}
		callbackfunc(teller);
	}
	);
}
function user_steps_usertreelz(object,	start, amount,	callbackfunc)
{
	// verwacht vier parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// start: vanaf welk nummer (eerste is 0)
	// amount: en welk aantal terug te geven
	// callback func. een functie die een 'amount' html elements terug geeft te starten bij 'start' om in the scroll div te gooien
	mapsystem.treelz.getTreelzFromUser(object.id,function(thetreelz)
	{							
		var	teller	=	0;
		var thesubsettreelz	=	[]
		for(var	i =0;i<thetreelz.length;i++)
		{
			if(thetreelz[i])
			{
			var	thetreel	=	thetreelz[i]
				if(teller	>=	start	&&	teller	<	start+amount)
				{
					thesubsettreelz[i] = createElement(null,null,null,'a');
					thesubsettreelz[i].setAttribute('href','javascript:Screen_ShowTreel('+thetreel.id+','+object.id+')')
					thesubsettreelz[i].innerHTML = thetreel.name+'<br />'
				}
			teller	++;
			}
		}
		callbackfunc(thesubsettreelz);
	}
	);
}
function show_messages_by_tag_userprofile(userid)
{
	urls.AddVariable("U", "ta");
	urls.UpdateURL();
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		var	details_div_userprofile	=		document.getElementById("details_div_userprofile")
			details_div_userprofile.innerHTML	=	'<img	src="images/indicator.gif"	alt="">	';
		bs	=	new	UniversalScroller	(gevondenuser,	"details_div_userprofile",	"scroll_numbers_userprofile",	user_steps_usertags,	"0",	6,user_steps_usertags_getamount, "scroll_left_userprofile", "scroll_right_userprofile", "bs");
		bs.Scroll("LEFT");
	}
	);
}
function sortTagsGroups(a,b)
{
	//return		b.num_msgs	-	a.num_msgs
	//	REVERSE!!
	var	y	=	a.num_msgs;
	var	x	=	b.num_msgs;
	return	((x	<	y)	?	-1	:	((x	>	y)	?	1	:	0));
}
function load_content_tag(userid,tagid)
{
	clickedon_tag(tagid)
	var	containerdiv_outer	=		document.getElementById("frame_tag")
		containerdiv_outer.innerHTML	=	'';
	var	tabs_div	=	createElement(containerdiv_outer,"tabs_div","tabs_user",'div')
	fill_tabs_tag_div(tabs_div,	tagid,	userid)
	show_messages_tag(tagid,userid)
	show_container("_tag")
}
function show_messages_tag(tagid,userid)
{
	urls.AddVariable("TA", "m");
	urls.AddVariable("TAid", tagid);
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	var		thediv	=	document.getElementById('clientarea_inner_tag')
	thediv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		gevondenuser.getMessagesByTags(function(thetags)
		{
			thediv.innerHTML	=	''
			var	thetaggroup	=	thetags[tagid]
			for(i	in	thetaggroup.message_ids)
			{
				var	msgid=	thetaggroup.message_ids[i]
				var	msg_div	=	createElement(thediv,null,null,'div')
				Screen_ShowTagMessage_FillMsg(msg_div,msgid,1)
			}
		}
		);
	}
	);
}
function show_pictures_tag(tagid,userid)
{
	urls.AddVariable("TA", "p");
	urls.AddVariable("TAid", tagid);
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	var	thediv	=	document.getElementById('clientarea_inner_tag')
		thediv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		gevondenuser.getMessagesByTags(function(thetags)
		{
			thediv.innerHTML	=	''
			var	thetaggroup	=	thetags[tagid]
			for(i	in	thetaggroup.message_ids)
			{
				var	msgid=	thetaggroup.message_ids[i]
				mapsystem.getMessage(msgid,function(msg)
				{							  
					Screen_ShowTagMessage_FillMsg(thediv,msgid,4)  
					msg.getAttachedMessages(function(childs)
					{
						for(i in childs)
						{
							var child = childs[i]
							Screen_ShowTagMessage_FillMsg(thediv,child.id,4)
						} 
					}
					);
				}
				);
			}
		}
		);
	}
	);
	my_own_BuildFunc('_tag')
}
function fill_titel_tag(tagid)
{
	var titel_div = document.getElementById("titlebar_tag")
		titel_div.innerHTML = ""
	var fadedline_t_div_outer = createElement(titel_div,"fadedline_t_div_outer",null,'div');
	var center = createElement(fadedline_t_div_outer,null,null,'center');
	var fadedline_t_div = createElement(center,"fadedline_t_div",null,'div');
	treelzsystem.tags.getTag(tagid,function(tag)
	{
		var name = tag.tag
		var treel_a = createElement(titel_div,"class_h5","class_h5",'a')
			treel_a.innerHTML = name
	}
	);
}
function fill_tabs_tag_div(tabs_userprofile_div,	tagid,	userid)
{
	var	show_pictures_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_pictures_a.href	=	"javascript:show_pictures_tag("+tagid+", "+userid+")"
		show_pictures_a.innerHTML	=	getTrans.Translate("pictures")
		show_pictures_a.title	=	getTrans.Translate("title_show_pictures_user")
	
	var	streepje_span	=	createElement(tabs_userprofile_div,null,null,'span')
		streepje_span.innerHTML	=	"	|	"
	
	var	show_messages_a	=	createElement(tabs_userprofile_div,null,null,'a')
		show_messages_a.href	=	"javascript:show_messages_tag("+tagid+", "+userid+")"
		show_messages_a.innerHTML	=	getTrans.Translate("messages")
		show_messages_a.title	=	getTrans.Translate("title_show_messages_user")
}
function Screen_ShowTagMessage_FillMsg(thediv,msgid,type)
{
	if(type == null || type =="undefined")
	{
		type=1;
	}
	var	tag_msg_a	=	createElement(thediv,null,null,'a')
	msgcacher	=	getMessageCacher()
	
	msgcacher.getMessage(msgid,function(msg)									
	{
		tag_msg_a.href	=	"javascript:Screen_ShowMessageDetails_from_container("+msg.id+")"
		if(type == 1 && msg.type == 1)
		{
			tag_msg_a.innerHTML	=	msg.title
			my_own_BuildFunc('_tag')
		}
		if(type == 4 && msg.type == 4)
		{
			var	theimg	=	createElement(tag_msg_a,"thumb_img","thumb_img",'img')
				theimg.setAttribute('width','56')
				theimg.setAttribute('height','42')
				theimg.setAttribute('src','imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+msg.picture_id)
			my_own_BuildFunc('_tag')
		}
	}
	);
}
function user_steps_usertags_getamount(object,		callbackfunc)
{
	// verwacht twee parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// callback func. een functie die een aantal terug geeft
	object.getMessagesByTags(function(thetags)
	{
		var	teller	=	0;
		for(i	in	thetags)
		{
			teller	++;
		}
		callbackfunc(teller);
	}
	);
}
function user_steps_usertags(object,	start,	amount,	callbackfunc)
{
	// verwacht vier parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// start: vanaf welk nummer (eerste is 0)
	// amount: en welk aantal terug te geven
	// callback func. een functie die een 'amount' html elements terug geeft te starten bij 'start' om in the scroll div te gooien
	object.getMessagesByTags(function(thetags)
	{							
		var thetags2	=	thetags.sort(sortTagsGroups)
		var	teller	=	0;
		var thesubsettags	=	[]
		for(var	i	=0;i<thetags2.length;i++)
		{
			if(thetags2[i])
			{
				var	thetaggroup	=	thetags2[i]
				if(teller	>=	start	&&	teller	<	start+amount)
				{
					thesubsettags[i]	=	createElement(null,null,null,'a');
					thesubsettags[i].setAttribute('href','javascript:Screen_ShowTagMessage('+object.id+','+thetaggroup.id+')')
					thesubsettags[i].innerHTML	=	thetaggroup.tag	+	'('	+	thetaggroup.num_msgs	+	')<br />'
				}
				teller	++;
			}
		}
		callbackfunc(thesubsettags);
	}
	);
}
function show_pictures_userprofile(userid)
{
	urls.AddVariable("U", "p");
	urls.AddVariable("Uid", userid);
	urls.UpdateURL();
	treelzsystem.users.getUser(userid,null,function(gevondenuser)
	{
		bs	=	new	UniversalScroller	(gevondenuser,	"details_div_userprofile",	"scroll_numbers_userprofile",	user_steps_pictures,	"0",	10,user_steps_pictures_getamount, "scroll_left_userprofile", "scroll_right_userprofile", "bs");
	}
	);
}
function user_steps_pictures_getamount(object,		callbackfunc)
{
	object.getMessagesBetweenAmount(4,function(aantal)
	{
		callbackfunc(aantal);
	}
	);
}
function user_steps_pictures(object,	start,	amount,	callbackfunc)
{
	object.getMessagesBetween(start,amount,4,function(messages,maxaantal)
	{
		var	resultingdivs	=	[]
		
		for	(i	in	messages)
		{
			var	msg	=	messages[i]
			
			if (messages[i].id != null) 
			{ 
			/*
				resultingdivs[i]	=	createElement(null,"smallthumb","smallthumb",'a')
				resultingdivs[i].setAttribute('href','javascript:Screen_ShowMessageDetails_from_container('+messages[i].id+')')
				var	theimg	=	createElement(resultingdivs[i],"thumb_img","thumb_img",'img')
					theimg.setAttribute('width','56')
					theimg.setAttribute('height','42')
					theimg.setAttribute('src','imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+messages[i].picture_id)
					*/
					resultingdivs[i] = Screen_getMessagePictureElement(msg)
			}
		}
		callbackfunc(resultingdivs,maxaantal);
	}
	);
}
function show_settings_userprofile(userid)
{
	//TODO	FILL	WITHIN	SYSTEM
	//treelzsystem.users.getUser(userid,null,function(gevondenuser){
	//	var	details_div_userprofile=document.getElementById("details_div_userprofile");
	//		details_div_userprofile.innerHTML	=	'<img	src="images/indicator.gif"	alt="">';
	//		gevondenuser.getSettings(function(settings){
	//		details_div_userprofile.innerHTML	=	''
	//		details_div_userprofile
	//	}
	//		,true);
	//	});
	window.location.replace("index.php?page=mysettings");
}

function Screen_user_initeer_groupen()
{
	var	tsocial	=	treelzsystem.getTreelerSocial();
	var	resultsdiv=	document.getElementById("selectie-groups");
	resultsdiv.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	tsocial.getGroups(function(groups)
	{
		resultsdiv.innerHTML	=	''
		for(nr	in	groups)
		{
			var	group	=	groups[nr]
			var	new_groupdiv	=	document.createElement('div');
			groupselect_divs[nr]	=	new_groupdiv
			var	new_group_a	=	document.createElement('a');
			groupselect_divs[nr]	=	new_group_a
			new_group_a.setAttribute('href',"javascript:Screen_User_showGroupLatest("+group.id+")");
			new_group_a.innerHTML	=	group.name
			new_groupdiv.appendChild(new_group_a);
			resultsdiv.appendChild(new_groupdiv);
		}
	}
	);
	treelzsystem.users.getUser(treelzsystem.treelersocial.userid,null,function(thecurrentuser)
	{
	}
	);
}
function show_friends_userprofile(gebruikerid)
{
	urls.AddVariable("U", "f");
	urls.AddVariable("Uid", gebruikerid);
	urls.UpdateURL();
	var	details_div_userprofile	=		document.getElementById("details_div_userprofile")
		details_div_userprofile.innerHTML	=	'<img	src="images/indicator.gif"	alt="">'
	treelzsystem.users.getUser(gebruikerid,true,function(gebruiker)
	{
		bs	=	new	UniversalScroller	(gebruiker,	"details_div_userprofile",	"scroll_numbers_userprofile",	user_steps_userfriends,	"0",	10,user_steps_userfriends_getamount, "scroll_left_userprofile", "scroll_right_userprofile", "bs");
		bs.Init("bs");
	}
	);
}
function user_steps_userfriends_getamount(object,callbackfunc)
{
	// verwacht twee parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// callback func. een functie die een aantal terug geeft
	object.getFriends(function(friends)
	{
		var	teller	=	0;
		for(i	in	friends)
		{
			teller	++;
		}
		callbackfunc(teller);
	}
	);
}
function user_steps_userfriends(object,	start, amount,	callbackfunc)
{
	// verwacht vier parametesr
	// object: is wat je bij new Universal hebt opgegeven
	// start: vanaf welk nummer (eerste is 0)
	// amount: en welk aantal terug te geven
	// callback func. een functie die een 'amount' html elements terug geeft te starten bij 'start' om in the scroll div te gooien
	object.getFriends(function(friends)
	{							
		var	teller	=	0;
		var thesubsetfriends	=	[]
		
		
		for(var	i =0;i<friends.length;i++)
		{
			if(friends[i])
			{
				var	thefriend	=	friends[i]
				if(teller	>=	start	&&	teller	<	start+amount)
				{
				/*
					thesubsetfriends[i]	=	createElement(null,'smallthumb',null,'a');
					thesubsetfriends[i].setAttribute('href','javascript:Screen_InitSideBarUserProfile('+thefriend.id+')')
					var thesubsetfriends_img = createElement(thesubsetfriends[i],'thumb_img',null,'img');
						thesubsetfriends_img.setAttribute('width', '56')
						thesubsetfriends_img.setAttribute('height', '42')
						thesubsetfriends_img.setAttribute('title', thefriend.firstname + " " + thefriend.lastname)
						thesubsetfriends_img.setAttribute('src', 'imageshow.php?thumb=true%20&h=42%20&w=56&imageid='+thefriend.picture_id+'')
						*/
						thesubsetfriends[i]	= Screen_getUserProfileDiv(thefriend)
				}
				teller	++;
			}
		}
		callbackfunc(thesubsetfriends);
	}
	);
}
function Screen_UserProfileAddPicture(thediv,message)
{
	var	thumbdiv	=createElement(thediv,'smallthumb',null,'div')
	var	thea	=	createElement(thumbdiv,null,null,'a')
		thea.href="javascript:Screen_ShowMessageDetails_from_container("+message.id+")"
	var	theimg	=	createElement(thea,"thumb_img",null,'img')
		theimg.src=createimageshowUrl(message.picture_id,true,42,56)
		theimg.width="56"
		theimg.height="42"
		theimg.border="0"
}
function direct_invite_user(userid)
{
	var answer = confirm("Toevoegen als vriend?")
	if (answer)
	{
		// 
		invite_user(userid)
	}
	else
	{
		// no
	}
}  //user

function	Screen_Clicked_ShowUserOnly(userid, fromuserprofile)
		{

				urls.AddVariable("MM", "s");
				urls.AddVariable("MMid", userid);
				urls.UpdateURL();
				//	do	so
				Message_ShowOnlyOfOneUser(userid)
				
				only_user_var = true

				//	change	text

				if(fromuserprofile == true)
				{
				create_clickable_icon("userinfo_showonlythis", "unshowonlythis_user", "icon_restore_view", "javascript:Screen_Clicked_UnShowUserOnly("+userid+")",  "tilte_restore_to_normal", null,  "left", 0, option_b_o, option_f_o, true)
				}
		}
		function	Screen_Clicked_UnShowUserOnly(userid)
		{
				create_clickable_icon("userinfo_showonlythis", "showonlythis_user", "icon_show_user_only", "javascript:Screen_Clicked_ShowUserOnly("+userid+", true)",  "title_show_only_this_user_on_map", null,  "left", 0, option_b_o, option_f_o, true)
				Message_Restore_to_Previous_view()
				
				only_user_var = false
		}
		var	old_who_filters	=	null
		function	Message_ShowOnlyOfOneUser(userid)
		{
						do_the_off_all(function(x)
						{
						 turn_on_user_groups(userid)
						}
						,true)

		}
		function	Message_ShowOnlyOfOneGroup(groupid)
		{
			do_the_off_all(function(x)
			{
				mapsystem.globalfilter.setGroupFilter(groupid,true)
			}
			,true)
			
		}
		function	Message_Restore_to_Previous_view()
		{
			do_the_on_all(function(x)
			{
				mapsystem.globalfilter.recheckFilter()
			}
			,true)
		}
		function	Message_ShowOfUser(userid)
		{
				//	save	old
				debug("Tpoint Message_ShowOfUser(userid) is old");
				/*
				mapsystem.addWhatFilter(T_BM_SHOW_NOTES,true)
				mapsystem.addWhatFilter(T_BM_SHOW_PHOTOS,true)
				mapsystem.addWhoSpecificFilter(userid)
				mapsystem.addWhoFilter(T_BM_SHOW_SPECIFIC_USER,true)
				mapsystem.changingView()
				*/
		}
		function	Message_ResetShow()
		{
				alert('todo	reset	show');
		}/*yui_menu.js*/

//alert ('Wait until we can load YUI')
/*

1. logged out with map
2. logged in with map
3. logged out without map
4. logged in without map

if loggedin_id == "0" --> not logged in :)


*/			

//var loggedin_id = "42";
//var domain_gid = "42";
//var with_map = "FALSE";
var friendsEvent = 0;
var groupsEvent = 0;

var friends_menu_items = "";
var my_groups_menu_items = "";

function load_YUI_menu () {
	if (loggedin_id == "0") {		
            YAHOO.util.Event.onContentReady("mainmenu", Yui_Menu_load); // Maar als je bent ingelogd... moet je eerst alle dynamische menuitems laden...
    }
            
    else {
            	load_menu_dynamics ()
    }

}

function load_menu_dynamics() {
			treelzsystem.treelersocial.user.getFriends(function(friends)
			{
					friends_menu_items = "";
					var	friends	=	getSortedFriendsList(friends)
					for(var	i=0;i<	friends.length;i++)
					{
							if(friends[i])
							{
									var	friend	=	friends[i]
									friends_menu_items += "{ text: \"" + friend.firstname + " " + friend.lastname + "\", url: \"javascript:javascript:Screen_InitSideBarUserProfile(" + friend.id + ");\" },\n";
							}			
					}
					//alert ("User Friends loaded... ");
					friendsEvent = "1";
					if (groupsEvent == "1") {
						//alert ("Trigger Menu");
						YAHOO.util.Event.onContentReady("mainmenu", Yui_Menu_load);
						
					}
						//alert (friends_menu_items);
						//YAHOO.util.Event.onContentReady("mainmenu", Yui_Menu_load);
			}
			);
			
			mapsystem.groups.getGroupUsersMemberOf(loggedin_id, function (groups, amount) {
					//alert ("User Groups loaded... ");
					for (id in groups) {
						if (groups[id].title != "") {
						//alert ("{ text: \"" + groups[id].title + "\", url: \"javascript:Screen_ShowGroupDetails(" + id + ");\" },\n");
						my_groups_menu_items += "{ text: \"" + groups[id].title + "\", url: \"javascript:Screen_ShowGroupDetails(" + id + ");\" },\n";
						}
					}
					//alert (my_groups_menu_items);
					groupsEvent = "1";
					if (friendsEvent == "1") {
						//alert ("Trigger Menu");
						YAHOO.util.Event.onContentReady("mainmenu", Yui_Menu_load);
					}	
			});
}            
            
            
            function Yui_Menu_load () {
            
            var yui_Div = document.getElementById("mainmenu");
//			yui_Div.innerHTML = "<div class=\"bd\"><ul class=\"first-of-type\"><li class=\"yuimenubaritem first-of-type\"><a class=\"yuimenubaritemlabel\" href=\"index.php\">"+getTrans.Translate("home")+"</a></li><li class=\"yuimenubaritem\"><a class=\"yuimenubaritemlabel\" href=\"javascript:show_overview_fm()\">"+getTrans.Translate("overview")+"</a></li><li class=\"yuimenubaritem\"><a class=\"yuimenubaritemlabel\" href=\"javascript:centeron_world()\">"+getTrans.Translate("world")+"</a></li><li class=\"yuimenubaritem\"><a class=\"yuimenubaritemlabel\" href=\"#\">"+getTrans.Translate("country_flag")+"</a></li><li class=\"yuimenubaritem\"><a class=\"yuimenubaritemlabel\" href=\"#\">Groups</a></li></ul></div>";
// Heb overview eruit gehaald, Arjen
//			yui_Div.innerHTML = "<div class=\"bd\"><ul class=\"first-of-type\"><li class=\"yuimenubaritem first-of-type\">"+getTrans.Translate("home")+"</li><li><a class=\"menu_arrow\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"10\"	height=\"6\"></a></li><li class=\"yuimenubaritem\"></li><li class=\"yuimenubaritem\"><a class=\"yuimenubaritemlabel\" href=\"javascript:centeron_world()\">"+getTrans.Translate("world")+"</a></li><li><a class=\"menu_arrow\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"10\"	height=\"6\"></a></li><li class=\"yuimenubaritem\"><a class=\"yuimenubaritemlabel\" href=\"#\">"+getTrans.Translate("country_flag")+"</a></li><li><a class=\"menu_arrow\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"10\"	height=\"6\"></a></li><li class=\"yuimenubaritem\"><a class=\"yuimenubaritemlabel\" >Groups</a></li><li><a class=\"menu_arrow\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"10\"	height=\"6\"></a></li></ul></div>";
			yui_Div.innerHTML = "<div class=\"bd\"><ul class=\"first-of-type\"><li class=\"yuimenubaritem first-of-type\"><span class=\"yuimenubaritemlabel\" href=\"index.php\">"+getTrans.Translate("home")+" <span class=\"menu_arrow_span\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"10\"	height=\"13\"></span></span></li><li class=\"yuimenubaritem\"><span class=\"yuimenubaritemlabel\" href=\"javascript:centeron_world()\">"+getTrans.Translate("world")+" <span class=\"menu_arrow_span\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"10\"	height=\"13\"></span></span></li><li class=\"yuimenubaritem\"><span class=\"yuimenubaritemlabel\" href=\"#\">"+getTrans.Translate("country_flag")+" <span class=\"menu_arrow_span\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"10\"	height=\"13\"></span></span></li><li class=\"yuimenubaritem\"><span class=\"yuimenubaritemlabel\" href=\"#\">groups <span class=\"menu_arrow_span\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif'	width=\"10\"	height=\"13\"></span></span></li></ul></div>";



//alert ("YUI READY");
                /*
                     Instantiate a MenuBar:  The first argument passed to the 
                     constructor is the id of the element in the page 
                     representing the MenuBar; the second is an object literal 
                     of configuration properties.
                */

                var oMenuBar = new YAHOO.widget.MenuBar("mainmenu", { 
                                                            autosubmenudisplay: true, 
                                                            hidedelay: 750, 
                                                            lazyload: true });

                /*
                     Define an array of object literals, each containing 
                     the data necessary to create a submenu.
                */
                if (loggedin_id == "0") {
                	var homeData_a = [ 
                        	    { text: getTrans.Translate("getting_started"), url: "javascript:show_help_container()" },
                            	{ text: getTrans.Translate("intro"), url: "javascript:show_global_intro();" },
                           		{ text: getTrans.Translate("about Treelz"), url: "javascript:show_global_intro()" },
                           	 	{ text: getTrans.Translate("search"), url: "javascript:open_close_sel_groups_Search()" },
              //             	 	{ text: "Natuurijs", url: "javascript:t_GGeoXML('http://www.treelz.nl/DEVO3/g_my_maps.php?lang=en&msgid=105538449378579093266.00045f2f0cc1823559d36')" },
                        	];
                }
                
                else {
                	//I need the friends list from the server :)
                	
                	eval ("var friendsData = [ \n" + friends_menu_items + "];");
                        	
                    /*var friendsData = [
                    	{ text: getTrans.Translate("getting_started"), url: "javascript:show_help_container()" },
                    ];*/
                	
                    var homeData_a = [ 
                    	        { text: getTrans.Translate("my info"), url: "javascript:show_info_container_notonstartup()" },
                    	        {
                    	        	text: getTrans.Translate("treelz friends"), url: "#",
                    	        	submenu: {
                    	        				id: getTrans.Translate("treelz friends"),
                    	        				itemdata: friendsData
                    	        	} 
                    	        
                    	        },
                    	        { text: getTrans.Translate("my settings"), url: "javascript:show_mysettings()" },
                            	{ text: getTrans.Translate("my preferences"), url: "javascript:show_preferences();" },
                           		{ text: getTrans.Translate("find_friends"), url: "javascript:show_searchfriends()" },
                           		{ text: getTrans.Translate("invite_friends"), url: "javascript:show_invitefriends()" },
                        	    { text: getTrans.Translate("getting_started"), url: "javascript:show_help_container()" },
                            	{ text: getTrans.Translate("intro"), url: "javascript:show_global_intro();" },
                           		{ text: getTrans.Translate("about Treelz"), url: "javascript:show_global_intro()" },
                           	 	{ text: getTrans.Translate("search"), url: "javascript:open_close_sel_groups_Search()" },
                        	];
                }
                
                var overViewData_a = [
                            { text: "search treelerz", url: "javascript:show_search_fm()" },
                            { text: getTrans.Translate("treelz friends"), url: "javascript:show_treelerz_friends_fm();" },
                            { text: getTrans.Translate("all treelerz"), url: "javascript:show_treelerz_all_fm();" },
                            { text: getTrans.Translate("newest treelerz"), url: "javascript:show_treelerz_new_fm();" }                  
                        ];
                        
                var africaData = [
                            { text: getTrans.Translate("morocco"), url:  "javascript:centeron_morocco()" },
                            { text: getTrans.Translate("egypt"), url: "javascript:centeron_egypt()" },
                            { text: getTrans.Translate("south africa"),  url: "javascript:centeron_southafrica()" },
                            { text: getTrans.Translate("kenya"), url: "javascript:centeron_kenya()" },
                            { text: getTrans.Translate("tanzania"), url: "javascript:centeron_tanzania()" },
                            { text: getTrans.Translate("nigeria"), url: "javascript:centeron_nigeria()" },
                            { text: getTrans.Translate("angola"), url:  "javascript:centeron_angola()" },
                            { text: getTrans.Translate("congo"), url:  "javascript:centeron_congo()" },
                            { text: getTrans.Translate("algeria"), url: "javascript:centeron_algeria()" },
                            { text: getTrans.Translate("kenya"), url: "javascript:centeron_kenya()" },
                            { text: getTrans.Translate("tunisia"), url: "javascript:centeron_tunisia()" }
                        ];
                
                var asiaData = [
                            { text: getTrans.Translate("china"), url: "javascript:centeron_china()" },
                            { text: getTrans.Translate("russia"), url: "javascript:centeron_russia()" },
                            { text: getTrans.Translate("turkey"),  url: "javascript:centeron_turkey()" },
                            { text: getTrans.Translate("israel"), url: "javascript:centeron_israel()" },
                            { text: getTrans.Translate("japan"), url: "javascript:centeron_japan()" },
                            { text: getTrans.Translate("india"), url: "javascript:centeron_india()" },
                            { text: getTrans.Translate("nepal"), url: "javascript:centeron_nepal()" },
                            { text: getTrans.Translate("congo"), url: "javascript:centeron_congo()" },
                            { text: getTrans.Translate("pakistan"), url: "javascript:centeron_pakistan()" },
                            { text: getTrans.Translate("indonesia"), url: "javascript:centeron_indonesia()" },
                            { text: getTrans.Translate("thailand"), url: "javascript:centeron_thailand()" },
                            { text: getTrans.Translate("philippines"), url: "javascript:centeron_philippines()" }
                        ];
                        
                var australiaData = [
                            { text: getTrans.Translate("australia"), url: "javascript:centeron_australia_c()" },
                            { text: getTrans.Translate("new zealand"), url: "javascript:centeron_newzealand()" },
                            { text: getTrans.Translate("fiji"),  url: "javascript:centeron_fiji()" },
                            { text: getTrans.Translate("papua new guinea"), url: "javascript:centeron_papuanewguinea()" },
                            { text: getTrans.Translate("solomon islands"), url: "javascript:centeron_solomonislands()" },
                            { text:  getTrans.Translate("french polynesia"), url: "javascript:centeron_frenchpolynesia()" }
                        ];
                        
               var netherlandsData = [
                            { text: "amsterdam", url: "javascript:centeron_amsterdam()" },
                            { text: "rotterdam", url: "javascript:centeron_rotterdam()" },
                            { text: "delft",  url: "javascript:centeron_delft()" },
                            { text: "leiden", url: "javascript:centeron_leiden()" },
                            { text: "den haag", url: "javascript:centeron_denhaag()" },
                            { text: "groningen", url: "javascript:centeron_groningen()" },
                            { text: "maastricht", url: "javascript:centeron_maastricht" },
                            { text: "utrecht", url: "javascript:centeron_utrecht()" },
                            { text: "tilburg",  url: "javascript:centeron_tilburg()" }
                        ];
                        
                var europeData = [
                            {
                            	text: getTrans.Translate("the netherlands"), url: "javascript:centeron_netherlands()",
                            	submenu: {
                            				id: getTrans.Translate("the netherlands"),
                            				itemdata: netherlandsData
                            			 }
                            
                            },
                            { text: getTrans.Translate("belgium"), url: "javascript:centeron_belgium()" },
                            { text: getTrans.Translate("germany"),  url: "javascript:centeron_germany()" },
                            { text: getTrans.Translate("england"), url: "javascript:centeron_england()" },
                            { text: getTrans.Translate("france"), url: "javascript:centeron_france()" },
                            { text: getTrans.Translate("italy"), url: "javascript:centeron_italy()" },
                            { text: getTrans.Translate("spain"), url: "javascript:centeron_spain()" },
                            { text: getTrans.Translate("greece"), url: "javascript:centeron_greece()" },
                            { text: getTrans.Translate("norway"), url: "javascript:centeron_norway()" }
                        ];
                        
               var northamericaData = [
                            { text: getTrans.Translate("usa"), url: "javascript:centeron_usa()" },
                            { text: getTrans.Translate("canada"), url: "javascript:centeron_canada()" },
                            { text: getTrans.Translate("mexico"),  url: "javascript:centeron_mexico()" },
                            { text: getTrans.Translate("cuba"), url: "javascript:centeron_cuba()" },
                            { text: getTrans.Translate("guatemala"), url: "javascript:centeron_guatemala()" },
                            { text: getTrans.Translate("honduras"), url: "javascript:centeron_honduras()" },
                            { text: getTrans.Translate("nicaragua"), url: "javascript:centeron_nicaragua()" },
                            { text: getTrans.Translate("costa rica"), url: "javascript:centeron_costarica()" },
                            { text: getTrans.Translate("panama"), url: "javascript:centeron_panama()" },
                            { text: getTrans.Translate("dominican republic"), url: "javascript:centeron_dominicanrepublic()" },
                            { text: getTrans.Translate("puerto rico"), url: "javascript:centeron_puertorico()" }
                        ];
                        
               var southamericaData = [
                            { text: getTrans.Translate("brasil"), url: "javascript:centeron_brasil()" },
                            { text: getTrans.Translate("peru"), url: "javascript:centeron_peru()" },
                            { text: getTrans.Translate("argentina"),  url: "javascript:centeron_argentina()" },
                            { text: getTrans.Translate("chile"), url: "javascript:centeron_chile()" },
                            { text: getTrans.Translate("venezuela"), url: "javascript:centeron_venezuela()" },
                            { text: getTrans.Translate("suriname"), url: "javascript:centeron_suriname()" },
                            { text: getTrans.Translate("bolivia"), url: "javascript:centeron_bolivia()" },
                            { text: getTrans.Translate("ecuador"), url: "javascript:centeron_ecuador()" },
                            { text: getTrans.Translate("quyana"), url: "javascript:centeron_quyana()" },
                            { text: getTrans.Translate("paraguay"), url: "javascript:centeron_paraguay()" },
                            { text: getTrans.Translate("uruguay"), url: "javascript:centeron_uruguay()" }
                        ];                       
                        
                var worldData_a = [
                            { text: getTrans.Translate("my hometown"), url: "javascript:centeron_home()" },
                            { 
                            	text: getTrans.Translate("africa"), url: "javascript:centeron_africa()", 
                            	submenu: {
                            				id: getTrans.Translate("africa"),
                            				itemdata: africaData
                            			 }
                            },
                            { 
                            	text: getTrans.Translate("asia"), url: "javascript:centeron_asia()",
                            	submenu: {
                            				id: getTrans.Translate("asia"),
                            				itemdata: asiaData
                            			 }
                            },
                            {
                            
                            	text: getTrans.Translate("australia"), url: "javascript:centeron_australia()",
                            	submenu: {
                            				id: getTrans.Translate("australia"),
                            				itemdata: australiaData
                            			 } 
                            },
                            {
                            	text: getTrans.Translate("europe"), url: "javascript:centeron_europe()",
                            	submenu: {
                            				id: getTrans.Translate("europe"),
                            				itemdata: europeData
                            			 }
                            		
                            },
                            {
                            	text: getTrans.Translate("north-america"), url: "javascript:centeron_northamerica()",
                            	submenu: {
                            				id: getTrans.Translate("north-america"),
                            				itemdata: northamericaData
                            			 }
                            		
                            },
                            {
                            	text: "zuid-america", url: "javascript:centeron_southamerica()",
                            	submenu: {
                            				id: "zuid-america",
                            				itemdata: southamericaData
                            			 }
                            		
                            }              
                        ];
                        
                var textLanguages = [
                	{ text: "<img src=\"images/countries/flag_nl.gif\" border=\"0\" />", url: "index.php?lang=NL" },
                	{ text: "<img src=\"images/countries/flag_gb.gif\" border=\"0\" /><br /><img src=\"images/countries/flag_us.gif\" border=\"0\" />", url: "index.php?lang=EN" }
                ];
                        
                var languageData_a = [
                            { 
                            	text: "language of text", url: "#",
                            	submenu: {
                            				id: "Language of text",
                            				itemdata: textLanguages
                            			 }	
                            },
                            { text: "languages on map", url: "javascript:load_languages_menu()" }
                        ];
                        
                if (loggedin_id == "0") {
                	var create_group_link = "javascript:show_treelz_alert_not_loggedin_create_group()";
                }
                
                else {
                	var create_group_link = "javascript:open_screen_create_group()";
                }
                
                //var groupOptions = ", { text: \"Group profile\", url: \"#\" }, { text: \"Group intro	\", url: \"#\" }";
                
                if (domain_gid == -1 && loggedin_id != "0") { 
                	//alert (my_groups_menu_items);
                	eval ("var my_groupsData = [ \n" + my_groups_menu_items + "];");    
                	var groupsData = [
                  				{ text: "groups introduction", url: "javascript:open_groups_intro()" },
                    	        { text: "create group", url: create_group_link },
                    	        { 
                    	        	text: "my groups", url: "#",//"javascript:show_groups_userprofile("+loggedin_id+")",
                            		submenu: {
                            				id: "My Groups",
                            				itemdata: my_groupsData
                            		}
                            	},
                	];   
                }
                
                else if (loggedin_id != "0") {
                	eval ("var my_groupsData = [ \n" + my_groups_menu_items + "];");              
                	var groupsData = [
                  				{ text: "groups introduction", url: "javascript:open_groups_intro()" },
                   	        	{ text: "create group", url: create_group_link },
                    	        { text: "group profile", url: "javascript:Screen_ShowGroupDetails("+domain_gid+")" },
                    	        { text: "group intro", url: "javascript:open_screen_intro_group("+domain_gid+")" },
                    	        { text: "group settings", url: "javascript:open_screen_edit_group("+domain_gid+")" },
                    	        { 
                    	        	text: "my groups", url: "#",//"javascript:show_groups_userprofile("+loggedin_id+")",
                            		submenu: {
                            				id: "My Groups",
                            				itemdata: my_groupsData
                            		}
                            	},       
                	];
                }
                
                else if (domain_gid != -1) {
                	var groupsData = [
                 				{ text: "groups introduction", url: "javascript:open_groups_intro()" },
                   	        	{ text: "group profile", url: "javascript:open_screen_intro_group("+domain_gid+")" },
                    	        { text: "group intro", url: "javascript:open_screen_intro_group("+domain_gid+")" }
                	];

                }
                
                else {
                	var groupsData = [
                				{ text: "groups introduction", url: "javascript:open_groups_intro()" }
                	];
                }
                
                var aSubmenuData = [
                
                    {
                        id: getTrans.Translate("home"), 
                        itemdata: homeData_a
                    },

          /*          {
                        id: getTrans.Translate("overview"), 
                        itemdata: overViewData_a    
                    },
           */         
                    {
                        id: getTrans.Translate("world"), 
                        itemdata: worldData_a 
                    },
                    
                    {
                        id: getTrans.Translate("country_flag"),
                        itemdata: languageData_a
                    },
                    
                    {
                        id: "Groups",
                        itemdata:groupsData
                    }
                                        
                ];
				
				/*for (i in aSubmenuData) {
					alert (aSubmenuData[i].id);
				}*/

                /*
                     Subscribe to the "beforerender" event, adding a submenu 
                     to each of the items in the MenuBar instance.
                */

                oMenuBar.subscribe("beforeRender", function () {

                    if (this.getRoot() == this) {
                    
               			for (i in aSubmenuData) {
							eval ("this.getItem("+i+").cfg.setProperty(\"submenu\", aSubmenuData["+i+"])");
						}
/*
                        this.getItem(0).cfg.setProperty("submenu", aSubmenuData[0]);
                        this.getItem(1).cfg.setProperty("submenu", aSubmenuData[1]);
                        this.getItem(2).cfg.setProperty("submenu", aSubmenuData[2]);
                        this.getItem(3).cfg.setProperty("submenu", aSubmenuData[3]);
                        this.getItem(4).cfg.setProperty("submenu", aSubmenuData[4]);*/

                    }

                });


                /*
                     Call the "render" method with no arguments since the 
                     markup for this MenuBar instance is already exists in 
                     the page.
                */

                oMenuBar.render();         
            
    }


/*
 * CCallWrapper.js
 * $Revision: 1.3 $ $Date: 2003/07/07 18:32:43 $
 */

function CCallWrapper(aObjectReference, 
                      aDelay,
                      aMethodName, 
                      aArgument0,
                      aArgument1,
                      aArgument2,
                      aArgument3,
                      aArgument4,
                      aArgument5,
                      aArgument6,
                      aArgument7,
                      aArgument8,
                      aArgument9
                      )
{
  this.mId = 'CCallWrapper_' + (CCallWrapper.mCounter++);
  this.mObjectReference = aObjectReference;
  this.mDelay     = aDelay;
  this.mTimerId = 0;
  this.mMethodName = aMethodName;
  this.mArgument0 = aArgument0;
  this.mArgument1 = aArgument1;
  this.mArgument2 = aArgument2;
  this.mArgument3 = aArgument3;
  this.mArgument4 = aArgument4;
  this.mArgument5 = aArgument5;
  this.mArgument6 = aArgument6;
  this.mArgument7 = aArgument7;
  this.mArgument8 = aArgument8;
  this.mArgument9 = aArgument9;
  CCallWrapper.mPendingCalls[this.mId] = this;
}

CCallWrapper.prototype.execute = function()
{
  this.mObjectReference[this.mMethodName](this.mArgument0,
                                          this.mArgument1,
                                          this.mArgument2,
                                          this.mArgument3,
                                          this.mArgument4,
                                          this.mArgument5,
                                          this.mArgument6,
                                          this.mArgument7,
                                          this.mArgument8,
                                          this.mArgument9
                                          );
  delete CCallWrapper.mPendingCalls[this.mId];
};

CCallWrapper.prototype.cancel = function()
{
  clearTimeout(this.mTimerId);
  delete CCallWrapper.mPendingCalls[this.mId];
};

CCallWrapper.asyncExecute = function (/* CCallWrapper */ callwrapper)
{
  CCallWrapper.mPendingCalls[callwrapper.mId].mTimerId = setTimeout('CCallWrapper.mPendingCalls["' + callwrapper.mId + '"].execute()', callwrapper.mDelay);
};

CCallWrapper.mCounter = 0;
CCallWrapper.mPendingCalls = {};

		// Constructor.
		Clusterer = function ( map )
		{
				this.map = map;
				this.markers = [];
				this.clusters = [];
				this.timeout = null;
				this.currentZoomLevel = map.getZoom();

				this.maxVisibleMarkers = Clusterer.defaultMaxVisibleMarkers;
				this.gridSize = Clusterer.defaultGridSize;
				this.minMarkersPerCluster = Clusterer.defaultMinMarkersPerCluster;
				this.maxLinesPerInfoBox = Clusterer.defaultMaxLinesPerInfoBox;
				this.icon = Clusterer.defaultIcon;

				GEvent.addListener( map, 'zoomend', Clusterer.MakeCaller( Clusterer.Display, this ) );
				GEvent.addListener( map, 'moveend', Clusterer.MakeCaller( Clusterer.Display, this ) );
				GEvent.addListener( map, 'infowindowclose', Clusterer.MakeCaller( Clusterer.PopDown, this ) );

				this.tooltip = document.createElement("div");
				this.map.getPane(G_MAP_FLOAT_PANE).appendChild(this.tooltip);
				this.tooltip.style.visibility="hidden";
				this.tooltipclicked = false

				this.zoom_to_somewherefunctionname = null
		};


		Clusterer.defaultMaxVisibleMarkers = 150;
		Clusterer.defaultGridSize = 10;
		Clusterer.defaultMinMarkersPerCluster = 30;
		Clusterer.defaultMaxLinesPerInfoBox = 10;

		Clusterer.defaultIcon = new GIcon();
		Clusterer.defaultIcon.image = 'images/icons_on_map/icon_cluster.png';
		//Clusterer.defaultIcon.shadow = 'images/icons_on_map/icon_shadow.png';
		Clusterer.defaultIcon.iconSize = new GSize( 38, 38 );
		//Clusterer.defaultIcon.shadowSize = new GSize( 56, 41 );
		Clusterer.defaultIcon.iconAnchor = new GPoint( 13, 34 );
		Clusterer.defaultIcon.infoWindowAnchor = new GPoint( 13, 3 );
		//Clusterer.defaultIcon.infoShadowAnchor = new GPoint( 27, 37 );


		// Call this to change the cluster icon.
		Clusterer.prototype.SetIcon = function ( icon )
		{
				this.icon = icon;
		};


		Clusterer.prototype.SetGridSize= function ( n )
		{
				this.gridSize = n;
		};
		

		// Changes the maximum number of visible markers before clustering kicks in.
		Clusterer.prototype.SetMaxVisibleMarkers = function ( n )
		{
				this.maxVisibleMarkers = n;
		};


		// Sets the minumum number of markers for a cluster.
		Clusterer.prototype.SetMinMarkersPerCluster = function ( n )
		{
				this.minMarkersPerCluster = n;
		};


		// Sets the maximum number of lines in an info box.
		Clusterer.prototype.SetMaxLinesPerInfoBox = function ( n )
		{
				this.maxLinesPerInfoBox = n;
		};


		// Call this to add a marker.
		Clusterer.prototype.AddMarker = function ( marker, title,loc )
		{
				if ( marker.setMap != null )
				marker.setMap( this.map );

				marker.title = title;
				marker.onMap = false;
				marker.location = loc
				this.markers.push( marker );
				this.DisplayLater();
		};


		// Call this to remove a marker.
		Clusterer.prototype.RemoveMarker = function ( marker )
		{
				for ( var i = 0; i < this.markers.length; ++i )
				{
    				if ( this.markers[i] == marker )
    				{
						// marker gevonden
						
						 // als ie op de map staat er af halen
    						if ( marker.onMap )
    						{
    								this.map.removeOverlay( marker );
    						}
    
								// vind cluster waar ie in zit
    						for ( var j = 0; j < this.clusters.length; ++j )
    						{
    								var cluster = this.clusters[j];
    								if ( cluster != null )
    								{
    										for ( var k = 0; k < cluster.markers.length; ++k )
    										{
        										if ( cluster.markers[k] == marker )
        										{
        												cluster.markers[k] = null;
        												--cluster.markerCount;
																if ( cluster.markerCount == 0 )
            										{
            												this.ClearCluster( cluster );
            												this.clusters[j] = null;
            										}
        												//break;
        										
            										
														}
														/*
        										else if ( cluster == this.poppedUpCluster )
        										{
        												Clusterer.RePop( this );
        										}
														*/
    										}
    								}
    						}
								
    						this.markers[i] = null;
    						break;
    				}
				}
				this.DisplayLater();
		};


		Clusterer.prototype.DisplayLater = function ()
		{
				if ( this.timeout != null )
				clearTimeout( this.timeout );
				this.timeout = setTimeout( Clusterer.MakeCaller( Clusterer.Display, this ), 100 );
		};


		Clusterer.Display = function ( clusterer )
		{

				var i, j, marker, cluster;

				clearTimeout( clusterer.timeout );

				var newZoomLevel = clusterer.map.getZoom();
				if ( newZoomLevel != clusterer.currentZoomLevel )
				{
						// When the zoom level changes, we have to remove all the clusters.
						for ( i = 0; i < clusterer.clusters.length; ++i )
						{
								if ( clusterer.clusters[i] != null )
								{
										clusterer.ClearCluster( clusterer.clusters[i] );
										clusterer.clusters[i] = null;
								}
						}
						clusterer.clusters.length = 0;
						clusterer.currentZoomLevel = newZoomLevel;
				}

				// Get the current bounds of the visible area.
				var bounds = clusterer.map.getBounds();

				// Expand the bounds a little, so things look smoother when scrolling
				// by small amounts. => uitgezet, want dan werkt het op zoom niveau < 3 niet!
	/*			var sw = bounds.getSouthWest();
				var ne = bounds.getNorthEast();
				var dx = ne.lng() - sw.lng();
				var dy = ne.lat() - sw.lat();
				dx *= 0.10;
				dy *= 0.10;
				var new_sw = new GLatLng( sw.lat() - dy, sw.lng() - dx )				
				var new_ne = new GLatLng( ne.lat() + dy, ne.lng() + dx )
			
				bounds = new GLatLngBounds(new_sw, new_ne );
*/
				
				// Partition the markers into visible and non-visible lists.
				var visibleMarkers = [];
				var nonvisibleMarkers = [];
				for ( i = 0; i < clusterer.markers.length; ++i )
				{
						marker = clusterer.markers[i];
						if ( marker != null )
						{
								if ( bounds.contains( marker.getPoint() ) )
								{
										visibleMarkers.push( marker );
								}
								else
								{
										nonvisibleMarkers.push( marker );
								}
						}
				}

				// Take down the non-visible markers.
				for ( i = 0; i < nonvisibleMarkers.length; ++i )
				{
						marker = nonvisibleMarkers[i];
						if ( marker.onMap )
						{
								clusterer.map.removeOverlay( marker );
								marker.onMap = false;
						}
				}

				// Take down the non-visible clusters.
				for ( i = 0; i < clusterer.clusters.length; ++i )
				{
						cluster = clusterer.clusters[i];
						if ( cluster != null && ! bounds.contains( cluster.marker.getPoint() ) && cluster.onMap )
						{
								clusterer.map.removeOverlay( cluster.marker );
								cluster.onMap = false;
						}
				}

				// Clustering!  This is some complicated stuff.  We have three goals
				// here.  One, limit the number of markers & clusters displayed, so the
				// maps code doesn't slow to a crawl.  Two, when possible keep existing
				// clusters instead of replacing them with new ones, so that the app pans
				// better.  And three, of course, be CPU and memory efficient.
				if ( visibleMarkers.length > clusterer.maxVisibleMarkers )
				{
						// Add to the list of clusters by splitting up the current bounds
						// into a grid.
						var latRange = bounds.getNorthEast().lat() - bounds.getSouthWest().lat();
						var latInc = latRange / clusterer.gridSize;
						var lngInc = latInc / Math.cos( ( bounds.getNorthEast().lat() + bounds.getSouthWest().lat() ) / 2.0 * Math.PI / 180.0 );
						for ( var lat = bounds.getSouthWest().lat(); lat <= bounds.getNorthEast().lat(); lat += latInc )
						{
								for ( var lng = bounds.getSouthWest().lng(); lng <= bounds.getNorthEast().lng(); lng += lngInc )
								{
										cluster = new Object();
										cluster.clusterer = clusterer;
										cluster.bounds = new GLatLngBounds( new GLatLng( lat, lng ), new GLatLng( lat + latInc, lng + lngInc ) );
										cluster.markers = [];
										cluster.markerCount = 0;
										cluster.onMap = false;
										cluster.marker = null;
										clusterer.clusters.push( cluster );
								}
						}

						// Put all the unclustered visible markers into a cluster - the first
						// one it fits in, which favors pre-existing clusters.
						for ( i = 0; i < visibleMarkers.length; ++i )
						{
								marker = visibleMarkers[i];
								if ( marker != null && ! marker.inCluster )
								{
										for ( j = 0; j < clusterer.clusters.length; ++j )
										{
												cluster = clusterer.clusters[j];
												if ( cluster != null && cluster.bounds.contains( marker.getPoint() ) )
												{
														cluster.markers.push( marker );
														++cluster.markerCount;
														marker.inCluster = true;
												}
										}
								}
						}

						// Get rid of any clusters containing only a few markers.
						for ( i = 0; i < clusterer.clusters.length; ++i )
						{
								if ( clusterer.clusters[i] != null && clusterer.clusters[i].markerCount < clusterer.minMarkersPerCluster )
								{
										clusterer.ClearCluster( clusterer.clusters[i] );
										clusterer.clusters[i] = null;
								}
						}

						// Shrink the clusters list.
						for ( i = clusterer.clusters.length - 1; i >= 0; --i )
						{
								if ( clusterer.clusters[i] != null )
								{
										break;
								}
								else
								{
										--clusterer.clusters.length;
								}
						}
						
						// Ok, we have our clusters.  Go through the markers in each
						// cluster and remove them from the map if they are currently up.
						for ( i = 0; i < clusterer.clusters.length; ++i )
						{
								cluster = clusterer.clusters[i];
								if ( cluster != null )
								{
										for ( j = 0; j < cluster.markers.length; ++j )
										{
												marker = cluster.markers[j];
												if ( marker != null && marker.onMap )
												{
														clusterer.map.removeOverlay( marker );
														marker.onMap = false;
												}
										}
								}
						}

						// Now make cluster-markers for any clusters that need one.
						for ( i = 0; i < clusterer.clusters.length; ++i )
						{
								cluster = clusterer.clusters[i];
								if ( cluster != null && cluster.marker == null )
								{
										// Figure out the average coordinates of the markers in this
										// cluster.
										var xTotal = 0.0, yTotal = 0.0;
										for ( j = 0; j < cluster.markers.length; ++j )
										{
												marker = cluster.markers[j];
												if ( marker != null )
												{
														xTotal += ( + marker.getPoint().lng() );
														yTotal += ( + marker.getPoint().lat() );
												}
												//var loc = marker.location
										}
										
										var location = new GLatLng( yTotal / cluster.markerCount, xTotal / cluster.markerCount );
								    marker = new GMarker( location, { icon: clusterer.icon } );
										cluster.marker = marker;
										cluster.clusterer = clusterer
										//GEvent.addListener( marker, 'click', Clusterer.MakeCaller( Clusterer.PopUp, cluster ) );
										//GEvent.addListener( marker, 'mouseover', Clusterer.MakeCaller( Clusterer.PopUp, cluster ) );


										GEvent.addListener( marker, 'click', Clusterer.MakeCaller( Clusterer.Zoomin, cluster ) );
										GEvent.addListener( marker, 'mouseover', Clusterer.MakeCaller( Clusterer.ClearTooltip, cluster ) );
										GEvent.addListener(marker,"mouseout", function()
										{
												clusterer.tooltip.style.visibility="hidden";
										}
										);
								}
						}
				}

				// Display the visible markers not already up and not in clusters.
				for ( i = 0; i < visibleMarkers.length; ++i )
				{
						marker = visibleMarkers[i];
						if ( marker != null && ! marker.onMap && ! marker.inCluster )
						{
								clusterer.map.addOverlay( marker );
								if ( marker.addedToMap != null )
								{
  								marker.addedToMap();
  								marker.onMap = true;
								}
						}
				}

				// Display the visible clusters not already up.
				for ( i = 0; i < clusterer.clusters.length; ++i )
				{
						cluster = clusterer.clusters[i];
						if ( cluster != null && ! cluster.onMap && bounds.contains( cluster.marker.getPoint() ) )
						{
								clusterer.map.addOverlay( cluster.marker );
								cluster.onMap = true;
						}
				}

				// Recheck the visible clusters for icon change.....
				for ( i = 0; i < clusterer.clusters.length; ++i )
				{
						cluster = clusterer.clusters[i];
						if(cluster != null)
						{
								Clusterer.checkForIconChange(cluster)
						}
				}

				// In case a cluster is currently popped-up, re-pop to get any new
				// markers into the infobox.
				Clusterer.RePop( clusterer );
		};

		Clusterer.checkForIconChange=function(cluster)
		{
				//return 0; // TODO TEMP FOR GROUPS!!!!
				// steven please edit this
				var friendmsgs = -1;
				var publicmsgs = -1;
				var ownmsgs = -1;

				for ( j = 0; j < cluster.markers.length; ++j )
				{
						marker = cluster.markers[j];
						if ( marker != null )
						{
								// TODO fix this showlevel shit
								var loc = marker.location

								if(loc.friendmessages != -1) friendmsgs = 1;
								if(loc.usermessages != -1) ownmsgs = 1;
								//if(loc.showlevels[4])
								publicmsgs = 1;

						}
				}

				if(cluster.publicmsgs != publicmsgs ||cluster.ownmsgs != ownmsgs || cluster.friendmsgs != friendmsgs)
				{
						// change
						var new_image_url =  'images/icons_on_map/cluster/black.png';

						if(publicmsgs == 1)
						{
								// wel publics
								if(ownmsgs == 1)
								{
										// wel eigen
										if(friendmsgs ==1)
										{
												// wel friend,eigen,public
												new_image_url =  'images/icons_on_map/cluster/blue_red_black.png';
										}
										else
										{
												// geen friend
												// wel eigen public
												new_image_url =  'images/icons_on_map/cluster/black_blue.png';
										}
								}
								else
								{
										// geen eigen
										if(friendmsgs ==1)
										{
												// wel friend, public
												// geen eigen
												new_image_url =  'images/icons_on_map/cluster/black_red.png';
										}
										else
										{
												// geen friend, geen eigen
												// wel public
												new_image_url =  'images/icons_on_map/cluster/black.png';
										}
								}

						}
						else
						{
								// geen publics
								if(ownmsgs == 1)
								{
										// wel eigen
										if(friendmsgs ==1)
										{
												// wel friend,eigen
												// geen publics
												new_image_url =  'images/icons_on_map/cluster/blue_red.png';
										}
										else
										{
												// geen friend
												// geen publics
												// wel eigen
												new_image_url =  'images/icons_on_map/cluster/blue.png';
										}
								}
								else
								{
										// geen eigen
										if(friendmsgs ==1)
										{
												// wel friend
												// geen publics,eigen
												new_image_url =  'images/icons_on_map/cluster/red.png';
										}
										else
										{
												// geen friend
												// geen publics,eigen
												//
												new_image_url =  'images/icons_on_map/cluster/ERROR.png';
										}
								}
						}
						/*
						if(publicmsgs == 1 && ownmsgs == -1 && friendmsgs == -1) new_image_url =  'images/icons_on_map/cluster/black.png';
						if(publicmsgs == 1 && ownmsgs == 1 && friendmsgs == -1) new_image_url =  'images/icons_on_map/cluster/black.png';
						if(publicmsgs == 1 && ownmsgs == 1 && friendmsgs == 1) new_image_url =  'images/icons_on_map/cluster/black.png';
						if(publicmsgs == 1 && ownmsgs == -1 && friendmsgs == 1) new_image_url =  'images/icons_on_map/cluster/black.png';
						if(publicmsgs == -1 && ownmsgs == 1 && friendmsgs == -1) new_image_url =  'images/icons_on_map/cluster/black.png';
						if(publicmsgs == -1 && ownmsgs == -1 && friendmsgs == 1) new_image_url =  'images/icons_on_map/cluster/black.png';
						if(publicmsgs == -1 && ownmsgs == 1 && friendmsgs == 1) new_image_url =  'images/icons_on_map/cluster/black.png';
						if(publicmsgs == 1 && ownmsgs == -1 && friendmsgs == -1) new_image_url =  'images/icons_on_map/cluster/black.png';
						if(publicmsgs == 1 && ownmsgs == -1 && friendmsgs == -1) new_image_url =  'images/icons_on_map/cluster/black.png';
						*/

						cluster.marker.setImage(new_image_url);

						cluster.publicmsgs = publicmsgs
						cluster.ownmsgs = ownmsgs
						cluster.friendmsgs = friendmsgs
				}

		}

		Clusterer.FillLocationDiv=function(thediv,location)
		{
				thediv.innerHTML = 'Loc: '
				var aantal_fotos = location.getNumberOfType(4)
				var aantal_notes = location.getNumberOfType(1)

				thediv.innerHTML = 'Loc:  '+aantal_notes+' <img width="10" height="10" src="images/postit_icon.gif" alt=""> ' + aantal_fotos + '<img src="images/camera.jpg" width="10" height="10"  alt="">'

		}

		Clusterer.ClearTooltip = function ( cluster )
		{

				//alert("hover over cluster")
				var thisinstance = cluster.clusterer
				thisinstance.tooltip.innerHTML = ''


		}


		Clusterer.Zoomin = function ( cluster)
		{
				/*
				// 	OUDE ZOOM, WERKT NAAR SPECIFIEK NIVEAU
				//alert("inzoomen op de volgende locatie: "+location+".. succes..")
				var xTotal = 0.0, yTotal = 0.0;
				for ( j = 0; j < cluster.markers.length; ++j )
				{
				marker = cluster.markers[j];
				if ( marker != null )
				{
				xTotal += ( + marker.getPoint().lng() );
				yTotal += ( + marker.getPoint().lat() );
				}
				//var loc = marker.location
				}
				var location = new GLatLng( yTotal / cluster.markerCount, xTotal / cluster.markerCount );


				var location = new GLatLng( yTotal / cluster.markerCount, xTotal / cluster.markerCount );
				var zoomlevel = Math.round(mapsystem.map.getZoom() + 2)
				//var center = new GLatLng(location)
				map.setCenter(location);

				//mapsystem.centerOnLocation(location)
				mapsystem.map.setZoom(zoomlevel)
				*/

				// nieuwe system. zoom to bounds
				var extrazoom = -1
				var	bounds	=	new	GLatLngBounds();
				for ( j = 0; j < cluster.markers.length; ++j )
				{
						marker = cluster.markers[j];
						if ( marker != null )
						{
								bounds.extend(new	GLatLng(marker.getPoint().lat(),marker.getPoint().lng()));
								//xTotal += ( + marker.getPoint().lng() );
								//yTotal += ( + marker.getPoint().lat() );
						}
				}
				mapsystem.map.setCenter(bounds.getCenter(),mapsystem.map.getBoundsZoomLevel(bounds)+extrazoom);


		}

		Clusterer.PopUp = function ( cluster )
		{



				var thisinstance = cluster.clusterer
				var clusterer = cluster.clusterer;
				thisinstance.tooltip.innerHTML = ''

				this.tooltipclicked = true

				var new_div = createElement(thisinstance.tooltip,'tooltip','tooltip','div')
				new_div.innerHTML = 'Dit is een cluster met '+cluster.markers.length + ' locaties, met oa.:'
				//var html = '<table width="300">';
				var n = 0;
				for ( var i = 0; i < cluster.markers.length; ++i )
				{
						var marker = cluster.markers[i];
						if ( marker != null )
						{
								++n;
								var new_loc_div = createElement(new_div,null,null,'div')
								//new_loc_div.innerHTML = marker.title
								Clusterer.FillLocationDiv(new_loc_div,marker.location)

								if ( n == clusterer.maxLinesPerInfoBox - 1 && cluster.markerCount > clusterer.maxLinesPerInfoBox  )
								{
										var new_loc_div = createElement(new_div,null,null,'div')
										//html += '<tr><td colspan="2">...and ' + ( cluster.markerCount - n ) + ' more punten</td></tr>';
										new_loc_div.innerHTML = '...en nog ' + ( cluster.markerCount - n ) + ' andere punten'
										break;
								}

						}


				}
				if(clusterer.zoom_to_somewherefunctionname)
				{
						var thepoint = cluster.marker.getPoint()
						var zoom_div = createElement(new_div,null,null,'div')
						//			zoom_div.innerHTML = '<a href="javascript:'+clusterer.zoom_to_somewherefunctionname+'(\''+thepoint.lat()+'\',\''+thepoint.lng()+'\')">Zoom naar dit cluster</a>'
				}

				var marker = cluster.marker
				var point=thisinstance.map.getCurrentMapType().getProjection().fromLatLngToPixel(thisinstance.map.fromDivPixelToLatLng(new GPoint(0,0),true),thisinstance.map.getZoom());
				var offset=thisinstance.map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),thisinstance.map.getZoom());
				var anchor=marker.getIcon().iconAnchor;
				var width=marker.getIcon().iconSize.width/2;
				var height=thisinstance.tooltip.clientHeight - marker.getIcon().iconSize.height/2 ;
				var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width , offset.y - point.y -anchor.y -height));//
				pos.apply(thisinstance.tooltip);
				thisinstance.tooltip.style.visibility="visible";





				clusterer.poppedUpCluster = cluster;
		};


		Clusterer.RePop = function ( clusterer )
		{
				if ( clusterer.poppedUpCluster != null )
				Clusterer.PopUp( clusterer.poppedUpCluster );
		};


		Clusterer.PopDown = function ( clusterer )
		{
				clusterer.poppedUpCluster = null;
		};


		Clusterer.prototype.setZoomFunction=function(name)
		{
				this.zoom_to_somewherefunctionname = name
		}

		Clusterer.prototype.ClearCluster = function ( cluster )
		{
				var i, marker;

				for ( i = 0; i < cluster.markers.length; ++i )
				if ( cluster.markers[i] != null )
				{
						cluster.markers[i].inCluster = false;
						cluster.markers[i] = null;
				}
				cluster.markers.length = 0;
				cluster.markerCount = 0;
				if ( cluster == this.poppedUpCluster )
				this.map.closeInfoWindow();
				if ( cluster.onMap )
				{
						this.map.removeOverlay( cluster.marker );
						cluster.onMap = false;
				}
		};


		// This returns a function closure that calls the given routine with the
		// specified arg.
		Clusterer.MakeCaller = function ( func, arg )
		{
		return function () { func( arg ); };
		};


		// Augment GMarker so it handles markers that have been created but
		// not yet addOverlayed.

		GMarker.prototype.setMap = function ( map )
		{
				this.map = map;
		};

		GMarker.prototype.addedToMap = function ()
		{
				this.map = null;
		};

		GMarker.prototype.origOpenInfoWindow = GMarker.prototype.openInfoWindow;
		GMarker.prototype.openInfoWindow = function ( node, opts )
		{
				if ( this.map != null )
				return this.map.openInfoWindow( this.getPoint(), node, opts );
				else
				return this.origOpenInfoWindow( node, opts );
		};

		GMarker.prototype.origOpenInfoWindowHtml = GMarker.prototype.openInfoWindowHtml;
		GMarker.prototype.openInfoWindowHtml = function ( html, opts )
		{
				if ( this.map != null )
				return this.map.openInfoWindowHtml( this.getPoint(), html, opts );
				else
				return this.origOpenInfoWindowHtml( html, opts );
		};

		GMarker.prototype.origOpenInfoWindowTabs = GMarker.prototype.openInfoWindowTabs;
		GMarker.prototype.openInfoWindowTabs = function ( tabNodes, opts )
		{
				if ( this.map != null )
				return this.map.openInfoWindowTabs( this.getPoint(), tabNodes, opts );
				else
				return this.origOpenInfoWindowTabs( tabNodes, opts );
		};

		GMarker.prototype.origOpenInfoWindowTabsHtml = GMarker.prototype.openInfoWindowTabsHtml;
		GMarker.prototype.openInfoWindowTabsHtml = function ( tabHtmls, opts )
		{
				if ( this.map != null )
				return this.map.openInfoWindowTabsHtml( this.getPoint(), tabHtmls, opts );
				else
				return this.origOpenInfoWindowTabsHtml( tabHtmls, opts );
		};

		GMarker.prototype.origShowMapBlowup = GMarker.prototype.showMapBlowup;
		GMarker.prototype.showMapBlowup = function ( opts )
		{
				if ( this.map != null )
				return this.map.showMapBlowup( this.getPoint(), opts );
				else
				return this.origShowMapBlowup( opts );
		};/*swfupload.js*/

if(navigator.platform == 'MacIntel')
				{
				}
				else
				{
				// only if win32
				
/**
 * SWFUpload 0.8.3 Revision 6.2 by Jacob Roberts, July 2007, linebyline.blogspot.com
 * -------- -------- -------- -------- -------- -------- -------- --------
 * SWFUpload is (c) 2006 Lars Huring and Mammon Media and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * See Changelog.txt for version history
 * 
 * + Added ServerData event callback
 * = Changed upload_params to query_params
 * + Added post_params
 * + Added PreuploadValidation callback
 * + Added automatic cookie transmission to workaround the Flash browser bug
 * ? Added custom file post name setting
 */

/* *********** */
/* Constructor */
/* *********** */

var SWFUpload = function (init_settings) {
    // Remove background flicker in IE (read this: http://misterpixel.blogspot.com/2006/09/forensic-analysis-of-ie6.html)
    // This doesn't have anything to do with SWFUpload but can help your UI behave better
    try {
        document.execCommand('BackgroundImageCache', false, true);
    } catch (ex) {
        this.debugMessage(ex);
    }


    try {
        this.settings = {};
        this.movieName = "SWFUpload_" + SWFUpload.movieCount++;
        this.movieElement = null;

        // Setup global control tracking
        SWFUpload.instances[this.movieName] = this;

        // Load the settings.  Load the Flash movie.
        this.initSettings(init_settings);
        this.loadFlash();

        if (this.debug_enabled)  {
            this.displayDebugInfo();
        }

    } catch (ex) {
        this.debugMessage(ex);
    }
};

/* *************** */
/* Static thingies */
/* *************** */
SWFUpload.instances = {};
SWFUpload.movieCount = 0;
SWFUpload.ERROR_CODE_HTTP_ERROR               = -10;
SWFUpload.ERROR_CODE_MISSING_UPLOAD_TARGET    = -20;
SWFUpload.ERROR_CODE_IO_ERROR                 = -30;
SWFUpload.ERROR_CODE_SECURITY_ERROR           = -40;
SWFUpload.ERROR_CODE_FILE_EXCEEDS_SIZE_LIMIT  = -50;
SWFUpload.ERROR_CODE_ZERO_BYTE_FILE           = -60;
SWFUpload.ERROR_CODE_UPLOAD_LIMIT_EXCEEDED    = -70;
SWFUpload.ERROR_CODE_UPLOAD_FAILED            = -80;
SWFUpload.ERROR_CODE_QUEUE_LIMIT_EXCEEDED     = -90;
SWFUpload.ERROR_CODE_SPECIFIED_FILE_NOT_FOUND = -100;
SWFUpload.ERROR_CODE_INVALID_FILETYPE         = -110;

/* ***************** */
/* Instance Thingies */
/* ***************** */
// init is a private method that ensures that all the object settings are set, getting a default value if one was not assigned.

SWFUpload.prototype.initSettings = function (init_settings) {

    this.addSetting("control_id", this.movieName, "");

    // UI setting
    this.addSetting("ui_function",           init_settings.ui_function,           null);
    this.addSetting("ui_container_id",       init_settings.ui_container_id,       "");
    this.addSetting("degraded_container_id", init_settings.degraded_container_id, "");

    // Upload backend settings
    this.addSetting("upload_target_url", init_settings.upload_target_url, "");
    this.addSetting("file_post_name",    init_settings.file_post_name,    "Filedata");
    this.addSetting("post_params",       init_settings.post_params,       {});

    // Flags
    this.addSetting("begin_upload_on_queue",  init_settings.begin_upload_on_queue,  true);
	this.addSetting("use_server_data_event",  init_settings.use_server_data_event,  false);
    this.addSetting("validate_files",         init_settings.validate_files,         false);

    // File Settings
	this.addSetting("file_types",             init_settings.file_types,             "*.gif;*.jpg;*.png");
    this.addSetting("file_types_description", init_settings.file_types_description, "Common Web Image Formats (gif, jpg, png)");
    this.addSetting("file_size_limit",        init_settings.file_size_limit,        "1024");
    this.addSetting("file_upload_limit",      init_settings.file_upload_limit,      "0");
    this.addSetting("file_queue_limit",       init_settings.file_queue_limit,       "0");

    // Flash Settings
    this.addSetting("flash_url",          init_settings.flash_url,          "swfupload.swf");
    this.addSetting("flash_width",        init_settings.flash_width,        "1px");
    this.addSetting("flash_height",       init_settings.flash_height,       "1px");
    this.addSetting("flash_color",        init_settings.flash_color,        "#FFFFFF");

    // Debug Settings
    this.addSetting("debug_enabled", init_settings.debug,  false);
    this.debug_enabled = this.getSetting("debug_enabled");

    // Event Handlers
    this.flashReady      = this.retrieveSetting(init_settings.flash_ready_handler,      this.flashReady);
    this.dialogCancelled = this.retrieveSetting(init_settings.dialog_cancelled_handler, this.dialogCancelled);
    this.fileQueued      = this.retrieveSetting(init_settings.file_queued_handler,      this.fileQueued);
    this.fileValidation  = this.retrieveSetting(init_settings.file_validation_handler,  this.fileValidation);
    this.fileProgress    = this.retrieveSetting(init_settings.file_progress_handler,    this.fileProgress);
    this.fileCancelled   = this.retrieveSetting(init_settings.file_cancelled_handler,   this.fileCancelled);
    this.fileComplete    = this.retrieveSetting(init_settings.file_complete_handler,    this.fileComplete);
    this.queueStopped    = this.retrieveSetting(init_settings.queue_stopped_handler,    this.queueStopped);
    this.queueComplete   = this.retrieveSetting(init_settings.queue_complete_handler,   this.queueComplete);
    this.error           = this.retrieveSetting(init_settings.error_handler,            this.error);
    this.debug           = this.retrieveSetting(init_settings.debug_handler,            this.debug);
};

// loadFlash is a private method that generates the HTML tag for the Flash
// It then adds the flash to the "target" or to the body and stores a
// reference to the flash element in "movieElement".
SWFUpload.prototype.loadFlash = function () {
    var html, target_element, container;

	// Make sure an element with the ID we are going to use doesn't already exist
	if (document.getElementById(this.movieName) !== null) {
		return false;
	}
		
	// Get the body tag where we will be adding the flash movie
	target_element = document.getElementsByTagName("body")[0];
    if (typeof(target_element) === "undefined" || target_element === null) {
        this.debugMessage('Could not find an element to add the Flash too. Failed to find element for "flash_container_id" or the BODY element.');
        return false;
    }

	// Append the container and load the flash
	container = document.createElement("div");
	container.style.width = this.getSetting("flash_width");
	container.style.height = this.getSetting("flash_height");
	
	target_element.appendChild(container);
	container.innerHTML = this.getFlashHTML();	// Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers)
};

// Generates the embed/object tags needed to embed the flash in to the document
SWFUpload.prototype.getFlashHTML = function () {
	var html = "";

    // Create Mozilla Embed HTML
    if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) {
        // Build the basic embed html
        html = '<embed type="application/x-shockwave-flash" src="' + this.getSetting("flash_url") + '" width="' + this.getSetting("flash_width") + '" height="' + this.getSetting("flash_height") + '"';
        html += ' id="' + this.movieName + '" name="' + this.movieName + '" ';
        html += 'bgcolor="' + this.getSetting("flash_color") + '" quality="high" menu="false" flashvars="';

        html += this.getFlashVars();

        html += '" />';

		// Create IE Object HTML
    } else {

		// Build the basic Object tag
        html = '<object id="' + this.movieName + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + this.getSetting("flash_width") + '" height="' + this.getSetting("flash_height") + '">';
        html += '<param name="movie" value="' + this.getSetting("flash_url") + '">';

        html += '<param name="bgcolor" value="' + this.getSetting("flash_color") + '" />';
        html += '<param name="quality" value="high" />';
        html += '<param name="menu" value="false" />';

        html += '<param name="flashvars" value="' + this.getFlashVars() + '" />';
		html += '</object>';
	}

    return html;
};

// This private method builds the parameter string that will be passed
// to flash.
SWFUpload.prototype.getFlashVars = function () {
    // Add the cookies to the backend string
    var upload_target_url = this.getSetting("upload_target_url");
    var param_string = this.buildParamString();

    // Build the parameter string
    var html = "";
    html += "controlID=" + encodeURIComponent(this.getSetting("control_id"));
    html += "&uploadTargetURL=" + encodeURIComponent(upload_target_url);
    html += "&params=" + encodeURIComponent(param_string);
	html += "&filePostName=" + encodeURIComponent(this.getSetting("file_post_name"));
    html += "&beginUploadOnQueue=" + encodeURIComponent(this.getSetting("begin_upload_on_queue"));
    html += "&useServerDataEvent=" + encodeURIComponent(this.getSetting("use_server_data_event"));
    html += "&fileValidation=" + encodeURIComponent(this.getSetting("validate_files"));
    html += "&fileTypes=" + encodeURIComponent(this.getSetting("file_types"));
    html += "&fileTypesDescription=" + encodeURIComponent(this.getSetting("file_types_description"));
    html += "&fileSizeLimit=" + encodeURIComponent(this.getSetting("file_size_limit"));
    html += "&fileUploadLimit=" + encodeURIComponent(this.getSetting("file_upload_limit"));
    html += "&fileQueueLimit=" + encodeURIComponent(this.getSetting("file_queue_limit"));
    html += "&debugEnabled=" + encodeURIComponent(this.getSetting("debug_enabled"));

    return html;
};

SWFUpload.prototype.getMovieElement = function () {
	if (typeof(this.movieElement) === "undefined" || this.movieElement === null) {
		this.movieElement = document.getElementById(this.movieName);
		
		// Fix IEs "Flash can't callback when in a form" issue (http://www.extremefx.com.ar/blog/fixing-flash-external-interface-inside-form-on-internet-explorer)
		// Removed because Revision 6 always adds the flash to the body (inside a containing div)
		//if (typeof(window[this.movieName]) === "undefined" || window[this.moveName] !== this.movieElement) {
		//	window[this.movieName] = this.movieElement;
		//}
	}
	
	return this.movieElement;	
}

SWFUpload.prototype.buildParamString = function () {
    var post_params = this.getSetting("post_params");
    var param_string_pairs = [];
    var i, value, name;

    // Retrieve the user defined parameters
    if (typeof(post_params) === "object") {
        for (name in post_params) {
            if (post_params.hasOwnProperty(name)) {
                if (typeof(post_params[name]) === "string" /*&& upload_params[name] != ""*/) {
                    param_string_pairs.push(encodeURIComponent(name) + "=" + encodeURIComponent(post_params[name]));
                }
            }
        }
    }

    return param_string_pairs.join("&");
};

// This private method "loads" the UI.  If a target was specified then it is assumed that "display: none" was set and
// it does a "display: block" so the UI is shown.  Then if a degraded_target is specified it hides it by setting "display: none"
// If you want SWFUpload to do something else then provide a "ui_function" setting and that will be called instead.
SWFUpload.prototype.showUI = function () {
    var ui_container_id, ui_target, degraded_container_id, degraded_target;
    try {
        ui_container_id = this.getSetting("ui_container_id");

        if (ui_container_id !== "") {
            ui_target = document.getElementById(ui_container_id);
            if (ui_target !== null) {
                ui_target.style.display = "block";

                // Now that the UI has been taken care of hide the degraded UI
                degraded_container_id = this.getSetting("degraded_container_id");
                if (degraded_container_id !== "") {
                    degraded_target = document.getElementById(degraded_container_id);
                    if (degraded_target !== null) {
                        degraded_target.style.display = "none";
                    }
                }
            }
        }

    } catch (ex) {
        this.debugMessage(ex);
    }
};

// Saves a setting.  If the value given is undefined or null then the default_value is used.
SWFUpload.prototype.addSetting = function (name, value, default_value) {
    if (typeof(value) === "undefined" || value === null) {
        this.settings[name] = default_value;
    } else {
        this.settings[name] = value;
    }

    return this.settings[name];
};

// Gets a setting.  Returns null if it wasn't found.
SWFUpload.prototype.getSetting = function (name) {
    if (typeof(this.settings[name]) === "undefined") {
        return "";
    } else {
        return this.settings[name];
    }
};

// Gets a setting, if the setting is undefined then return the default value
// This does not affect or use the interal setting object.
SWFUpload.prototype.retrieveSetting = function (value, default_value) {
    if (typeof(value) === "undefined" || value === null) {
        return default_value;
    } else {
        return value;
    }
};


// This method is used when debugging is enabled.
// It loops through all the settings and displays
// them in the debug Console.
SWFUpload.prototype.displayDebugInfo = function () {
    var key, debug_message = "";

    debug_message += "----- DEBUG OUTPUT ----\nID: " + this.getMovieElement().id + "\n";

	debug_message += this.outputObject(this.settings);
	
    debug_message += "----- DEBUG OUTPUT END ----\n";
    debug_message += "\n";

    this.debugMessage(debug_message);
};
SWFUpload.prototype.outputObject = function (object, prefix) {
	var output = "";
	
	if (typeof(prefix) !== "string") {
		prefix = "";
	}
	if (typeof(object) !== "object") {
		return "";
	}
	
    for (key in object) {
        if (object.hasOwnProperty(key)) {
            if (typeof(object[key]) === "object") {
				output += (prefix + key + ": { \n" + this.outputObject(object[key], "\t" + prefix) + prefix + "}" + "\n");
			} else {
				output += (prefix + key + ": " + object[key] + "\n");
			}
        }
    }
	
	return output;
};

/* *****************************
    -- Flash control methods --
    Your UI should use these
    to operate SWFUpload
   ***************************** */

SWFUpload.prototype.browse = function () {
    var movie_element = this.getMovieElement();
	if (movie_element !== null && typeof(movie_element.Browse) === "function") {
        try {
            movie_element.Browse();
        }
        catch (ex) {
            this.debugMessage("Could not call browse: " + ex);
        }
    } else {
        this.debugMessage("Could not find Flash element");
    }

};

// Begins the uploads (if begin_upload_on_queue is disabled)
// The file_id is optional.  If specified only that file will be uploaded.  If not specified SWFUpload will
// begin to process the queue.
SWFUpload.prototype.startUpload = function (file_id) 
{
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.StartUpload) === "function") 
		{
        try 
				{
            movie_element.StartUpload(file_id);
        }
        catch (ex)
				 {
				 alert('x');
            this.debugMessage("Could not call StartUpload: " + ex);
        }
    } 
		else
		 {
        this.debugMessage("Could not find Flash element");
    }

};

// Cancels the current uploading item.  If no item is uploading then nothing happens.
SWFUpload.prototype.cancelUpload = function (file_id) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.CancelUpload) === "function") {
        try {
            movie_element.CancelUpload(file_id);
        }
        catch (ex) {
            this.debugMessage("Could not call CancelUpload");
        }
    } else {
        this.debugMessage("Could not find Flash element");
    }

};

// Cancels all the files in the queue.  Including any current uploads.
SWFUpload.prototype.cancelQueue = function () {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.CancelQueue) === "function") {
        try {
            movie_element.CancelQueue();
        }
        catch (ex) {
            this.debugMessage("Could not call CancelQueue");
        }
    } else {
        this.debugMessage("Could not find Flash element");
    }

};

// Stops the current upload.  The file is re-queued.  If nothing is currently uploading then nothing happens.
SWFUpload.prototype.stopUpload = function () {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.StopUpload) === "function") {
        try {
            movie_element.StopUpload();
        }
        catch (ex) {
            this.debugMessage("Could not call StopUpload");
        }
    } else {
        this.debugMessage("Could not find Flash element");
    }

};


SWFUpload.prototype.addFileParam = function (file_id, name, value) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.AddFileParam) === "function") {
        try {
            return movie_element.AddFileParam(file_id, name, value);
        }
        catch (ex) {
            this.debugMessage("Could not call AddFileParam");
        }
    } else {
        this.debugMessage("Could not find Flash element");
    }
};

SWFUpload.prototype.removeFileParam = function (file_id, name) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.RemoveFileParam) === "function") {
        try {
            return movie_element.RemoveFileParam(file_id, name);
        }
        catch (ex) {
            this.debugMessage("Could not call AddFileParam");
        }
    } else {
        this.debugMessage("Could not find Flash element");
    }

};

SWFUpload.prototype.setUploadTargetURL = function (url) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetUploadTargetURL) === "function") {
        try {
			this.addSetting("upload_target_url", url);
            movie_element.SetUploadTargetURL(this.getSetting("upload_target_url"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetUploadTargetURL");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetUploadTargetURL");
    }
};

SWFUpload.prototype.setPostParams = function (param_object) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetPostParams) === "function") {
        try {
			this.addSetting("post_params", param_object);
            movie_element.SetPostParams(this.getSetting("post_params"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetPostParams");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetPostParams");
    }
};

SWFUpload.prototype.setFileTypes = function (types, description) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetFileTypes) === "function") {
        try {
			this.addSetting("file_types", types);
			this.addSetting("file_types_description", description);
            movie_element.SetFileTypes(this.getSetting("file_types"), this.getSetting("file_types_description"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetFileTypes");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetFileTypes");
    }
};

SWFUpload.prototype.setFileSizeLimit = function (file_size_limit) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetFileSizeLimit) === "function") {
        try {
			this.addSetting("file_size_limit", file_size_limit);
            movie_element.SetFileSizeLimit(this.getSetting("file_size_limit"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetFileSizeLimit");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetFileSizeLimit");
    }
};

SWFUpload.prototype.setFileUploadLimit = function (file_upload_limit) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetFileUploadLimit) === "function") {
        try {
			this.addSetting("file_upload_limit", file_upload_limit);
            movie_element.SetFileUploadLimit(this.getSetting("file_upload_limit"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetFileUploadLimit");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetFileUploadLimit");
    }
};

SWFUpload.prototype.setFileQueueLimit = function (file_queue_limit) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetFileQueueLimit) === "function") {
        try {
			this.addSetting("file_queue_limit", file_queue_limit);
            movie_element.SetFileQueueLimit(this.getSetting("file_queue_limit"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetFileQueueLimit");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetFileQueueLimit");
    }
};

SWFUpload.prototype.setBeginUploadOnQueue = function (begin_upload_on_queue) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetBeginUploadOnQueue) === "function") {
        try {
			this.addSetting("begin_upload_on_queue", begin_upload_on_queue);
            movie_element.SetBeginUploadOnQueue(this.getSetting("begin_upload_on_queue"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetBeginUploadOnQueue");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetBeginUploadOnQueue");
    }
};

SWFUpload.prototype.setUseServerDataEvent = function (use_server_data_event) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetUseServerDataEvent) === "function") {
        try {
			this.addSetting("use_server_data_event", use_server_data_event);
            movie_element.SetUseServerDataEvent(this.getSetting("use_server_data_event"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetUseServerDataEvent");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetUseServerDataEvent");
    }
};

SWFUpload.prototype.setValidateFiles = function (validate_files) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetValidateFiles) === "function") {
        try {
			this.addSetting("validate_files", validate_files);
            movie_element.SetValidateFiles(this.getSetting("validate_files"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetValidateFiles");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetValidateFiles");
    }
};

SWFUpload.prototype.setFilePostName = function (file_post_name) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetFilePostName) === "function") {
        try {
			this.addSetting("file_post_name", file_post_name);
            movie_element.SetFilePostName(this.getSetting("file_post_name"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetFilePostName");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetFilePostName");
    }
};

SWFUpload.prototype.setDebugEnabled = function (debug_enabled) {
    var movie_element = this.getMovieElement();
    if (movie_element !== null && typeof(movie_element.SetDebugEnabled) === "function") {
        try {
			this.addSetting("debug_enabled", debug_enabled);
			this.debug_enabled = this.getSetting("debug_enabled");
            movie_element.SetDebugEnabled(this.getSetting("debug_enabled"));
        }
        catch (ex) {
            this.debugMessage("Could not call SetDebugEnabled");
        }
    } else {
        this.debugMessage("Could not find Flash element in SetDebugEnabled");
    }
};



/* *******************************
    Default Event Handlers
******************************* */
// This is the callback method that the Flash movie will call when it has been loaded and is ready to go.
// Calling this or showUI "manually" bypass the Flash Detection built in to SWFUpload.
// FlashReady should not generally be overwritten. Use a ui_function setting if you want to control the UI loading after the flash has loaded.
SWFUpload.prototype.flashReady = function () {
    var ui_function;
    try {
		this.debugMessage("Flash called back and is ready.");
		
        ui_function = this.getSetting("ui_function");
        if (typeof(ui_function) === "function") {
            ui_function.apply(this);
        } else {
            this.showUI();
        }
    } catch (ex) {
        this.debugMessage(ex);
    }
};

// Called when the user cancels the File browser window.
SWFUpload.prototype.dialogCancelled = function () {
    this.debugMessage("browse Dialog Cancelled.");
};

// Called once for each file the user selects
SWFUpload.prototype.fileQueued = function (file) {
    this.debugMessage("File Queued: " + file.id);
};

// Called before a file is queued if the validateFiles setting is true.  This function
// must return true or false to indicate to flash whether the file should be
// uploaded.
SWFUpload.prototype.fileValidation = function (file) {
    this.debugMessage("File Validation: " + file.id);
	
	return true;
};

// Called during upload as the file progresses
SWFUpload.prototype.fileProgress = function (file, bytes_complete) {
    this.debugMessage("File Progress: " + file.id + ", Bytes: " + bytes_complete);
};

// Called after a file is cancelled
SWFUpload.prototype.fileCancelled = function (file) {
    this.debugMessage("File Cancelled: " + file.id);
};

// Called when a file upload has completed
SWFUpload.prototype.fileComplete = function (file, server_data) {
    this.debugMessage("File Complete: " + file.id);
	if (typeof(server_data) !== "undefined") {
		this.debugMessage("Upload Response Data: " + server_data);
	}
};

// Called when at least 1 file has been uploaded and there are no files remaining in the queue.
SWFUpload.prototype.queueComplete = function (file_upload_count) {
    this.debugMessage("Queue Complete. Files Uploaded:" + file_upload_count);
};

// Called when the upload is stopped.
SWFUpload.prototype.queueStopped = function (file) {
    this.debugMessage("Queue Stopped. File Stopped:" + file.id);
};

// Called by SWFUpload JavaScript and Flash flash functions when debug is enabled
SWFUpload.prototype.debug = function (message) {
    this.debugMessage(message);
};

// Called when an error occurs. Use errcode to determine which error occurred.
SWFUpload.prototype.error = function (errcode, file, msg) 
{
    try {
        switch (errcode) {
        case SWFUpload.ERROR_CODE_HTTP_ERROR:
            this.debugMessage("Error Code: HTTP Error, File name: " + file.name + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_MISSING_UPLOAD_TARGET:
            this.debugMessage("Error Code: No backend file, File name: " + file.name + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_IO_ERROR:
            this.debugMessage("Error Code: IO Error, File name: " + file.name + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_SECURITY_ERROR:
            this.debugMessage("Error Code: Security Error, File name: " + file.name + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_FILE_EXCEEDS_SIZE_LIMIT:
            this.debugMessage("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_ZERO_BYTE_FILE:
            this.debugMessage("Error Code: Zero Byte File, File name: " + file.name + ", File size: " + file.size + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_UPLOAD_LIMIT_EXCEEDED:
            this.debugMessage("Error Code: Upload limit reached, File name: " + file.name + ", File size: " + file.size + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_QUEUE_LIMIT_EXCEEDED:
            this.debugMessage("Error Code: Upload limit reached, File name: " + file.name + ", File size: " + file.size + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_UPLOAD_FAILED:
            this.debugMessage("Error Code: Upload Initialization exception, File name: " + file.name + ", File size: " + file.size + ", Message: " + msg);
            break;
        case SWFUpload.ERROR_CODE_SPECIFIED_FILE_NOT_FOUND:
            this.debugMessage("Error Code: File ID specified for upload was not found, Message: " + msg);
            break;
		case SWFUpload.ERROR_CODE_INVALID_FILETYPE:
			this.debugMessage("Error Code: File extension is not allowed, Message: " + msg);
			break;
        default:
            this.debugMessage("Error Code: Unhandled error occured. Errorcode: " + errcode);
        }
    } catch (ex) {
        this.debugMessage(ex);
    }
};

/* **********************************
    Debug Console
    The debug console is a self contained, in page location
    for debug message to be sent.  The Debug Console adds
    itself to the body if necessary.

    The console is automatically scrolled as messages appear.
   ********************************** */
SWFUpload.prototype.debugMessage = function (message) {
    var exception_message, exception_values;

    if (this.debug_enabled) {
        if (typeof(message) === "object" && typeof(message.name) === "string" && typeof(message.message) === "string") {
            exception_message = "";
            exception_values = [];
            for (var key in message) {
                exception_values.push(key + ": " + message[key]);
            }
            exception_message = exception_values.join("\n");
            exception_values = exception_message.split("\n");
            exception_message = "EXCEPTION: " + exception_values.join("\nEXCEPTION: ");
            SWFUpload.Console.writeLine(exception_message);
        } else {
            SWFUpload.Console.writeLine(message);
        }
    }
};

SWFUpload.Console = {};
SWFUpload.Console.writeLine = function (message) {
    var console, documentForm;

    try {
        console = document.getElementById("SWFUpload_Console");

        if (!console) {
            documentForm = document.createElement("form");
            document.getElementsByTagName("body")[0].appendChild(documentForm);

            console = document.createElement("textarea");
            console.id = "SWFUpload_Console";
            console.style.fontFamily = "monospace";
            console.setAttribute("wrap", "off");
            console.wrap = "off";
            console.style.overflow = "auto";
            console.style.width = "700px";
            console.style.height = "350px";
            console.style.margin = "5px";
            documentForm.appendChild(console);
        }

        console.value += message + "\n";

        console.scrollTop = console.scrollHeight - console.clientHeight;
    } catch (ex) {
        alert("Exception: " + ex.name + " Message: " + ex.message);
    }
};


}
		/***********************************************
		* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
		* This notice MUST stay intact for legal use
		* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
		***********************************************/

		var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
		var loadedobjects=""
		var rootdomain="http://"+window.location.hostname
		var bustcacheparameter=""

		function ajaxpage(url, containerid)
		{
				var page_request = false
				if (window.XMLHttpRequest) // if Mozilla, Safari etc
				{
						page_request = new XMLHttpRequest()
				}
				else if (window.ActiveXObject)
				{
						// if IE
						try
						{
								page_request = new ActiveXObject("Msxml2.XMLHTTP")
						}
						catch (e)
						{
								try
								{
										page_request = new ActiveXObject("Microsoft.XMLHTTP")
								}
								catch (e)
								{
								}
						}
				}
				else
				{
						return false
				}
				page_request.onreadystatechange=function()
				{
						loadpage(page_request, containerid)
				}
				if (bustcachevar) //if bust caching of external page
				bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
				page_request.open('GET', url+bustcacheparameter, true)
				page_request.send(null)
		}

		function loadpage(page_request, containerid)
		{
				if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
				document.getElementById(containerid).innerHTML=page_request.responseText
		}

		function loadobjs()
		{
				if (!document.getElementById)
				{
				return
				}
				
				for (i=0; i<arguments.length; i++)
				{
						var file=arguments[i]
						var fileref=""
						//Check to see if this object has not already been added to page before proceeding
						if (loadedobjects.indexOf(file)==-1)
						{
								
								if (file.indexOf(".js")!=-1)
								{
										//If object is a js file
										
										fileref=document.createElement('script')
										fileref.setAttribute("type","text/javascript");
										fileref.setAttribute("src", file);
								}
								else if (file.indexOf(".css")!=-1)
								{
										//If object is a css file
										fileref=document.createElement("link")
										fileref.setAttribute("rel", "stylesheet");
										fileref.setAttribute("type", "text/css");
										fileref.setAttribute("href", file);
								}
						}
						
						if (fileref!="")
						{
								document.getElementsByTagName("head")[0].appendChild(fileref)
								loadedobjects+=file+" " //Remember this object as being already added to page
						}
				}
		}ï»¿
/*Ã¯Â»Â¿
This license text has to stay intact at all times:
fleXcroll Public License Version
Cross Browser Custom Scroll Bar Script by Hesido.
Public version - Free for non-commercial uses.

This script cannot be used in any commercially built
web sites, or in sites that relates to commercial
activities. 

Derivative works are only allowed for personal uses,
and they cannot be redistributed.
For licensing options:
Contact Emrah BASKAYA @ www.hesido.com

FleXcroll Public Key Code: 20050907122003339
MD5 hash for this license: 9ada3be4d7496200ab2665160807745d

End of license text---
*/
//fleXcroll v1.9.3
var fleXenv={

fleXcrollInit:function(){this.addTrggr(window,'load',this.globalInit);},

fleXcrollMain:function(dDv){
//Main code beg
var dC=document,wD=window,nV=navigator;
if(!dC.getElementById||!dC.createElement)return;
if (typeof(dDv)=='string')dDv=document.getElementById(dDv);
if(dDv==null||nV.userAgent.indexOf('OmniWeb')!=-1||((nV.userAgent.indexOf('AppleWebKit')!=-1||nV.userAgent.indexOf('Safari')!=-1)&&!(typeof(HTMLElement)!="undefined"&&HTMLElement.prototype))||nV.vendor=='KDE'||(nV.platform.indexOf('Mac')!=-1&&nV.userAgent.indexOf('MSIE')!=-1))return;
if(dDv.scrollUpdate){dDv.scrollUpdate();return;};
if(!dDv.id||dDv.id==''){var sTid="flex__",c=1;while(document.getElementById(sTid+c)!=null){c++};dDv.id=sTid+c;}
var targetId=dDv.id;
dDv.fleXdata=new Object();var sC=dDv.fleXdata;
sC.keyAct={_37:['-1s',0],_38:[0,'-1s'],_39:['1s',0],_40:[0,'1s'],_33:[0,'-1p'],_34:[0,'1p'],_36:[0,'-100p'],_35:[0,'+100p']};
sC.wheelAct=["-2s","2s"];
sC.baseAct=["-2s","2s"];
var cDv=createDiv('contentwrapper',true),mDv=createDiv('mcontentwrapper',true),tDv=createDiv('scrollwrapper',true),pDv=createDiv('copyholder',true);
var iDv=createDiv('domfixdiv',true),fDv=createDiv('zoomdetectdiv',true); stdMode=false;
pDv.sY.border='1px solid blue';pDv.fHide();
dDv.style.overflow='hidden';
fDv.sY.fontSize="12px";fDv.sY.height="1em";fDv.sY.width="1em";fDv.sY.position="absolute";fDv.sY.zIndex="-999";fDv.fHide();
var brdHeight=dDv.offsetHeight,brdWidth=dDv.offsetWidth;
copyStyles(dDv,pDv,'0px',['border-left-width','border-right-width','border-top-width','border-bottom-width']);
var intlHeight=dDv.offsetHeight,intlWidth=dDv.offsetWidth,brdWidthLoss=brdWidth-intlWidth,brdHeightLoss=brdHeight-intlHeight;
var oScrollY=(dDv.scrollTop)?dDv.scrollTop:0,oScrollX=(dDv.scrollLeft)?dDv.scrollLeft:0;
var urlBase=document.location.href,uReg=/#([^#.]*)$/;
var focusProtectList=['textarea','input','select'];
sC.scroller=[];sC.forcedBar=[];sC.containerSize=sC.cntRSize=[];sC.contentSize=sC.cntSize=[];sC.edge=[false,false];
sC.reqS=[];sC.barSpace=[0,0];sC.forcedHide=[];sC.forcedPos=[];sC.paddings=[];
while (dDv.firstChild) {cDv.appendChild(dDv.firstChild)};
cDv.appendChild(iDv);dDv.appendChild(mDv);dDv.appendChild(pDv);
if(getStyle(dDv,'position')!='absolute') dDv.style.position="relative";

mDv.sY.width="100px";mDv.sY.height="100px";mDv.sY.top="0px";mDv.sY.left="0px";
copyStyles(dDv,pDv,"0px",['padding-left','padding-top','padding-right','padding-bottom']);
var postWidth=dDv.offsetWidth,postHeight=dDv.offsetHeight,mHeight;
mHeight=mDv.offsetHeight;mDv.sY.borderBottom="2px solid black";
if(mDv.offsetHeight>mHeight)stdMode=true;mDv.sY.borderBottomWidth="0px";
copyStyles(pDv,dDv,false,['padding-left','padding-top','padding-right','padding-bottom']);
findPos(mDv);findPos(dDv);
sC.paddings[0]=mDv.yPos-dDv.yPos;sC.paddings[2]=mDv.xPos-dDv.xPos;
dDv.style.paddingTop=getStyle(dDv,"padding-bottom");dDv.style.paddingLeft=getStyle(dDv,"padding-right");
findPos(mDv);findPos(dDv);
sC.paddings[1]=mDv.yPos-dDv.yPos;sC.paddings[3]=mDv.xPos-dDv.xPos;
dDv.style.paddingTop=getStyle(pDv,"padding-top");dDv.style.paddingLeft=getStyle(pDv,"padding-left");
var padWidthComp=sC.paddings[2]+sC.paddings[3],padHeightComp=sC.paddings[0]+sC.paddings[1];

copyStyles(dDv,mDv,false,['padding-left','padding-right','padding-top','padding-bottom']);
tDv.sY.width=dDv.offsetWidth+'px';tDv.sY.height=dDv.offsetHeight+'px';
mDv.sY.width=postWidth+'px'; mDv.sY.height=postHeight+'px';
tDv.sY.position='absolute';tDv.sY.top='0px';tDv.sY.left='0px';
tDv.fHide();

mDv.appendChild(cDv);dDv.appendChild(tDv);tDv.appendChild(fDv);

cDv.sY.position='relative';mDv.sY.position='relative';
cDv.sY.top="0";cDv.sY.width="100%";//fix IE7
mDv.sY.overflow='hidden';
mDv.sY.left="-"+sC.paddings[2]+"px";
mDv.sY.top="-"+sC.paddings[0]+"px";
sC.zTHeight=fDv.offsetHeight;

sC.getContentWidth=function(){
	var cChilds=cDv.childNodes,maxCWidth=compPad=0;
	for(var i=0;i<cChilds.length;i++){if(cChilds[i].offsetWidth){maxCWidth=Math.max(cChilds[i].offsetWidth,maxCWidth)}};
	sC.cntRSize[0]=((sC.reqS[1]&&!sC.forcedHide[1])||sC.forcedBar[1])?dDv.offsetWidth-sC.barSpace[0]:dDv.offsetWidth;
	sC.cntSize[0]=maxCWidth+padWidthComp;
	return sC.cntSize[0];
	};
sC.getContentHeight=function(){
	sC.cntRSize[1]=((sC.reqS[0]&&!sC.forcedHide[0])||sC.forcedBar[0])?dDv.offsetHeight-sC.barSpace[1]:dDv.offsetHeight;
	sC.cntSize[1]=cDv.offsetHeight+padHeightComp-2;
	return sC.cntSize[1];
	};

sC.fixIEDispBug=function(){cDv.sY.display='none';cDv.sY.display='block';};
sC.setWidth=function(){mDv.sY.width=(stdMode)?(sC.cntRSize[0]-padWidthComp-brdWidthLoss)+'px':sC.cntRSize[0]+'px';};
sC.setHeight=function(){mDv.sY.height=(stdMode)?(sC.cntRSize[1]-padHeightComp-brdHeightLoss)+'px':sC.cntRSize[1]+'px';};

sC.createScrollBars=function(){
	sC.getContentWidth();sC.getContentHeight();
	//vert
	tDv.vrt=new Array();var vrT=tDv.vrt;
	createScrollBars(vrT,'vscroller');
	vrT.barPadding=[parseInt(getStyle(vrT.sBr,'padding-top')),parseInt(getStyle(vrT.sBr,'padding-bottom'))];
	vrT.sBr.sY.padding='0px';vrT.sBr.curPos=0;vrT.sBr.vertical=true;
	vrT.sBr.indx=1; cDv.vBar=vrT.sBr;
	prepareScroll(vrT,0);sC.barSpace[0]=vrT.sDv.offsetWidth;sC.setWidth();
	//horiz
	tDv.hrz=new Array();var hrZ=tDv.hrz;
	createScrollBars(hrZ,'hscroller');
	hrZ.barPadding=[parseInt(getStyle(hrZ.sBr,'padding-left')),parseInt(getStyle(hrZ.sBr,'padding-right'))];
	hrZ.sBr.sY.padding='0px';hrZ.sBr.curPos=0;hrZ.sBr.vertical=false;
	hrZ.sBr.indx=0; cDv.hBar=hrZ.sBr;
	if(wD.opera) hrZ.sBr.sY.position='relative';
	prepareScroll(hrZ,0);
	sC.barSpace[1]=hrZ.sDv.offsetHeight;sC.setHeight();
	tDv.sY.height=dDv.offsetHeight+'px';
	// jog
	hrZ.jBox=createDiv('scrollerjogbox');
	tDv.appendChild(hrZ.jBox);hrZ.jBox.onmousedown=function(){
		hrZ.sBr.scrollBoth=true;sC.goScroll=hrZ.sBr;hrZ.sBr.clicked=true;
		hrZ.sBr.moved=false;tDv.vrt.sBr.moved=false;
		fleXenv.addTrggr(dC,'selectstart',retFalse);fleXenv.addTrggr(dC,'mousemove',mMoveBar);fleXenv.addTrggr(dC,'mouseup',mMouseUp);
		return false;
	};
};

sC.goScroll=null;
sC.createScrollBars();
cDv.removeChild(iDv);

if(!this.addChckTrggr(dDv,'mousewheel',mWheelProc)||!this.addChckTrggr(dDv,'DOMMouseScroll',mWheelProc)){dDv.onmousewheel=mWheelProc;};

this.addChckTrggr(dDv,'mousewheel',mWheelProc);
this.addChckTrggr(dDv,'DOMMouseScroll',mWheelProc);
dDv.setAttribute('tabIndex','0');
/*
this.addTrggr(dDv,'keydown',function(e){
	if(dDv.focusProtect) return;
	if(!e){var e=wD.event;};var pK=e.keyCode; sC.pkeY=pK;
	sC.mDPosFix();
	if(sC.keyAct['_'+pK]&&!window.opera){dDv.contentScroll(sC.keyAct['_'+pK][0],sC.keyAct['_'+pK][1],true);if(e.preventDefault) e.preventDefault();return false;};
	});
this.addTrggr(dDv,'keypress',function(e){//make Opera Happy
	if(dDv.focusProtect) return;
	if(!e){var e=wD.event;};var pK=e.keyCode;
	if(sC.keyAct['_'+pK]){dDv.contentScroll(sC.keyAct['_'+pK][0],sC.keyAct['_'+pK][1],true);if(e.preventDefault) e.preventDefault();return false;};
});

this.addTrggr(dDv,'keyup',function(){sC.pkeY=false});
*/
this.addTrggr(dC,'mouseup',intClear);
this.addTrggr(dDv,'mousedown',function(e){
	if(!e) e=wD.event;
	var cTrgt=(e.target)?e.target:(e.srcElement)?e.srcElement:false;
	if(!cTrgt||(cTrgt.className&&cTrgt.className.match(RegExp("\\bscrollgeneric\\b")))) return;
	sC.inMposX=e.clientX;sC.inMposY=e.clientY;
	pageScrolled();findPos(dDv);intClear();
	fleXenv.addTrggr(dC,'mousemove',tSelectMouse);
	sC.mTBox=[dDv.xPos+10,dDv.xPos+sC.cntRSize[0]-10,dDv.yPos+10,dDv.yPos+sC.cntRSize[1]-10];
});

function tSelectMouse(e){if(!e) e=wD.event;
	var mX=e.clientX,mY=e.clientY,mdX=mX+sC.xScrld,mdY=mY+sC.yScrld;
	sC.mOnXEdge=(mdX<sC.mTBox[0]||mdX>sC.mTBox[1])?1:0;
	sC.mOnYEdge=(mdY<sC.mTBox[2]||mdY>sC.mTBox[3])?1:0;
	sC.xAw=mX-sC.inMposX;sC.yAw=mY-sC.inMposY;
	sC.sXdir=(sC.xAw>40)?1:(sC.xAw<-40)?-1:0;sC.sYdir=(sC.yAw>40)?1:(sC.yAw<-40)?-1:0;
	if((sC.sXdir!=0||sC.sYdir!=0)&&!sC.tSelectFunc) sC.tSelectFunc=wD.setInterval(function(){
		if(sC.sXdir==0&&sC.sYdir==0){wD.clearInterval(sC.tSelectFunc);sC.tSelectFunc=false;return;};pageScrolled();
		if(sC.mOnXEdge==1||sC.mOnYEdge==1) dDv.contentScroll((sC.sXdir*sC.mOnXEdge)+"s",(sC.sYdir*sC.mOnYEdge)+"s",true);
	},45)
}
function intClear(){
	fleXenv.remTrggr(dC,'mousemove',tSelectMouse);if(sC.tSelectFunc) wD.clearInterval(sC.tSelectFunc);sC.tSelectFunc=false;
	if(sC.barClickRetard) wD.clearTimeout(sC.barClickRetard); if(sC.barClickScroll) wD.clearInterval(sC.barClickScroll);
}
function pageScrolled(){
	sC.xScrld=(wD.pageXOffset)?wD.pageXOffset:(dC.documentElement&&dC.documentElement.scrollLeft)?dC.documentElement.scrollLeft:0;
	sC.yScrld=(wD.pageYOffset)?wD.pageYOffset:(dC.documentElement&&dC.documentElement.scrollTop)?dC.documentElement.scrollTop:0;
}

dDv.scrollUpdate=function(recurse){
	if(tDv.getSize[1]()===0||tDv.getSize[0]()===0) return;
	cDv.sY.padding='1px';var reqH=sC.reqS[0],reqV=sC.reqS[1],vBr=tDv.vrt,hBr=tDv.hrz,vUpReq,hUpReq,cPSize=[];
	tDv.sY.width=dDv.offsetWidth-brdWidthLoss+'px';tDv.sY.height=dDv.offsetHeight-brdHeightLoss+'px';
	cPSize[0]=sC.cntRSize[0];cPSize[1]=sC.cntRSize[1];
	sC.reqS[0]=sC.getContentWidth()>sC.cntRSize[0];
	sC.reqS[1]=sC.getContentHeight()>sC.cntRSize[1];
	var stateChange=(reqH!=sC.reqS[0]||reqV!=sC.reqS[1]||cPSize[0]!=sC.cntRSize[0]||cPSize[1]!=sC.cntRSize[1])?true:false;
	vBr.sDv.setVisibility(sC.reqS[1]);hBr.sDv.setVisibility(sC.reqS[0]);
	vUpReq=(sC.reqS[1]||sC.forcedBar[1]);hUpReq=(sC.reqS[0]||sC.forcedBar[0]);
	sC.getContentWidth();sC.getContentHeight();sC.setHeight();sC.setWidth();
	if(!sC.reqS[0]||!sC.reqS[1]||sC.forcedHide[0]||sC.forcedHide[1]) hBr.jBox.fHide();
	else hBr.jBox.fShow();
	if(vUpReq) updateScroll(vBr,(hUpReq&&!sC.forcedHide[0])?sC.barSpace[1]:0);else cDv.sY.top="0";
	if(hUpReq) updateScroll(hBr,(vUpReq&&!sC.forcedHide[1])?sC.barSpace[0]:0);else cDv.sY.left="0";
	if(stateChange&&!recurse) dDv.scrollUpdate(true);
	cDv.sY.padding='0px';
	sC.edge[0]=sC.edge[1]=false;
};

dDv.commitScroll=dDv.contentScroll=function(xPos,yPos,relative){
	var reT=[[false,false],[false,false]],Bar;
	if((xPos||xPos===0)&&sC.scroller[0]){xPos=calcCScrollVal(xPos,0);Bar=tDv.hrz.sBr;Bar.trgtScrll=(relative)?Math.min(Math.max(Bar.mxScroll,Bar.trgtScrll-xPos),0):-xPos;Bar.contentScrollPos();reT[0]=[-Bar.trgtScrll-Bar.targetSkew,-Bar.mxScroll]}
	if((yPos||yPos===0)&&sC.scroller[1]){yPos=calcCScrollVal(yPos,1);Bar=tDv.vrt.sBr;Bar.trgtScrll=(relative)?Math.min(Math.max(Bar.mxScroll,Bar.trgtScrll-yPos),0):-yPos;Bar.contentScrollPos();reT[1]=[-Bar.trgtScrll-Bar.targetSkew,-Bar.mxScroll]}
	if(!relative) sC.edge[0]=sC.edge[1]=false;
	return reT;
};

dDv.scrollToElement=function(tEM){
if(tEM==null||!isddvChild(tEM)) return;
var sPos=findRCpos(tEM);
dDv.contentScroll(sPos[0]+sC.paddings[2],sPos[1]+sC.paddings[0],false);
dDv.contentScroll(0,0,true);
};

copyStyles(pDv,dDv,'0px',['border-left-width','border-right-width','border-top-width','border-bottom-width']);

dDv.removeChild(pDv);
dDv.scrollTop=0;dDv.scrollLeft=0;
dDv.fleXcroll=true;
classChange(dDv,'flexcrollactive',false);
dDv.scrollUpdate();
dDv.contentScroll(oScrollX,oScrollY,true);
if(urlBase.match(uReg)) {dDv.scrollToElement(dC.getElementById(urlBase.match(uReg)[1]));}
tDv.fShow();

sC.sizeChangeDetect=wD.setInterval(function(){
var n=fDv.offsetHeight;if(n!=sC.zTHeight){dDv.scrollUpdate();sC.zTHeight=n};
},2500);

function calcCScrollVal(v,i){
	var stR=v.toString();v=parseFloat(stR);
	return parseInt((stR.match(/p$/))?v*sC.cntRSize[i]*0.9:(stR.match(/s$/))?v*sC.cntRSize[i]*0.1:v);
}
function camelConv(spL){
	var spL=spL.split('-'),reT=spL[0],i;
	for(i=1;parT=spL[i];i++) {reT +=parT.charAt(0).toUpperCase()+parT.substr(1);}
	return reT;
}
function getStyle(elem,style){
	if(wD.getComputedStyle) return wD.getComputedStyle(elem,null).getPropertyValue(style);
	if(elem.currentStyle) return elem.currentStyle[camelConv(style)];
	return false;
};

function copyStyles(src,dest,replaceStr,sList){
	var camelList = new Array();
	for (var i=0;i<sList.length;i++){
		camelList[i]=camelConv(sList[i]);
		dest.style[camelList[i]] = getStyle(src,sList[i],camelList[i]);
		if(replaceStr) src.style[camelList[i]] = replaceStr;
	}
};
function createDiv(typeName,noGenericClass){
	var nDiv=dC.createElement('div');
	nDiv.id=targetId+'_'+typeName;
	nDiv.className=(noGenericClass)?typeName:typeName+' scrollgeneric';
	nDiv.getSize=[function(){return nDiv.offsetWidth;},function(){return nDiv.offsetHeight;}];
	nDiv.setSize=[function(sVal){nDiv.sY.width=sVal;},function(sVal){nDiv.sY.height=sVal;}];
	nDiv.getPos=[function(){return getStyle(nDiv,"left");},function(){return getStyle(nDiv,"top");}];
	nDiv.setPos=[function(sVal){nDiv.sY.left=sVal;},function(sVal){nDiv.sY.top=sVal;}];
	nDiv.fHide=function(){nDiv.sY.visibility="hidden"};
	nDiv.fShow=function(coPy){nDiv.sY.visibility=(coPy)?getStyle(coPy,'visibility'):"inherit"};
	nDiv.sY=nDiv.style;
	return nDiv;
};
function createScrollBars(ary,bse){
	ary.sDv=createDiv(bse+'base');ary.sFDv=createDiv(bse+'basebeg');
	ary.sSDv=createDiv(bse+'baseend');ary.sBr=createDiv(bse+'bar');
	ary.sFBr=createDiv(bse+'barbeg');ary.sSBr=createDiv(bse+'barend');
	tDv.appendChild(ary.sDv);ary.sDv.appendChild(ary.sBr);
	ary.sDv.appendChild(ary.sFDv);ary.sDv.appendChild(ary.sSDv);
	ary.sBr.appendChild(ary.sFBr);ary.sBr.appendChild(ary.sSBr);
};
function prepareScroll(bAr,reqSpace){
	var sDv=bAr.sDv,sBr=bAr.sBr,i=sBr.indx;
	sBr.minPos=bAr.barPadding[0];
	sBr.ofstParent=sDv;
	sBr.mDv=mDv;
	sBr.scrlTrgt=cDv;
	sBr.targetSkew=0;
	updateScroll(bAr,reqSpace,true);
	
	sBr.doScrollPos=function(){
		sBr.curPos=(Math.min(Math.max(sBr.curPos,0),sBr.maxPos));
		sBr.trgtScrll=parseInt((sBr.curPos/sBr.sRange)*sBr.mxScroll);
		sBr.targetSkew=(sBr.curPos==0)?0:(sBr.curPos==sBr.maxPos)?0:sBr.targetSkew;
		sBr.setPos[i](sBr.curPos+sBr.minPos+"px");
		cDv.setPos[i](sBr.trgtScrll+sBr.targetSkew+"px");
	};
	
	sBr.contentScrollPos=function(){
		sBr.curPos=parseInt((sBr.trgtScrll*sBr.sRange)/sBr.mxScroll);
		sBr.targetSkew=sBr.trgtScrll-parseInt((sBr.curPos/sBr.sRange)*sBr.mxScroll);
		sBr.curPos=(Math.min(Math.max(sBr.curPos,0),sBr.maxPos));
		sBr.setPos[i](sBr.curPos+sBr.minPos+"px");
		sBr.setPos[i](sBr.curPos+sBr.minPos+"px");
		cDv.setPos[i](sBr.trgtScrll+"px");
	};
	
	sC.barZ=getStyle(sBr,'z-index');
	sBr.sY.zIndex=(sC.barZ=="auto"||sC.barZ=="0")?2:sC.barZ;
	mDv.sY.zIndex=getStyle(sBr,'z-index');

	sBr.onmousedown=function(){
		sBr.clicked=true;sC.goScroll=sBr;sBr.scrollBoth=false;sBr.moved=false;
		fleXenv.addTrggr(dC,'selectstart',retFalse);
		fleXenv.addTrggr(dC,'mousemove',mMoveBar);
		fleXenv.addTrggr(dC,'mouseup',mMouseUp);
		return false;
		};
	
	sBr.onmouseover=intClear;
	
	 sDv.onmousedown=sDv.ondblclick=function(e){
		if(!e){var e=wD.event;}
		if(e.target&&(e.target==bAr.sFBr||e.target==bAr.sSBr||e.target==bAr.sBr)) return;
		if(e.srcElement&&(e.srcElement==bAr.sFBr||e.srcElement==bAr.sSBr||e.srcElement==bAr.sBr)) return;
		var relPos,mV=[];pageScrolled();
		sC.mDPosFix();
		findPos(sBr);
		relPos=(sBr.vertical)?e.clientY+sC.yScrld-sBr.yPos:e.clientX+sC.xScrld-sBr.xPos;
		mV[sBr.indx]=(relPos<0)?sC.baseAct[0]:sC.baseAct[1];mV[1-sBr.indx]=0;
		dDv.contentScroll(mV[0],mV[1],true);
		if(e.type!="dblclick") {
		intClear();
		sC.barClickRetard=wD.setTimeout(function(){
		sC.barClickScroll=wD.setInterval(function(){
		dDv.contentScroll(mV[0],mV[1],true);},80)},425);
		}
		return false;
	};
	sDv.setVisibility=function(r){
		if(r){sDv.fShow(dDv);
		sC.forcedHide[i]=(getStyle(sDv,"visibility")=="hidden")?true:false;
		if(!sC.forcedHide[i]) sBr.fShow(dDv); else sBr.fHide();
		sC.scroller[i]=true;classChange(sDv,"","flexinactive");
		}
		else{sDv.fHide();sBr.fHide();
		sC.forcedBar[i]=(getStyle(sDv,"visibility")!="hidden")?true:false;
		sC.scroller[i]=false;sBr.curPos=0;cDv.setPos[i]('0px');
		classChange(sDv,"flexinactive","");}
		mDv.setPos[1-i]((sC.forcedPos[i]&&(r||sC.forcedBar[i])&&!sC.forcedHide[i])?sC.barSpace[1-i]-sC.paddings[i*2]+"px":"-"+sC.paddings[i*2]+"px");
	};
	sDv.onmouseclick = retFalse;
};

function updateScroll(bAr,reqSpace,firstRun){
	var sDv=bAr.sDv,sBr=bAr.sBr,sFDv=bAr.sFDv,sFBr=bAr.sFBr,sSDv=bAr.sSDv,sSBr=bAr.sSBr,i=sBr.indx;
	sDv.setSize[i](tDv.getSize[i]()-reqSpace+'px');sDv.setPos[1-i](tDv.getSize[1-i]()-sDv.getSize[1-i]()+'px');
	sC.forcedPos[i]=(parseInt(sDv.getPos[1-i]())===0)?true:false;
	bAr.padLoss=bAr.barPadding[0]+bAr.barPadding[1];bAr.baseProp=parseInt((sDv.getSize[i]()-bAr.padLoss)*0.75);
	sBr.aSize=Math.min(Math.max(Math.min(parseInt(sC.cntRSize[i]/sC.cntSize[i]*sDv.getSize[i]()),bAr.baseProp),45),bAr.baseProp);
	sBr.setSize[i](sBr.aSize+'px');sBr.maxPos=sDv.getSize[i]()-sBr.getSize[i]()-bAr.padLoss;
	sBr.curPos=Math.min(Math.max(0,sBr.curPos),sBr.maxPos);
	sBr.setPos[i](sBr.curPos+sBr.minPos+'px');sBr.mxScroll=mDv.getSize[i]()-sC.cntSize[i];
	sBr.sRange=sBr.maxPos;
	sFDv.setSize[i](sDv.getSize[i]()-sSDv.getSize[i]()+'px');
	sFBr.setSize[i](sBr.getSize[i]()-sSBr.getSize[i]()+'px');
	sSBr.setPos[i](sBr.getSize[i]()-sSBr.getSize[i]()+'px');
	sSDv.setPos[i](sDv.getSize[i]()-sSDv.getSize[i]()+'px');
	if(!firstRun) sBr.doScrollPos();
	sC.fixIEDispBug();
};

sC.mDPosFix=function(){mDv.scrollTop=0;mDv.scrollLeft=0;dDv.scrollTop=0;dDv.scrollLeft=0;};

this.addTrggr(wD,'load',function(){if(dDv.fleXcroll) dDv.scrollUpdate();});
this.addTrggr(wD,'resize',function(){
if(dDv.refreshTimeout) wD.clearTimeout(dDv.refreshTimeout);
dDv.refreshTimeout=wD.setTimeout(function(){if(dDv.fleXcroll) dDv.scrollUpdate();},80);
});

for(var j=0,inputName;inputName=focusProtectList[j];j++){
	var inputList=dDv.getElementsByTagName(inputName);
	for(var i=0,formItem;formItem=inputList[i];i++){
	fleXenv.addTrggr(formItem,'focus',function(){dDv.focusProtect=true;});
	fleXenv.addTrggr(formItem,'blur',onblur=function(){dDv.focusProtect=false;});
}};

function retFalse(){return false;};
function mMoveBar(e){
if(!e){var e=wD.event;};
var FCBar=sC.goScroll,movBr,maxx,xScroll,yScroll;
if(FCBar==null) return;
maxx=(FCBar.scrollBoth)?2:1;
for (var i=0;i<maxx;i++){
	movBr=(i==1)?FCBar.scrlTrgt.vBar:FCBar;
	if(FCBar.clicked){
	if(!movBr.moved){
	sC.mDPosFix();
	findPos(movBr);findPos(movBr.ofstParent);movBr.pointerOffsetY=e.clientY-movBr.yPos;
	movBr.pointerOffsetX=e.clientX-movBr.xPos;movBr.inCurPos=movBr.curPos;movBr.moved=true;
	};
	movBr.curPos=(movBr.vertical)?e.clientY-movBr.pointerOffsetY-movBr.ofstParent.yPos-movBr.minPos:e.clientX-movBr.pointerOffsetX-movBr.ofstParent.xPos-movBr.minPos;
	if(FCBar.scrollBoth) movBr.curPos=movBr.curPos+(movBr.curPos-movBr.inCurPos);
	movBr.doScrollPos();
	} else movBr.moved=false;
	};
};

function mMouseUp(){
	if(sC.goScroll!=null){sC.goScroll.clicked=false;}
	sC.goScroll=null;
	fleXenv.remTrggr(dC,'selectstart',retFalse);
	fleXenv.remTrggr(dC,'mousemove',mMoveBar);
	fleXenv.remTrggr(dC,'mouseup',mMouseUp);
};

function mWheelProc(e){
	if(!e) e=wD.event;
	if(!this.fleXcroll) return;
	var scrDv=this,vEdge,hEdge,hoverH=false,delta=0,iNDx;
	sC.mDPosFix();
	hElem=(e.target)?e.target:(e.srcElement)?e.srcElement:this;
	if(hElem.id&&hElem.id.match(/_hscroller/)) hoverH=true;
	if(e.wheelDelta) delta=-e.wheelDelta;if(e.detail) delta=e.detail;
	delta=(delta<0)?-1:+1;iNDx=(delta<0)?0:1;sC.edge[1-iNDx]=false;
	if((sC.edge[iNDx]&&!hoverH)||(!sC.scroller[0]&&!sC.scroller[1])) return;
	if(sC.scroller[1]&&!hoverH) scrollState=dDv.contentScroll(false,sC.wheelAct[iNDx],true);
	vEdge=!sC.scroller[1]||hoverH||(sC.scroller[1]&&((scrollState[1][0]==scrollState[1][1]&&delta>0)||(scrollState[1][0]==0&&delta<0)));
	if(sC.scroller[0]&&(!sC.scroller[1]||hoverH)) scrollState=dDv.contentScroll(sC.wheelAct[iNDx],false,true);
	hEdge=!sC.scroller[0]||(sC.scroller[0]&&sC.scroller[1]&&vEdge&&!hoverH)||(sC.scroller[0]&&((scrollState[0][0]==scrollState[0][1]&&delta>0)||(scrollState[0][0]==0&&delta<0)));
	if(vEdge&&hEdge&&!hoverH) sC.edge[iNDx]=true; else sC.edge[iNDx]=false;
	if(e.preventDefault) e.preventDefault();
	return false;
};

function isddvChild(elem){while(elem.parentNode){elem=elem.parentNode;if(elem==dDv) return true;}	return false;};

function findPos(elem){ 
//modified from firetree.net
	var obj=elem,curleft=curtop=0;
	var monc="";
	if(obj.offsetParent){while(obj){curleft+=obj.offsetLeft;curtop+=obj.offsetTop;obj=obj.offsetParent; monc+=curtop+" ";}}
	else if(obj.x){curleft+=obj.x;curtop+=obj.y;}
	elem.xPos=curleft;elem.yPos=curtop;
};

function findRCpos(elem){
	var obj=elem;curleft=curtop=0;
	while(!obj.offsetHeight&&obj.parentNode&&obj!=cDv&&getStyle(obj,'display')=="inline"){obj=obj.parentNode;}
	if(obj.offsetParent){while(obj!=cDv){curleft+=obj.offsetLeft;curtop+=obj.offsetTop;obj=obj.offsetParent;}}
	return [curleft,curtop];
};

function classChange(elem,addClass,remClass) {
	if (!elem.className) elem.className = '';
	var clsnm = elem.className;
	if (addClass && !clsnm.match(RegExp("(^|\\s)"+addClass+"($|\\s)"))) clsnm = clsnm.replace(/(\S$)/,'$1 ')+addClass;
	if (remClass) clsnm = clsnm.replace(RegExp("((^|\\s)+"+remClass+")+($|\\s)","g"),'$2').replace(/\s$/,'');
	elem.className=clsnm;
	};
},
//main code end
globalInit:function(){
if(fleXenv.catchFastInit) window.clearInterval(fleXenv.catchFastInit);
var regg=/#([^#.]*)$/,urlExt=/(.*)#.*$/,matcH,i,anchoR,anchorList=document.getElementsByTagName("a"),urlBase=document.location.href;
if(urlBase.match(urlExt)) urlBase=urlBase.match(urlExt)[1];
for(i=0;anchoR=anchorList[i];i++){
if(anchoR.href&&anchoR.href.match(regg)&&anchoR.href.match(urlExt)&&urlBase===anchoR.href.match(urlExt)[1]) {
	anchoR.fleXanchor=true;
	fleXenv.addTrggr(anchoR,'click',function(e){
		if(!e) e=window.event;
		var clickeD=(e.srcElement)?e.srcElement:this;
		while(!clickeD.fleXanchor&&clickeD.parentNode){clickeD=clickeD.parentNode};
		if(!clickeD.fleXanchor) return;
		var tEL=document.getElementById(clickeD.href.match(regg)[1]),eScroll=false;
		if(tEL==null) tEL=(tEL=document.getElementsByName(clickeD.href.match(regg)[1])[0])?tEL:null;
		if(tEL!=null){
		var elem=tEL;
		while(elem.parentNode){
			elem=elem.parentNode;if(elem.scrollToElement){
				elem.scrollToElement(tEL);eScroll=elem;
				};
			};
		if(eScroll) {if(e.preventDefault) e.preventDefault();document.location.href="#"+clickeD.href.match(regg)[1];eScroll.fleXdata.mDPosFix();return false;}
		};
		});
	};
};
fleXenv.initByClass();
if(window.onfleXcrollRun) window.onfleXcrollRun();
},

initByClass:function(){
if(fleXenv.initialized) return;
fleXenv.initilialized=true;
var fleXlist=fleXenv.getByClassName(document.getElementsByTagName("body")[0],"div",'flexcroll');
for (var i=0,tgDiv;tgDiv=fleXlist[i];i++) fleXenv.fleXcrollMain(tgDiv);
},

getByClassName:function(elem,elType,classString){
//v1.1fleX
	if(typeof(elem)=='string') elem=document.getElementById(elem);
	if(elem==null)return false;
	var regExer=new RegExp("(^|\\s)"+classString+"($|\\s)"),clsnm,retArray=[],key=0;
	var elems=elem.getElementsByTagName(elType);
	for(var i=0,pusher;pusher=elems[i];i++){
	if(pusher.className && pusher.className.match(regExer)){
		retArray[key]=pusher;key++;
		}
	}
return retArray;
},

catchFastInit:window.setInterval(function(){
										  
										  
	var dElem=document.getElementById('flexcroll-init');
	if(dElem!=null) {
		fleXenv.initByClass();window.clearInterval(fleXenv.catchFastInit);}
	},100),

addTrggr:function(elm,eventname,func){if(!fleXenv.addChckTrggr(elm,eventname,func)&&elm.attachEvent) {elm.attachEvent('on'+eventname,func);}},

addChckTrggr:function(elm,eventname,func){if(elm.addEventListener){elm.addEventListener(eventname,func,false);window.addEventListener("unload",function(){fleXenv.remTrggr(elm,eventname,func)},false);return true;} else return false;},

remTrggr:function(elm,eventname,func){if(!fleXenv.remChckTrggr(elm,eventname,func)&&elm.detachEvent) elm.detachEvent('on'+eventname,func);},

remChckTrggr:function(elm,eventname,func){if(elm.removeEventListener){elm.removeEventListener(eventname,func,false);return true;} else return false;}

};

function CSBfleXcroll(targetId){fleXenv.fleXcrollMain(targetId)};
fleXenv.fleXcrollInit();
		//	PolylineEncoder.js	copyright	Mark	McClure		April/May	2007
		//
		//	This	software	is	placed	explicitly	in	the	public
		//	domain	and	may	be	freely	distributed	or	modified.
		//	No	warranty	express	or	implied	is	provided.
		//
		//	History:
		//	V	2.1		July	2007
		//			Minor	modification	in	distance	function	to	enhance
		//			speed.		Suggested	by	Joel	Rosenberg.
		//	V	2.0	May	2007.
		//			Major	revisions	include:
		//					Incorporation	of	Douglas-Peucker	algorithm
		//					Encapsulation	into	the	PolylineEncoder	package.
		//	V	1.0	September	2006
		//			Original	version	based	on	simple	vertex	reduction
		//
		//	This	module	defines	a	PolylineEncoder	class	to	encode
		//	polylines	for	use	with	Google	Maps	together	with	a	few
		//	auxiliary	functions.	Documentation	at
		//	http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.html
		//
		//	Google	map	reference	including	encoded	polylines:
		//			http://www.google.com/apis/maps/documentation/
		//
		//	Details	on	the	algorithm	used	here:
		//			http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/
		//
		//	Constructor:
		//			polylineEncoder	=	new	PolylineEncoder(numLevels,
		//					zoomFactor,	verySmall,	forceEndpoints?);
		//	where	numLevels	and	zoomFactor	indicate	how	many
		//	different	levels	of	magnification	the	polyline	has
		//	and	the	change	in	magnification	between	those	levels,
		//	verySmall	indicates	the	length	of	a	barely	visible
		//	object	at	the	highest	zoom	level,	forceEndpoints
		//	indicates	whether	or	not	the		endpoints	should	be
		//	visible	at	all	zoom	levels.		forceEndpoints	is
		//	optional	with	a	default	value	of	true.		Probably
		//	should	stay	true	regardless.
		//
		//	Main	methods:
		//	*	PolylineEncoder.dpEncodeToPolyline(points,
		//					color?,	weight?,	opacity?)
		//	Accepts	an	array	of	latLng	objects	(see	below)	and
		//	optional	style	specifications.		Returns	an	encoded
		//	polyline	that	may	be	directly	overlayed	on	a	Google
		//	Map.		Requires	that	the	Google	Maps	API	be	loaded.
		//
		//	*	PolylineEncoder.dpEncodeToPolygon(pointsArray,
		//					boundaryColor?,	boundaryWeight?,	boundaryOpacity?,
		//					fillColor?,	fillOpacity?,	fill?,	outline?)
		//	Accepts	an	array	of	arrays	latLng	objects	and
		//	optional	style	specifications.		Returns	an	encoded
		//	polylgon	that	may	be	directly	overlayed	on	a	Google
		//	Map.		Requires	that	the	Google	Maps	API	be	loaded.
		//
		//
		//	Convenience	classes	and	methods:
		//	*	PolylineEncoder.latLng
		//	Constructor:
		//			myLatLng	=	new	PolylineEncoder.latLng(y,x);
		//	The	dpEncode*	functions	expect	points	in	the
		//	form	of	an	object	with	lat	and	lng	methods.		A
		//	GLatLng	as	defined	by	the	Google	Maps	API	does
		//	quite	nicely.		If	you're	developing	a	javascript
		//	without	loading	the	API,	however,	you	can	use
		//	a	PolylineEncoder.latLng	for	this	purpose.
		//	//
		//	PolylineEncoder.pointsToLatLngs
		//	Sometimes	your	points	are	defined	in	terms	of	an
		//	array	of	arrays,	rather	than	an	array	of	latLngs.
		//	PolylineEncoder.pointsToLatLngs	converts	to	an	array
		//	of	arrays	to	an	array	of	latLngs	for	use	by	the
		//	dpEncode	functions.
		//	//
		//	PolylineEncoder.pointsToGLatLngs
		//	PolylineEncoder.pointsToGLatLngs	is	analagous	to	the
		//	previous	function,	but	it	returns	GLatLngs	rather
		//	than	PolylineEncoder.latLngs.		The	first	function	may
		//	be	used	independently	of	Google	Maps.		Use	the	second,
		//	if	you	need	to	use	the	result	in	a	Goole	Map	function.
		//
		//
		//	Lower	level	methods
		//	PolylineEncoder.dpEncodeToJSON(points,
		//					color?,	weight?,	opacity?)
		//	Returns	a	legal	argument	to	GPolyline.fromEncoded.
		//	//
		//	PolylineEncoder.dpEncode(points);
		//	This	is	where	the	real	work	is	done.		The	return	value
		//	is	a	JSON	object	with	properties	named		encodedLevels,
		//	encdodedPoints	and	encodedPointsLiteral.	These	are
		//	strings	which	are	acceptable	input	to	the	points	and
		//	levels	properties	of	the	GPolyline.fromEncoded
		//	function.	The	encodedPoints	string	should	be	used	for
		//	maps	generated	dynamically,	while	the
		//	encodedPointsLiteral	string	should	be	copied	into	a
		//	static	document.
		//
		//	The	standard	disclaimers,	such	as	"use	at	your	own	risk,
		//	since	I	really	don't	have	any	idea	what	I'm	doing,"	apply.

		//	The	constructor
		PolylineEncoder	=	function(numLevels,	zoomFactor,	verySmall,	forceEndpoints)	{
				var	i;
				if(!numLevels)	{
						numLevels	=	18;
				}
				if(!zoomFactor)	{
						zoomFactor	=	2;
				}
				if(!verySmall)	{
						verySmall	=	0.00001;
				}
				if(!forceEndpoints)	{
						forceEndpoints	=	true;
				}
				this.numLevels	=	numLevels;
				this.zoomFactor	=	zoomFactor;
				this.verySmall	=	verySmall;
				this.forceEndpoints	=	forceEndpoints;
				this.zoomLevelBreaks	=	new	Array(numLevels);
				for(i	=	0;	i	<	numLevels;	i++)	{
						this.zoomLevelBreaks[i]	=	verySmall*Math.pow(zoomFactor,	numLevels-i-1);
				}
		}

		//	The	main	function.		Essentially	the	Douglas-Peucker
		//	algorithm,	adapted	for	encoding.	Rather	than	simply
		//	eliminating	points,	we	record	their	from	the
		//	segment	which	occurs	at	that	recursive	step.		These
		//	distances	are	then	easily	converted	to	zoom	levels.
		PolylineEncoder.prototype.dpEncode	=	function(points)	{
				var	absMaxDist	=	0;
				var	stack	=	[];
				var	dists	=	new	Array(points.length);
				var	maxDist,	maxLoc,	temp,	first,	last,	current;
				var	i,	encodedPoints,	encodedLevels;
				var	segmentLength;

				if(points.length	>	2)	{
						stack.push([0,	points.length-1]);
						while(stack.length	>	0)	{
								current	=	stack.pop();
								maxDist	=	0;
								segmentLength	=	Math.pow(points[current[1]].lat()-points[current[0]].lat(),2)	+
								Math.pow(points[current[1]].lng()-points[current[0]].lng(),2);
								for(i	=	current[0]+1;	i	<	current[1];	i++)	{
										temp	=	this.distance(points[i],
										points[current[0]],	points[current[1]],
										segmentLength);
										if(temp	>	maxDist)	{
												maxDist	=	temp;
												maxLoc	=	i;
												if(maxDist	>	absMaxDist)	{
														absMaxDist	=	maxDist;
												}
										}
								}
								if(maxDist	>	this.verySmall)	{
										dists[maxLoc]	=	maxDist;
										stack.push([current[0],	maxLoc]);
										stack.push([maxLoc,	current[1]]);
								}
						}
				}

				encodedPoints	=	this.createEncodings(points,	dists);
				encodedLevels	=	this.encodeLevels(points,	dists,	absMaxDist);
				return	{
						encodedPoints:	encodedPoints,
						encodedLevels:	encodedLevels,
						encodedPointsLiteral:	encodedPoints.replace(/\\/g,"\\\\")
				}
		}

		PolylineEncoder.prototype.dpEncodeToJSON	=	function(points,
		color,	weight,	opacity)	{
				var	result;

				if(!opacity)	{
						opacity	=	0.9;
				}
				if(!weight)	{
						weight	=	3;
				}
				if(!color)	{
						color	=	"#0000ff";
				}
				result	=	this.dpEncode(points);
				return	{
						color:	color,
						weight:	weight,
						opacity:	opacity,
						points:	result.encodedPoints,
						levels:	result.encodedLevels,
						numLevels:	this.numLevels,
						zoomFactor:	this.zoomFactor
				}
		}

		PolylineEncoder.prototype.dpEncodeToGPolyline	=	function(points,
		color,	weight,	opacity)	{
				if(!opacity)	{
						opacity	=	0.9;
				}
				if(!weight)	{
						weight	=	3;
				}
				if(!color)	{
						color	=	"#0000ff";
				}
				return	new	GPolyline.fromEncoded(
				this.dpEncodeToJSON(points,	color,	weight,	opacity));
		}

		PolylineEncoder.prototype.dpEncodeToGPolygon	=	function(pointsArray,
		boundaryColor,	boundaryWeight,	boundaryOpacity,
		fillColor,	fillOpacity,	fill,	outline)	{
				var	i,	boundaries;
				if(!boundaryColor)	{
						boundaryColor	=	"#0000ff";
				}
				if(!boundaryWeight)	{
						boundaryWeight	=	3;
				}
				if(!boundaryOpacity)	{
						boundaryOpacity	=	0.9;
				}
				if(!fillColor)	{
						fillColor	=	boundaryColor;
				}
				if(!fillOpacity)	{
						fillOpacity	=	boundaryOpacity/3;
				}
				if(fill==undefined)	{
						fill	=	true;
				}
				if(outline==undefined)	{
						outline	=	true;
				}

				boundaries	=	new	Array(0);
				for(i=0;	i<pointsArray.length;	i++)	{
						boundaries.push(this.dpEncodeToJSON(pointsArray[i],
						boundaryColor,	boundaryWeight,	boundaryOpacity));
				}
				return	new	GPolygon.fromEncoded({
						polylines:	boundaries,
						color:	fillColor,
						opacity:	fillOpacity,
						fill:	fill,
						outline:	outline
				});
		}

		//	distance(p0,	p1,	p2)	computes	the	distance	between	the	point	p0
		//	and	the	segment	[p1,p2].		This	could	probably	be	replaced	with
		//	something	that	is	a	bit	more	numerically	stable.
		PolylineEncoder.prototype.distance	=	function(p0,	p1,	p2,	segLength)	{
				var	u,	out;

				if(p1.lat()	===	p2.lat()	&&	p1.lng()	===	p2.lng())	{
						out	=	Math.sqrt(Math.pow(p2.lat()-p0.lat(),2)	+	Math.pow(p2.lng()-p0.lng(),2));
				}
				else	{
						u	=	((p0.lat()-p1.lat())*(p2.lat()-p1.lat())+(p0.lng()-p1.lng())*(p2.lng()-p1.lng()))/
						segLength;

						if(u	<=	0)	{
								out	=	Math.sqrt(Math.pow(p0.lat()	-	p1.lat(),2)	+	Math.pow(p0.lng()	-	p1.lng(),2));
						}
						if(u	>=	1)	{
								out	=	Math.sqrt(Math.pow(p0.lat()	-	p2.lat(),2)	+	Math.pow(p0.lng()	-	p2.lng(),2));
						}
						if(0	<	u	&&	u	<	1)	{
								out	=	Math.sqrt(Math.pow(p0.lat()-p1.lat()-u*(p2.lat()-p1.lat()),2)	+
								Math.pow(p0.lng()-p1.lng()-u*(p2.lng()-p1.lng()),2));
						}
				}
				return	out;
		}

		//	The	createEncodings	function	is	very	similar	to	Google's
		//	http://www.google.com/apis/maps/documentation/polyline.js
		//	The	key	difference	is	that	not	all	points	are	encoded,
		//	since	some	were	eliminated	by	Douglas-Peucker.
		PolylineEncoder.prototype.createEncodings	=	function(points,	dists)	{
				var	i,	dlat,	dlng;
				var	plat	=	0;
				var	plng	=	0;
				var	encoded_points	=	"";

				for(i	=	0;	i	<	points.length;	i++)	{
						if(dists[i]	!=	undefined	||	i	==	0	||	i	==	points.length-1)	{
								var	point	=	points[i];
								var	lat	=	point.lat();
								var	lng	=	point.lng();
								var	late5	=	Math.floor(lat	*	1e5);
								var	lnge5	=	Math.floor(lng	*	1e5);
								dlat	=	late5	-	plat;
								dlng	=	lnge5	-	plng;
								plat	=	late5;
								plng	=	lnge5;
								encoded_points	+=	this.encodeSignedNumber(dlat)	+
								this.encodeSignedNumber(dlng);
						}
				}
				return	encoded_points;
		}

		//	This	computes	the	appropriate	zoom	level	of	a	point	in	terms	of	it's
		//	distance	from	the	relevant	segment	in	the	DP	algorithm.		Could	be	done
		//	in	terms	of	a	logarithm,	but	this	approach	makes	it	a	bit	easier	to
		//	ensure	that	the	level	is	not	too	large.
		PolylineEncoder.prototype.computeLevel	=	function(dd)	{
				var	lev;
				if(dd	>	this.verySmall)	{
						lev=0;
						while(dd	<	this.zoomLevelBreaks[lev])	{
								lev++;
						}
						return	lev;
				}
		}

		//	Now	we	can	use	the	previous	function	to	march	down	the	list
		//	of	points	and	encode	the	levels.		Like	createEncodings,	we
		//	ignore	points	whose	distance	(in	dists)	is	undefined.
		PolylineEncoder.prototype.encodeLevels	=	function(points,	dists,	absMaxDist)	{
				var	i;
				var	encoded_levels	=	"";
				if(this.forceEndpoints)	{
						encoded_levels	+=	this.encodeNumber(this.numLevels-1)
				}	else	{
						encoded_levels	+=	this.encodeNumber(
						this.numLevels-this.computeLevel(absMaxDist)-1)
				}
				for(i=1;	i	<	points.length-1;	i++)	{
						if(dists[i]	!=	undefined)	{
								encoded_levels	+=	this.encodeNumber(
								this.numLevels-this.computeLevel(dists[i])-1);
						}
				}
				if(this.forceEndpoints)	{
						encoded_levels	+=	this.encodeNumber(this.numLevels-1)
				}	else	{
						encoded_levels	+=	this.encodeNumber(
						this.numLevels-this.computeLevel(absMaxDist)-1)
				}
				return	encoded_levels;
		}

		//	This	function	is	very	similar	to	Google's,	but	I	added
		//	some	stuff	to	deal	with	the	double	slash	issue.
		PolylineEncoder.prototype.encodeNumber	=	function(num)	{
				var	encodeString	=	"";
				var	nextValue,	finalValue;
				while	(num	>=	0x20)	{
						nextValue	=	(0x20	|	(num	&	0x1f))	+	63;
						//					if	(nextValue	==	92)	{
						//							encodeString	+=	(String.fromCharCode(nextValue));
						//					}
						encodeString	+=	(String.fromCharCode(nextValue));
						num	>>=	5;
				}
				finalValue	=	num	+	63;
				//			if	(finalValue	==	92)	{
				//					encodeString	+=	(String.fromCharCode(finalValue));
				//			}
				encodeString	+=	(String.fromCharCode(finalValue));
				return	encodeString;
		}

		//	This	one	is	Google's	verbatim.
		PolylineEncoder.prototype.encodeSignedNumber	=	function(num)	{
				var	sgn_num	=	num	<<	1;
				if	(num	<	0)	{
						sgn_num	=	~(sgn_num);
				}
				return(this.encodeNumber(sgn_num));
		}


		//	The	remaining	code	defines	a	few	convenience	utilities.
		//	PolylineEncoder.latLng
		PolylineEncoder.latLng	=	function(y,	x)	{
				this.y	=	y;
				this.x	=	x;
		}
		PolylineEncoder.latLng.prototype.lat	=	function()	{
				return	this.y;
		}
		PolylineEncoder.latLng.prototype.lng	=	function()	{
				return	this.x;
		}

		//	PolylineEncoder.pointsToLatLngs
		PolylineEncoder.pointsToLatLngs	=	function(points)	{
				var	i,	latLngs;
				latLngs	=	new	Array(0);
				for(i=0;	i<points.length;	i++)	{
						latLngs.push(new	PolylineEncoder.latLng(points[i][0],	points[i][1]));
				}
				return	latLngs;
		}

		//	PolylineEncoder.pointsToGLatLngs
		PolylineEncoder.pointsToGLatLngs	=	function(points)	{
				var	i,	gLatLngs;
				gLatLngs	=	new	Array(0);
				for(i=0;	i<points.length;	i++)	{
						gLatLngs.push(new	GLatLng(points[i][0],	points[i][1]));
				}
				return	gLatLngs;
		}/*yahoo-min.js*/

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var D={},B=arguments;for(var C=0,A=B.length;C<A;C=C+1){YAHOO.lang.augmentObject(D,B[C],true);}return D;},later:function(H,B,I,D,E){H=H||0;B=B||{};var C=I,G=D,F,A;if(YAHOO.lang.isString(I)){C=B[I];}if(!C){throw new TypeError("method undefined");}if(!YAHOO.lang.isArray(G)){G=[D];}F=function(){C.apply(B,G);};A=(E)?setInterval(F,H):setTimeout(F,H);return{interval:E,cancel:function(){if(this.interval){clearInterval(A);}else{clearTimeout(A);}}};},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.5.0",build:"895"});/*json-min.js*/

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.namespace("lang");YAHOO.lang.JSON={_ESCAPES:/\\./g,_VALUES:/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,_BRACKETS:/(?:^|:|,)(?:\s*\[)+/g,_INVALID:/^[\],:{}\s]*$/,_SPECIAL_CHARS:/["\\\x00-\x1f]/g,_PARSE_DATE:/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/,_CHARS:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},_applyFilter:function(C,B){var A=function(E,D){var F,G;if(D&&typeof D==="object"){for(F in D){if(YAHOO.lang.hasOwnProperty(D,F)){G=A(F,D[F]);if(G===undefined){delete D[F];}else{D[F]=G;}}}}return B(E,D);};if(YAHOO.lang.isFunction(B)){A("",C);}return C;},isValid:function(A){if(!YAHOO.lang.isString(A)){return false;}return this._INVALID.test(A.replace(this._ESCAPES,"@").replace(this._VALUES,"]").replace(this._BRACKETS,""));},dateToString:function(B){function A(C){return C<10?"0"+C:C;}return'"'+B.getUTCFullYear()+"-"+A(B.getUTCMonth()+1)+"-"+A(B.getUTCDate())+"T"+A(B.getUTCHours())+":"+A(B.getUTCMinutes())+":"+A(B.getUTCSeconds())+'Z"';},stringToDate:function(B){if(this._PARSE_DATE.test(B)){var A=new Date();A.setUTCFullYear(RegExp.$1,(RegExp.$2|0)-1,RegExp.$3);A.setUTCHours(RegExp.$4,RegExp.$5,RegExp.$6);return A;}},parse:function(s,filter){if(this.isValid(s)){return this._applyFilter(eval("("+s+")"),filter);}throw new SyntaxError("parseJSON");},stringify:function(C,K,F){var E=YAHOO.lang,H=E.JSON,D=H._CHARS,A=this._SPECIAL_CHARS,B=[];var I=function(N){if(!D[N]){var J=N.charCodeAt();D[N]="\\u00"+Math.floor(J/16).toString(16)+(J%16).toString(16);}return D[N];};var M=function(J){return'"'+J.replace(A,I)+'"';};var L=this.dateToString;var G=function(J,T,R){var W=typeof J,P,Q,O,N,U,V,S;if(W==="string"){return M(J);}if(W==="boolean"||J instanceof Boolean){return String(J);}if(W==="number"||J instanceof Number){return isFinite(J)?String(J):"null";}if(J instanceof Date){return L(J);}if(E.isArray(J)){for(P=B.length-1;P>=0;--P){if(B[P]===J){return"null";}}B[B.length]=J;S=[];if(R>0){for(P=J.length-1;P>=0;--P){S[P]=G(J[P],T,R-1);}}B.pop();return"["+S.join(",")+"]";}if(W==="object"&&J){for(P=B.length-1;P>=0;--P){if(B[P]===J){return"null";}}B[B.length]=J;S=[];if(R>0){if(T){for(P=0,O=0,Q=T.length;P<Q;++P){U=J[T[P]];V=typeof U;if(V!=="undefined"&&V!=="function"){S[O++]=M(T[P])+":"+G(U,T,R-1);}}}else{O=0;for(N in J){if(typeof N==="string"&&E.hasOwnProperty(J,N)){U=J[N];V=typeof U;if(V!=="undefined"&&V!=="function"){S[O++]=M(N)+":"+G(U,T,R-1);}}}}}B.pop();return"{"+S.join(",")+"}";}return"null";};F=F>=0?F:1/0;return G(C,K,F);}};YAHOO.register("json",YAHOO.lang.JSON,{version:"2.5.0",build:"895"});


/* This notice must be untouched at all times.

wz_dragdrop.js	v. 4.89
The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
or http://www.walterzorn.de

Copyright (c) 2002-2007 Walter Zorn. All rights reserved.
Created 26. 8. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 28.6.2007

This DHTML & Drag&Drop Library adds Drag&Drop functionality
to the following types of html-elements:
- images, even if not positioned via layers,
  nor via stylesheets or any other kind of "hard-coding"
- relatively and absolutely positioned layers (DIV elements).
Moreover, it provides extended DHTML abilities.

LICENSE: LGPL

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License (LGPL) as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

For more details on the GNU Lesser General Public License,
see http://www.gnu.org/copyleft/lesser.html
*/


// PATH TO THE TRANSPARENT 1*1 PX IMAGE (required by NS 4 as spacer)
var spacer = 'transparentpixel.gif';




//window.onerror = new Function('return true;');


// Optional commands passed to SET_DHTML() on the html-page (g: may be applied globally, i: individually)
var CLONE			= 'C10nE';   // i  img	  clone image
var COPY			= 'C0pY';	// i  img	  create copies
var DETACH_CHILDREN = 'd37aCH';  // i  lyr	  detach images
var HORIZONTAL		= 'H0r1Z';   // i  img,lyr  horizontally draggable only
var MAXHEIGHT		= 'm7x8I';   // i  img,lyr  maximum height limit, "
var MAXOFFBOTTOM	= 'm7xd0wN'; // i  img,lyr  downward offset limit
var MAXOFFLEFT		= 'm7x23Ft'; // i  img,lyr  leftward offset limit
var MAXOFFRIGHT		= 'm7x0Ff8'; // i  img,lyr  rightward offset limit
var MAXOFFTOP		= 'm7xu9';   // i  img,lyr  upward offset limit
var MAXWIDTH		= 'm7xW1';   // i  img,lyr  maximum width limit, use with resizable or scalable
var MINWIDTH		= 'm1nw1';   // i  img,lyr  minimum width limit, "
var MINHEIGHT		= 'm1n8I';   // i  img,lyr  minimum height limit, "
var NO_ALT			= 'no81T';   // gi img	  disable alt and title attributes
var NO_DRAG			= 'N0d4Ag';  // i  img,lyr  disable draggability
var RESET_Z			= 'r35E7z';  // gi img,lyr  reset z-index when dropped
var RESIZABLE		= 'r5IZbl';  // gi img,lyr  resizable if <ctrl> or <shift> pressed
var SCALABLE		= 'SCLbl';   // gi img,lyr  scalable		   "
var SCROLL			= 'sC8lL';   // gi img,lyr  enable auto scroll functionality
var TRANSPARENT		= 'dIApHAn'; // gi img,lyr  translucent while dragged
var VERTICAL		= 'V3Rt1C';  // i  img,lyr  vertically draggable only
var dd_cursors = new Array(
	'c:default',
	'c:crosshair',
	'c:e-resize',
	'c:hand',
	'c:help',
	'c:move',
	'c:n-resize',
	'c:ne-resize',
	'c:nw-resize',
	'c:s-resize',
	'c:se-resize',
	'c:sw-resize',
	'c:text',
	'c:w-resize',
	'c:wait'
);
for(var dd_i = dd_cursors.length; dd_i;)
{--dd_i;
	eval('var CURSOR_' + (dd_cursors[dd_i].substring(2).toUpperCase().replace('-', '_')) + ' = "' + dd_cursors[dd_i] + '";');
}
var dd_u = "undefined";
function WZDD()
{
	this.elements = new Array(0);
	this.obj = null;
	this.n = navigator.userAgent.toLowerCase();
	this.db = (document.compatMode && document.compatMode.toLowerCase() != "backcompat")?
		document.documentElement
		: (document.body || null);
	this.op = !!(window.opera && document.getElementById);
	if(this.op) document.onmousedown = new Function('e',
		'if(((e = e || window.event).target || e.srcElement).tagName == "IMAGE") return false;');
	this.ie = !!(this.n.indexOf("msie") >= 0 && document.all && this.db && !this.op);
	this.iemac = !!(this.ie && this.n.indexOf("mac") >= 0);
	this.ie4 = !!(this.ie && !document.getElementById);
	this.n4 = !!(document.layers && typeof document.classes != dd_u);
	this.n6 = !!(typeof window.getComputedStyle != dd_u && typeof document.createRange != dd_u);
	this.w3c = !!(!this.op && !this.ie && !this.n6 && document.getElementById);
	this.ce = !!(document.captureEvents && document.releaseEvents && !this.n6);
	this.px = this.n4? '' : 'px';
	this.tWait = this.w3c? 40 : 10;
	this.noRecalc = false;
}
var dd = new WZDD();

dd.Int = function(d_x, d_y)
{
	return isNaN(d_y = parseInt(d_x))? 0 : d_y;
};
dd.getWndW = function()
{
	return dd.Int(
		(dd.db && !dd.op && !dd.w3c && dd.db.clientWidth)? dd.db.clientWidth
		: (window.innerWidth || 0)
	);
};
dd.getWndH = function()
{
	return dd.Int(
		(dd.db && !dd.op && !dd.w3c && dd.db.clientHeight)? dd.db.clientHeight
		: (window.innerHeight || 0)
	);
};
dd.getScrollX = function()
{
	return dd.Int(window.pageXOffset || (dd.db? dd.db.scrollLeft : 0));
};
dd.getScrollY = function()
{
	return dd.Int(window.pageYOffset || (dd.db? dd.db.scrollTop : 0));
};
dd.getPageXY = function(d_o)
{
	if(dd.n4 && d_o)
	{
		dd.x = d_o.pageX || 0;
		dd.y = d_o.pageY || 0;
	}
	else
	{
		dd.x = dd.y = 0; //global helper vars
		while(d_o)
		{
			dd.x += dd.Int(d_o.offsetLeft);
			dd.y += dd.Int(d_o.offsetTop);
			d_o = d_o.offsetParent || null;
		}
	}
};
dd.getCssXY = function(d_o)
{
	if(d_o.div)
	{
		if(dd.n4)
		{
			d_o.cssx = d_o.div.x;
			d_o.cssy = d_o.div.y;
		}
		else if(dd.ie4)
		{
			d_o.cssx = d_o.css.pixelLeft;
			d_o.cssy = d_o.css.pixelTop;
		}
		else
		{
			d_o.css.left = d_o.css.top = 0 + dd.px;
			dd.getPageXY(d_o.div);
			d_o.cssx = d_o.x - dd.x;
			d_o.cssy = d_o.y - dd.y;
			d_o.css.left = d_o.cssx + dd.px;
			d_o.css.top = d_o.cssy + dd.px;
		}
	}
	else
	{
		d_o.cssx = 0;
		d_o.cssy = 0;
	}
};
dd.getImgW = function(d_o)
{
	return d_o? dd.Int(d_o.width) : 0;
};
dd.getImgH = function(d_o)
{
	return d_o? dd.Int(d_o.height) : 0;
};
dd.getDivW = function(d_o)
{
	return dd.Int(
		dd.n4? (d_o.div? d_o.div.clip.width : 0)
		: d_o.div? (d_o.div.offsetWidth || d_o.css.pixelWidth || d_o.css.width || 0)
		: 0
	);
};
dd.getDivH = function(d_o)
{
	return dd.Int(
		dd.n4? (d_o.div? d_o.div.clip.height : 0)
		: d_o.div? (d_o.div.offsetHeight || d_o.css.pixelHeight || d_o.css.height || 0)
		: 0
	);
};
dd.getWH = function(d_o)
{
	d_o.w = dd.getDivW(d_o);
	d_o.h = dd.getDivH(d_o);
	if(d_o.css)
	{
		d_o.css.width = d_o.w + dd.px;
		d_o.css.height = d_o.h + dd.px;
		d_o.dw = dd.getDivW(d_o)-d_o.w;
		d_o.dh = dd.getDivH(d_o)-d_o.h;
		d_o.css.width = (d_o.w-d_o.dw) + dd.px;
		d_o.css.height = (d_o.h-d_o.dh) + dd.px;
	}
	else d_o.dw = d_o.dh = 0;
	
};
dd.getCssProp = function(d_o, d_pn6, d_pstyle, d_pn4)
{
	if(d_o && dd.n6) return ''+window.getComputedStyle(d_o, null).getPropertyValue(d_pn6);
	if(d_o && d_o.currentStyle) return ''+eval('d_o.currentStyle.'+d_pstyle);
	if(d_o && d_o.style) return ''+eval('d_o.style.'+d_pstyle);
	if(d_o && dd.n4) return ''+eval('d_o.'+d_pn4);
	return '';
};
dd.getDiv = function(d_x, d_d)
{
	d_d = d_d || document;
	if(dd.n4)
	{
		if(d_d.layers[d_x]) return d_d.layers[d_x];
		for(var d_i = d_d.layers.length; d_i;)
		{
			var d_y = dd.getDiv(d_x, d_d.layers[--d_i].document);
			if(d_y) return d_y;
		}
	}
	if(dd.ie) return d_d.all[d_x] || null;
	if(d_d.getElementById) return d_d.getElementById(d_x) || null;
	return null;
};
dd.getImg = function(d_o, d_nm, d_xy, d_w)
{
	d_w = d_w || window;
	var d_img;
	if(document.images && (d_img = d_w.document.images[d_nm]))
	{
		if(d_xy)
		{
			if(dd.n4)
			{
				dd.getPageXY(d_w);
				d_o.defx = d_img.x + dd.x;
				d_o.defy = d_img.y + dd.y;
			}
			else
			{
				dd.getPageXY(d_img);
				d_o.defx = dd.x;
				d_o.defy = dd.y;
			}
		}
		return d_img;
	}
	if(dd.n4) for(var d_i = d_w.document.layers.length; d_i;)
	{
		var d_y = dd.getImg(d_o, d_nm, d_xy, d_w.document.layers[--d_i]);
		if(d_y) return d_y;
	}
	return null;
};
dd.getParent = function(d_o, d_p)
{
	if(dd.n4)
	{
		for(var d_i = dd.elements.length; d_i;)
		{
			if(!((d_p = dd.elements[--d_i]).is_image) && d_p.div && (d_p.div.document.layers[d_o.name] || d_o.oimg && d_p.div.document.images[d_o.oimg.name]))
				d_p.addChild(d_o, d_p.detach, 1);
		}
	}
	else
	{
		d_p = d_o.is_image? dd.getImg(d_o, d_o.oimg.name) : (d_o.div || null);
		while(d_p && !!(d_p = d_p.offsetParent || d_p.parentNode || null))
		{
			if(d_p.ddObj)
			{
				d_p.ddObj.addChild(d_o, d_p.ddObj.detach, 1);
				break;
			}
		}
	}
};
dd.getCmd = function(d_o, d_cmd, d_cmdStr)
{
	var d_i = d_o.id.indexOf(d_cmd), d_j,
	d_y = (d_i >= 0)*1;
	if(d_y)
	{
		d_j = d_i+d_cmd.length;
		if(d_cmdStr) d_o.cmd += d_o.id.substring(d_i, d_j);
		d_o.id = d_o.id.substring(0, d_i) + d_o.id.substring(d_j);
	}
	return d_y;
};
dd.getCmdVal = function(d_o, d_cmd, d_cmdStr, int0)
{
	var d_i = d_o.id.indexOf(d_cmd), d_j,
	d_y = (d_o.id.indexOf(d_cmd) >= 0)? dd.Int(d_o.id.substring(d_o.id.indexOf(d_cmd)+d_cmd.length)) : int0? -1 : 0;
	if(!int0 && d_y || int0 && d_y >= 0)
	{
		d_j = d_i+d_cmd.length+(""+d_y).length;
		if(d_cmdStr) d_o.cmd += d_o.id.substring(d_i, d_j);
		d_o.id = d_o.id.substring(0, d_i) + d_o.id.substring(d_j);
	}
	return d_y;
};
dd.addElt = function(d_o, d_p)
{
	dd.elements[d_o.name] = dd.elements[d_o.index = dd.elements.length] = d_o;
	if(d_p) d_p.copies[d_o.name] = d_p.copies[d_p.copies.length] = d_o;
};
dd.mkWzDom = function()
{
	var d_o, d_l = dd.elements.length, d_i;
	for(d_i = d_l; d_i;) dd.getParent(dd.elements[--d_i]);
	for(d_i = d_l; d_i;)
	{
		if((d_o = dd.elements[--d_i]).children && !d_o.parent)
		{
			for(var d_j = d_o.children.length; d_j;)
			{--d_j;
				d_o.children[d_j].setZ(d_o.z+d_o.children[d_j].z, 1);
			}
		}
	}
};
dd.addProps = function(d_o)
{
	if(d_o.is_image)
	{
		d_o.div = dd.getDiv(d_o.id);
		d_o.css = (d_o.div && typeof d_o.div.style != dd_u)? d_o.div.style : null;
		d_o.nimg = (dd.n4 && d_o.div)? d_o.div.document.images[0] : (document.images[d_o.id+"NI1m6G"] || null);
		if(!d_o.noalt && !dd.noalt && d_o.nimg && d_o.oimg)
		{
			d_o.nimg.alt = d_o.oimg.alt || '';
			d_o.nimg.title = d_o.oimg.title;
			d_o.nimg.onmouseover = d_o.oimg.onmouseover;
			d_o.nimg.onmouseout = d_o.oimg.onmouseout;
		}
		d_o.bgColor = '';
	}
	else
	{
		d_o.bgColor = dd.getCssProp(d_o.div, 'background-color','backgroundColor','bgColor').toLowerCase();
		if(dd.n6 && d_o.div)
		{
			var d_c = d_o.bgColor.toLowerCase();
			if(d_c.indexOf('rgb') >= 0)
			{
				d_c = d_c.substring(4, d_c.length-1).split(',');
				d_o.bgColor = '#';
				for(var d_l = d_c.length, d_i = 0; d_i < d_l; d_i++) d_o.bgColor += parseInt(d_c[d_i]).toString(0x10);
			}
			else d_o.bgColor = d_c;
		}
	}
	if(dd.scalable) d_o.scalable = d_o.resizable^1;
	else if(dd.resizable) d_o.resizable = d_o.scalable^1;
	d_o.setZ(d_o.defz);
	d_o.cursor = d_o.cursor || dd.cursor || 'auto';
	d_o._setCrs(d_o.nodrag? 'auto' : d_o.cursor);
	d_o.diaphan = d_o.diaphan || dd.diaphan || 0;
	d_o.opacity = 1.0;
	d_o.inherit = true;
};
dd.initz = function()
{
	if(!(dd && (dd.n4 || dd.n6 || dd.ie || dd.op || dd.w3c))) return;
	else if(dd.n6 || dd.ie || dd.op || dd.w3c) dd.recalc(1);
	var d_drag = (document.onmousemove == DRAG),
	d_resize = (document.onmousemove == RESIZE);
	if(dd.loadFunc) dd.loadFunc();
	if(d_drag) dd.setMovHdl(DRAG);
	else if(d_resize) dd.setMovHdl(RESIZE);
	if(d_drag || d_resize) dd.setUpHdl(DROP);
	dd.setDwnHdl(PICK);
};
dd.finlz = function()
{
	if(dd.ie && dd.elements)
	{
		dd.noRecalc = true;
		for(var d_i = dd.elements.length; d_i;)
			dd.elements[--d_i].del();
		dd.noRecalc = false;
	}
	if(dd.uloadFunc) dd.uloadFunc();
};
dd.setCe = function(d_e, d_fnc)
{
	d_fnc? document.captureEvents(d_e) : document.releaseEvents(d_e);
};
dd.setDwnHdl = function(d_x)
{
	if(document.onmousedown != d_x)
	{
		dd.downFunc = document.onmousedown;
		document.onmousedown = d_x;
		if(dd.ce) dd.setCe(Event.MOUSEDOWN, d_x);
	}
};
dd.setMovHdl = function(d_x)
{
	if(document.onmousemove != d_x)
	{
		dd.moveFunc = document.onmousemove;
		document.onmousemove = d_x;
		if(dd.ce) dd.setCe(Event.MOUSEMOVE, d_x);
	}
};
dd.setUpHdl = function(d_x)
{
	if(document.onmouseup != d_x)
	{
		dd.upFunc = document.onmouseup;
		document.onmouseup = d_x;
		if(dd.ce) dd.setCe(Event.MOUSEUP, d_x);
	}
};
dd.evt = function(d_e)
{
	this.but = (this.e = d_e || window.event).which || this.e.button || 0;
	this.button = (this.e.type == 'mousedown')? this.but
		: (dd.e && dd.e.button)? dd.e.button
		: 0;
	this.src = this.e.target || this.e.srcElement || null;
	this.src.tag = ("" + (this.src.tagName || this.src)).toLowerCase();
	this.x = dd.Int(this.e.pageX || this.e.clientX || 0);
	this.y = dd.Int(this.e.pageY || this.e.clientY || 0);
	if(dd.ie)
	{
		this.x += dd.getScrollX() - (dd.ie && !dd.iemac)*1;
		this.y += dd.getScrollY() - (dd.ie && !dd.iemac)*1;
	}
	this.modifKey = this.e.modifiers? this.e.modifiers&Event.SHIFT_MASK : (this.e.shiftKey || false);
};
dd.getEventTarget = function(d_e, d_s, d_n)
{
	d_e = d_e || window.event;
	if(d_e && (d_s = d_e.target || d_e.srcElement || null) != null)
	{
		if(null != (d_n = d_s.id || d_s.name || null))
		{
			if(d_n.indexOf("dIi15vNI1m6G") == d_n.length-12)
				return dd.elements[d_n.substring(0, d_n.length-12)] || null;
			if(d_n.indexOf("dIi15v") == d_n.length-6)
				return dd.elements[d_n.substring(0, d_n.length-6)] || null;
			return dd.elements[d_n] || null;
		}
	}
	return null;
};
dd.recalc = function(d_x)
{
	if(dd.noRecalc) return;
	for(var d_o, d_i = dd.elements.length; d_i;)
	{
		if(!(d_o = dd.elements[--d_i]).is_image && d_o.div)
		{
			dd.getWH(d_o);
			if(d_o.div.pos_rel)
			{
				dd.getPageXY(d_o.div);
				var d_dx = dd.x - d_o.x, d_dy = dd.y - d_o.y;
				d_o.defx += d_dx;
				d_o.x += d_dx;
				d_o.defy += d_dy;
				d_o.y += d_dy;
				for(var d_p, d_j = d_o.children.length; d_j;)
				{
					if(!(d_p = d_o.children[--d_j]).detached && (d_o != d_p.defparent || !(d_p.is_image && dd.getImg(d_p, d_p.oimg.name, 1))))
					{
						d_p.defx += d_dx;
						d_p.defy += d_dy;
						d_p.moveBy(d_dx, d_dy);
					}
				}
			}
		}
		else if(d_o.is_image && !dd.n4)
		{
			if(dd.n6 && d_x && !d_o.defw) d_o.resizeTo(d_o.defw = dd.getImgW(d_o.oimg), d_o.defh = dd.getImgH(d_o.oimg));
			var d_defx = d_o.defx, d_defy = d_o.defy;
			if(!(d_o.parent && d_o.parent != d_o.defparent) && (d_x || !d_o.detached || d_o.horizontal || d_o.vertical) && dd.getImg(d_o, d_o.oimg.name, 1))
				d_o.moveBy(d_o.defx-d_defx, d_o.defy-d_defy);
		}
	}
};
function WINSZ(d_x)
{
	if(d_x)
	{
		if(dd.n4)
		{
			dd.iW = innerWidth;
			dd.iH = innerHeight;
		}
		window.onresize = new Function('WINSZ();');
	}
	else if(dd.n4 && (innerWidth != dd.iW || innerHeight != dd.iH)) location.reload();
	else if(!dd.n4) setTimeout('dd.recalc()', 0xa);
}
WINSZ(1);

function DDObj(d_o, d_i)
{
	this.id = d_o;
	this.cmd = '';
	this.cpy_n = dd.getCmdVal(this, COPY);
	this.maxoffb = dd.getCmdVal(this, MAXOFFBOTTOM, 0, 1);
	this.maxoffl = dd.getCmdVal(this, MAXOFFLEFT, 0, 1);
	this.maxoffr = dd.getCmdVal(this, MAXOFFRIGHT, 0, 1);
	this.maxofft = dd.getCmdVal(this, MAXOFFTOP, 0, 1);
	var d_j = dd_cursors.length; while(d_j--)
		if(dd.getCmd(this, dd_cursors[d_j], 1)) this.cursor = dd_cursors[d_j].substring(2);
	this.clone = dd.getCmd(this, CLONE, 1);
	this.detach = dd.getCmd(this, DETACH_CHILDREN);
	this.scalable = dd.getCmd(this, SCALABLE, 1);
	this.horizontal = dd.getCmd(this, HORIZONTAL);
	this.noalt = dd.getCmd(this, NO_ALT, 1);
	this.nodrag = dd.getCmd(this, NO_DRAG);
	this.scroll = dd.getCmd(this, SCROLL, 1);
	this.resizable = dd.getCmd(this, RESIZABLE, 1);
	this.re_z = dd.getCmd(this, RESET_Z, 1);
	this.diaphan = dd.getCmd(this, TRANSPARENT, 1);
	this.vertical = dd.getCmd(this, VERTICAL);
	this.maxw = dd.getCmdVal(this, MAXWIDTH, 1, 1);
	this.minw = Math.abs(dd.getCmdVal(this, MINWIDTH, 1, 1));
	this.maxh = dd.getCmdVal(this, MAXHEIGHT, 1, 1);
	this.minh = Math.abs(dd.getCmdVal(this, MINHEIGHT, 1, 1));
	this.pickFunc = this.dragFunc = this.resizeFunc = this.dropFunc = null;

	this.name = this.id + (d_i || '');
	this.oimg = dd.getImg(this, this.id, 1);
	this.is_image = !!this.oimg;
	this.copies = new Array();
	this.children = new Array();
	this.parent = this.original = null;
	if(this.oimg)
	{
		this.id = this.name + "dIi15v";
		this.w = dd.getImgW(this.oimg);
		this.h = dd.getImgH(this.oimg);
		this.dw = this.dh = 0;
		this.defz = dd.Int(dd.getCssProp(this.oimg, 'z-index','zIndex','zIndex')) || 1;
		this.defsrc = this.src = this.oimg.src;
		this.htm = '<img name="' + this.id + 'NI1m6G"'+
			' src="' + this.oimg.src + '" '+
			'width="' + this.w + '" height="' + this.h + '">';
		this.t_htm = '<div id="' + this.id +
			'" style="position:absolute;'+
			'left:' + (this.cssx = this.x = this.defx) + 'px;'+
			'top:' + (this.cssy = this.y = this.defy) + 'px;'+
			'width:' + this.w + 'px;'+
			'height:' + this.h + 'px;">'+
			this.htm + '</div>';
	}
	else
	{
		if(!!(this.div = dd.getDiv(this.id)) && typeof this.div.style != dd_u) this.css = this.div.style;
		dd.getWH(this);
		if(this.div)
		{
			this.div.ddObj = this;
			this.div.pos_rel = ("" + (this.div.parentNode? this.div.parentNode.tagName : this.div.parentElement? this.div.parentElement.tagName : '').toLowerCase().indexOf('body') < 0);
		}
		dd.getPageXY(this.div);
		this.defx = this.x = dd.x;
		this.defy = this.y = dd.y;
		dd.getCssXY(this);
		this.defz = dd.Int(dd.getCssProp(this.div, 'z-index','zIndex','zIndex'));
	}
	this.defw = this.w || 0;
	this.defh = this.h || 0;
}
DDObj.prototype.setPickFunc = function(d_x)
{
	this.pickFunc = d_x;
};
DDObj.prototype.setDragFunc = function(d_x)
{
	this.dragFunc = d_x;
};
DDObj.prototype.setResizeFunc = function(d_x)
{
	this.resizeFunc = d_x;
};
DDObj.prototype.setDropFunc = function(d_x)
{
	this.dropFunc = d_x;
};
DDObj.prototype.moveBy = function(d_x, d_y, d_kds, d_o)
{
	if(!this.div) return;
	this.x += (d_x = dd.Int(d_x));
	this.y += (d_y = dd.Int(d_y));
	if(!d_kds || this.is_image || this.parent != this.defparent)
	{
		(d_o = this.css || this.div).left = (this.cssx += d_x) + dd.px;
		d_o.top = (this.cssy += d_y) + dd.px;
	}
	for(var d_i = this.children.length; d_i;)
	{
		if(!(d_o = this.children[--d_i]).detached) d_o.moveBy(d_x, d_y, 1);
		d_o.defx += d_x;
		d_o.defy += d_y;
	}
};

DDObj.prototype.moveTo = function(d_x, d_y)
{
	this.moveBy(dd.Int(d_x)-this.x, dd.Int(d_y)-this.y);
};
DDObj.prototype.hide = function(d_m, d_o, d_p)
{
	if(this.div && this.inherit)
	{
		d_p = this.css || this.div;
		if(d_m && !dd.n4)
		{
			this.display = dd.getCssProp(this.div, "display", "display", "display");
			if(this.oimg)
			{
				this.oimg.display = dd.getCssProp(this.oimg, "display", "display", "display");
				this.oimg.style.display = "none";
			}
			d_p.display = "none";
			dd.recalc();
		}
		else d_p.visibility = "hidden";
	}
	this.inherit = false;
	for(var d_i = this.children.length; d_i;)
		if(!(d_o = this.children[--d_i]).detached) d_o.hide(d_m);
};
DDObj.prototype.show = function(d_o, d_p)
{
	if(this.div)
	{
		d_p = this.css || this.div;
		if(d_p.display && d_p.display == "none")
		{
			d_p.display = this.display || "block";
			if(this.oimg) this.oimg.style.display = this.oimg.display || "inline";
			dd.recalc();
		}
		else d_p.visibility = "inherit";
	}
	this.inherit = true;
	for(var d_i = this.children.length; d_i;)
		if(!(d_o = this.children[--d_i]).detached) d_o.show();
};
DDObj.prototype.resizeTo = function(d_w, d_h, d_o)
{
	if(!this.div) return;
	d_w = (this.w = dd.Int(d_w))-this.dw;
	d_h = (this.h = dd.Int(d_h))-this.dh;
	if(dd.n4)
	{
		this.div.resizeTo(d_w, d_h);
		if(this.is_image)
		{
			this.write('<img src="' + this.src + '" width="' + d_w + '" height="' + d_h + '">');
			(this.nimg = this.div.document.images[0]).src = this.src;
		}
	}
	else if(typeof this.css.pixelWidth != dd_u)
	{
		this.css.pixelWidth = d_w;
		this.css.pixelHeight = d_h;
		if(this.is_image)
		{
			(d_o = this.nimg.style).pixelWidth = d_w;
			d_o.pixelHeight = d_h;
		}
	}
	else
	{
		this.css.width = d_w + dd.px;
		this.css.height = d_h + dd.px;
		if(this.is_image)
		{
			(d_o = this.nimg).width = d_w;
			d_o.height = d_h;
			if(!d_o.complete) d_o.src = this.src;
		}
	}
};
DDObj.prototype.resizeBy = function(d_dw, d_dh)
{
	this.resizeTo(this.w+dd.Int(d_dw), this.h+dd.Int(d_dh));
};
DDObj.prototype.swapImage = function(d_x, d_cp)
{
	if(!this.nimg) return;
	this.nimg.src = d_x;
	this.src = this.nimg.src;
	if(d_cp)
	{
		for(var d_i = this.copies.length; d_i;)
		{--d_i;
			this.copies[d_i].src = this.copies[d_i].nimg.src = this.nimg.src;
		}
	}
};
DDObj.prototype.setBgColor = function(d_x)
{
	if(dd.n4 && this.div) this.div.bgColor = d_x;
	else if(this.css) this.css.background = d_x;
	this.bgColor = d_x;
};
DDObj.prototype.write = function(d_x, d_o)
{
	this.text = d_x;
	if(!this.div) return;
	if(dd.n4)
	{
		(d_o = this.div.document).open();
		d_o.write(d_x);
		d_o.close();
		dd.getWH(this);
	}
	else
	{
		this.css.height = 'auto';
		this.div.innerHTML = d_x;
		if(!dd.ie4) dd.recalc();
		if(dd.ie4 || dd.n6) setTimeout('dd.recalc();', 0); // n6.0: recalc twice
	}
};
DDObj.prototype.copy = function(d_n, d_p, d_b)
{
	if(!this.oimg) return;
	d_b = (dd.ie && document.all.tags('body'))? document.all.tags('body')[0] : document.getElementsByTagName? (document.getElementsByTagName('body')[0] || dd.db) : dd.db;
	for(d_n = d_n || 1; d_n > 0; --d_n)
	{
		var d_l = this.copies.length,
		d_o = new DDObj(this.name+this.cmd, d_l+1);
		if(dd.n4)
		{
			d_o.id = (d_p = new Layer(d_o.w)).name;
			d_p.clip.height = d_o.h;
			d_p.visibility = 'show';
			(d_p = d_p.document).open();
			d_p.write(d_o.htm);
			d_p.close();
		}
		else if(d_b && d_b.insertAdjacentHTML) d_b.insertAdjacentHTML("AfterBegin", d_o.t_htm);
		else if(document.createElement && d_b && d_b.appendChild)
		{
			d_b.appendChild(d_p = document.createElement("dIi15v"));
			d_p.innerHTML = d_o.htm;
			d_p.id = d_o.id;
			d_p.style.position = 'absolute';
			d_p.style.width = d_o.w + 'px';
			d_p.style.height = d_o.h + 'px';
		}
		else if(d_b && d_b.innerHTML) d_b.innerHTML += d_o.t_htm;
		d_o.defz = this.defz+1+d_l;
		dd.addProps(d_o);
		d_o.original = this;
		dd.addElt(d_o, this);
		if(this.parent)
		{
			this.parent.addChild(d_o, this.detached);
			d_o.defparent = this.defparent;
		}
		d_o.moveTo(d_o.defx = this.defx, d_o.defy = this.defy);
		if(dd.n4) d_o.defsrc = d_o.src = this.defsrc;
		d_o.swapImage(this.src);
	}
};
DDObj.prototype.addChild = function(d_kd, detach, defp)
{
	if(typeof d_kd != "object") d_kd = dd.elements[d_kd];
	if(d_kd.parent && d_kd.parent == this || d_kd == this || !d_kd.is_image && d_kd.defparent && !defp) return;

	this.children[this.children.length] = this.children[d_kd.name] = d_kd;
	d_kd.detached = detach || 0;
	if(defp) d_kd.defparent = this;
	else if(this == d_kd.defparent && d_kd.is_image) dd.getImg(this, d_kd.oimg.name, 1);
	if(!d_kd.defparent || this != d_kd.defparent)
	{
		d_kd.defx = d_kd.x;
		d_kd.defy = d_kd.y;
	}
	if(!detach)
	{
		d_kd.defz = d_kd.defz+this.defz-(d_kd.parent? d_kd.parent.defz : 0)+(!d_kd.is_image*1);
		d_kd.setZ(d_kd.z+this.z-(d_kd.parent? d_kd.parent.z : 0)+(!d_kd.is_image*1), 1);
	}
	if(d_kd.parent) d_kd.parent.removeChild(d_kd, 1);
	d_kd.parent = this;
};
DDObj.prototype.removeChild = function(d_kd, d_newp)
{
	if(typeof d_kd != "object") d_kd = this.children[d_kd];
	var d_oc = this.children, d_nc = new Array();
	for(var d_i = 0; d_i < d_oc.length; d_i++)
		if(d_oc[d_i] != d_kd) d_nc[d_nc.length] = d_oc[d_i];
	this.children = d_nc;
	d_kd.parent = null;
	if(!d_newp)
	{
		d_kd.detached = d_kd.defp = 0;
		if(d_kd.is_image) dd.getImg(d_kd, d_kd.oimg.name, 1);
	}
};
DDObj.prototype.attachChild = function(d_kd)
{
	(d_kd = (typeof d_kd != "object")? this.children[d_kd]: d_kd).detached = 0;
	d_kd.setZ(d_kd.defz + this.z-this.defz, 1);
};
DDObj.prototype.detachChild = function(d_kd)
{
	(d_kd = (typeof d_kd != "object")? this.children[d_kd]: d_kd).detached = 1;
};
DDObj.prototype.setZ = function(d_x, d_kds, d_o)
{
	if(d_kds)
	{
		for(var d_dz = d_x-this.z, d_i = this.children.length; d_i;)
			if(!(d_o = this.children[--d_i]).detached) d_o.setZ(d_o.z+d_dz, 1);
	}
	dd.z = Math.max(dd.z, this.z = this.div? ((this.css || this.div).zIndex = d_x) : 0);
};
DDObj.prototype.maximizeZ = function()
{
	this.setZ(dd.z+1, 1);
};
DDObj.prototype._resetZ = function(d_o)
{
	if(this.re_z || dd.re_z)
	{
		this.setZ(this.defz);
		for(var d_i = this.children.length; d_i;)
			if(!(d_o = this.children[--d_i]).detached) d_o.setZ(d_o.defz);
	}
};
DDObj.prototype.setOpacity = function(d_x)
{
	this.opacity = d_x;
	this._setOpaRel(1.0, 1);
};
DDObj.prototype._setOpaRel = function(d_x, d_kd, d_y, d_o)
{
	if(this.css && (this.diaphan || d_kd))
	{
		d_y = this.opacity*d_x;
		if(typeof this.css.MozOpacity != dd_u) this.css.MozOpacity = d_y;
		else if(typeof this.css.filter != dd_u)
			this.css.filter = "Alpha(opacity="+parseInt(100*d_y)+")";
		else this.css.opacity = d_y;
		for(var d_i = this.children.length; d_i;)
			if(!(d_o = this.children[--d_i]).detached) d_o._setOpaRel(d_x, 1);
	}
};
DDObj.prototype.setCursor = function(d_x)
{
	this._setCrs(this.cursor = (d_x.indexOf('c:')+1)? d_x.substring(2) : d_x);
};
DDObj.prototype._setCrs = function(d_x)
{
	if(this.css) this.css.cursor = ((!dd.ie || dd.iemac) && d_x == 'hand')? 'pointer' : d_x;
};
DDObj.prototype.setDraggable = function(d_x)
{
	this.nodrag = !d_x*1;
	this._setCrs(d_x? this.cursor : 'auto');
};
DDObj.prototype.setResizable = function(d_x)
{
	this.resizable = d_x*1;
	if(d_x) this.scalable = 0;
};
DDObj.prototype.setScalable = function(d_x)
{
	this.scalable = d_x*1;
	if(d_x) this.resizable = 0;
};
DDObj.prototype.setHorizontal = function(d_x)
{
	this.horizontal = d_x*1;
};
DDObj.prototype.setVertical = function(d_x)
{
	this.vertical = d_x*1;
};
DDObj.prototype.getEltBelow = function(d_ret, d_x, d_y)
{
	var d_o, d_cmp = -1, d_i = dd.elements.length; while(d_i--)
	{
		d_o = dd.elements[d_i];
		d_x = d_o.x-this.w/2;
		d_y = d_o.y-this.h/2;
		if(d_o.inherit && d_o.z < this.z && this.x >= d_x && this.x <= d_x+d_o.w && this.y >= d_y && this.y <= d_y+d_o.h)
		{
			if(d_o.z > d_cmp)
			{
				d_cmp = d_o.z;
				d_ret = d_o;
			}
		}
	}
	return d_ret;
};
DDObj.prototype.del = function(d_os, d_o)
{
	var d_i, d_l;
	if(this.parent && this.parent.removeChild) this.parent.removeChild(this);
	if(this.original)
	{
		this.hide();
		if(this.original.copies)
		{
			d_os = new Array();
			for(d_l = this.original.copies.length, d_i = 0; d_i < d_l; d_i++)
				if((d_o = this.original.copies[d_i]) != this) d_os[d_o.name] = d_os[d_os.length] = d_o;
			this.original.copies = d_os;
		}
	}
	else if(this.is_image)
	{
		this.hide();
		if(this.oimg)
		{
		  if(dd.n4) this.oimg.src = this.defsrc;
		  else this.oimg.style.visibility = 'inherit';
		}
	}
	else if(this.moveTo)
	{
		if(this.css) this.css.cursor = 'default';
		this.moveTo(this.defx, this.defy);
		this.resizeTo(this.defw, this.defh);
	}
	d_os = new Array();
	for(d_l = dd.elements.length, d_i = 0; d_i < d_l; d_i++)
	{
		if((d_o = dd.elements[d_i]) != this) d_os[d_o.name] = d_os[d_o.index = d_os.length] = d_o;
		else d_o._free();
	}
	dd.elements = d_os;
	if(!dd.n4) dd.recalc();
};
DDObj.prototype._free = function()
{
	for(var d_i in this)
		this[d_i] = null;
	dd.elements[this.name] = null;
};
dd.n4RectVis = function(vis)
{
	for(var d_i = 4; d_i;)
	{--d_i;
		dd.rectI[d_i].visibility = dd.rectA[d_i].visibility = vis? 'show' : 'hide';
		if(vis) dd.rectI[d_i].zIndex = dd.rectA[d_i].zIndex = dd.z+2;
	}
};
dd.n4RectPos = function(d_o, d_x, d_y, d_w, d_h)
{
	d_o.x = d_x;
	d_o.y = d_y;
	d_o.clip.width = d_w;
	d_o.clip.height = d_h;
};
// NN4: Draw img sizing rect
dd.n4Rect = function(d_w, d_h)
{
	var d_i;
	if(!dd.rectI)
	{
		dd.rectI = new Array();
		dd.rectA = new Array();
	}
	if(!dd.rectI[0])
	{
		for(d_i = 4; d_i;)
		{
			(dd.rectI[--d_i] = new Layer(1)).bgColor = '#000000';
			(dd.rectA[d_i] = new Layer(1)).bgColor = '#ffffff';
		}
	}
	if(!dd.rectI[0].visibility || dd.rectI[0].visibility == 'hide') dd.n4RectVis(1);
	dd.obj.w = d_w;
	dd.obj.h = d_h;
	for(d_i = 4; d_i;)
	{--d_i;
		dd.n4RectPos(dd.rectI[d_i], dd.obj.x + (!(d_i-1)? (dd.obj.w-1) : 0), dd.obj.y + (!(d_i-2)? (dd.obj.h-1) : 0), d_i&1 || dd.obj.w, !(d_i&1) || dd.obj.h);
		dd.n4RectPos(dd.rectA[d_i], !(d_i-1)? dd.rectI[1].x+1 : (dd.obj.x-1), !(d_i-2)? dd.rectI[2].y+1 : (dd.obj.y-1), d_i&1 || dd.obj.w+2, !(d_i&1) || dd.obj.h+2);
	}
};
dd.reszTo = function(d_w, d_h)
{
	if(dd.n4 && dd.obj.is_image) dd.n4Rect(d_w, d_h);
	else dd.obj.resizeTo(d_w, d_h);
};
dd.embedVis = function(d_vis)
{
	var d_o = new Array('iframe', 'applet', 'embed', 'object');
	for(var d_i = d_o.length; d_i;)
	{--d_i;
		var d_p = dd.ie? document.all.tags(d_o[d_i]) : document.getElementsByTagName? document.getElementsByTagName(d_o[d_i]) : null;
		if(d_p)
		{
			for(var d_j = d_p.length; d_j;)
			{
				var d_q = d_p[--d_j];
				while(d_q.offsetParent || d_q.parentNode)
				{
					if((d_q = d_q.parentNode || d_q.offsetParent || null) == dd.obj.div)
					{
						d_p[d_j].style.visibility = d_vis;
						break;
					}
				}
			}
		}
	}
};

dd.maxOffX = function(d_x, d_y)
{
	return(
		(dd.obj.maxoffl+1 && (d_y = dd.obj.defx-dd.obj.maxoffl)-d_x > 0
		|| dd.obj.maxoffr+1 && (d_y = dd.obj.defx+dd.obj.maxoffr)-d_x < 0)? d_y
		: d_x
	);
};
dd.maxOffY = function(d_x, d_y)
{
	return(
		(dd.obj.maxofft+1 && (d_y = dd.obj.defy-dd.obj.maxofft)-d_x > 0
		|| dd.obj.maxoffb+1 && (d_y = dd.obj.defy+dd.obj.maxoffb)-d_x < 0)? d_y
		: d_x
	);
};
dd.inWndW = function(d_x, d_y)
{
	var d_wx = dd.getScrollX(),
	d_ww = dd.getWndW();
	return(
		((d_y = d_wx+2)-d_x > 0) || ((d_y = d_wx+d_ww+dd.obj.w-2)-d_x < 0)? d_y
		: d_x
	);
};
dd.inWndH = function(d_x, d_y)
{
	var d_wy = dd.getScrollY(),
	d_wh = dd.getWndH();
	return(
		((d_y = d_wy+2)-d_x > 0) || ((d_y = d_wy+d_wh+dd.obj.h-2)-d_x < 0)? d_y
		: d_x
	);
};
// These two funcs limit the size of element when mouseresized.
// Implemented 22.5.2003 by Gregor Ltolf, modified by Walter Zorn
dd.limW = function(d_w)
{
	return(
		(dd.obj.minw-d_w > 0)? dd.obj.minw
		: (dd.obj.maxw > 0 && dd.obj.maxw-d_w < 0)? dd.obj.maxw
		: d_w
	);
};
dd.limH = function(d_h)
{
	return(
		(dd.obj.minh-d_h > 0)? dd.obj.minh
		: (dd.obj.maxh > 0 && dd.obj.maxh-d_h < 0)? dd.obj.maxh
		: d_h
	);
};
// Optional autoscroll-page functionality. Courtesy Cedric Savarese.
// Modified by Walter Zorn.
function DDScroll()
{
	if(!dd.obj || !dd.obj.scroll && !dd.scroll || dd.ie4 || dd.whratio)
	{
		dd.scrx = dd.scry = 0;
		return;
	}
	var d_bnd = 0x1c,
	d_wx = dd.getScrollX(), d_wy = dd.getScrollY();
	if(dd.msmoved)
	{
		var d_ww = dd.getWndW(), d_wh = dd.getWndH(), d_y;
		dd.scrx = ((d_y = dd.e.x-d_ww-d_wx+d_bnd) > 0)? (d_y>>=2)*d_y
			: ((d_y = d_wx+d_bnd-dd.e.x) > 0)? -(d_y>>=2)*d_y
			: 0;
		dd.scry = ((d_y = dd.e.y-d_wh-d_wy+d_bnd) > 0)? (d_y>>=2)*d_y
			: ((d_y = d_wy+d_bnd-dd.e.y) > 0)? -(d_y>>=2)*d_y
			: 0;
	}
	if(dd.scrx || dd.scry)
	{
		window.scrollTo(
			d_wx + (dd.scrx = dd.obj.is_resized? dd.limW(dd.obj.w+dd.scrx)-dd.obj.w : dd.obj.vertical? 0 : (dd.maxOffX(dd.obj.x+dd.scrx)-dd.obj.x)),
			d_wy + (dd.scry = dd.obj.is_resized? dd.limH(dd.obj.h+dd.scry)-dd.obj.h : dd.obj.horizontal? 0 : (dd.maxOffY(dd.obj.y+dd.scry)-dd.obj.y))
		);
		dd.obj.is_dragged? dd.obj.moveTo(dd.obj.x+dd.getScrollX()-d_wx, dd.obj.y+dd.getScrollY()-d_wy)
			: dd.reszTo(dd.obj.w+dd.getScrollX()-d_wx, dd.obj.h+dd.getScrollY()-d_wy);
	}
	dd.msmoved = 0;
	window.setTimeout('DDScroll()', 0x33);
}
function PICK(d_ev)
{
	dd.e = new dd.evt(d_ev);
	if(dd.e.x >= dd.getWndW()+dd.getScrollX() || dd.e.y >= dd.getWndH()+dd.getScrollY()) return true; // on scrollbar
	for(var d_o, d_t, d_cmp = -1, d_i = dd.elements.length; d_i;)
	{
		d_o = dd.elements[--d_i];
		if(dd.n4 && dd.e.but > 1 && dd.e.src == d_o.oimg && !d_o.clone) return false;
		if(d_o.inherit && dd.e.but <= 1 && dd.e.x >= d_o.x && dd.e.x <= d_o.x+d_o.w && dd.e.y >= d_o.y && dd.e.y <= d_o.y+d_o.h)
		{
			if(d_o.z > d_cmp && (d_t = dd.e.src.tag).indexOf('inpu') < 0 && d_t.indexOf('texta') < 0 && d_t.indexOf('sele') < 0 && d_t.indexOf('opti') < 0 && d_t.indexOf('scrol') < 0)
			{
				d_cmp = d_o.z;
				dd.obj = d_o;
			}
		}
	}
	if(dd.obj)
	{
		if(dd.obj.nodrag) dd.obj = null;
		else
		{
			dd.e.e.cancelBubble = true;
			var d_rsz = dd.e.modifKey && (dd.obj.resizable || dd.obj.scalable);
			if(dd.op)
			{
				(d_o = document.getElementById('OpBlUr')).style.pixelLeft = dd.e.x;
				d_o.style.pixelTop = dd.e.y;
				(d_o = d_o.children[0].children[0]).focus();
				d_o.blur();
			}
			else if(dd.ie && !dd.ie4)
			{
				if(document.selection && document.selection.empty) document.selection.empty();
				dd.db.onselectstart = function()
				{
					event.returnValue = false;
				};
			}
			if(d_rsz)
			{
				dd.obj._setCrs('se-resize');
				dd.obj.is_resized = 1;
				dd.whratio = dd.obj.scalable? dd.obj.defw/dd.obj.defh : 0;
				if(dd.ie)
				{
					if(dd.ie4)
					{
						window.dd_x = dd.getScrollX();
						window.dd_y = dd.getScrollY();
					}
					setTimeout(
						'if(dd.obj && document.selection && document.selection.empty)'+
						'{'+
							'document.selection.empty();'+
							'if(dd.ie4) window.scrollTo(window.dd_x, window.dd_y);'+
						'}'
					,0);
				}
				dd.setMovHdl(RESIZE);
				dd.reszTo(dd.obj.w, dd.obj.h);
			}
			else
			{
				dd.obj.is_dragged = 1;
				dd.setMovHdl(DRAG);
			}
			dd.setUpHdl(DROP);
			dd.embedVis('hidden');
			dd.obj._setOpaRel(0.7);
			dd.obj.maximizeZ();
			dd.ofx = dd.obj.x+dd.obj.w-dd.e.x;
			dd.ofy = dd.obj.y+dd.obj.h-dd.e.y;
			if(window.my_PickFunc) my_PickFunc();
			if(dd.obj.pickFunc) dd.obj.pickFunc();
			DDScroll();
			return !(
				dd.obj.is_resized
				|| dd.n4 && dd.obj.is_image
				|| dd.n6 || dd.w3c
			);
		}
	}
	if(dd.downFunc) return dd.downFunc(d_ev);
	return true;
}
function DRAG(d_ev)
{
	if(!dd.obj || !dd.obj.inherit) return true;
	if(dd.ie4 || dd.w3c || dd.n6 || dd.obj.children.length > 0xf)
	{
		if(dd.wait) return false;
		dd.wait = 1;
		setTimeout('dd.wait = 0;', dd.tWait);
	}
	dd.e = new dd.evt(d_ev);
	if(dd.ie && !dd.e.but)
	{
		DROP(d_ev);
		return true;
	}
	dd.msmoved = 1;
	dd.obj.moveTo(
		dd.obj.vertical? dd.obj.x : dd.maxOffX(dd.inWndW(dd.ofx+dd.e.x)-dd.obj.w),
		dd.obj.horizontal? dd.obj.y : dd.maxOffY(dd.inWndH(dd.ofy+dd.e.y)-dd.obj.h)
	);

	if(window.my_DragFunc) my_DragFunc();
	if(dd.obj.dragFunc) dd.obj.dragFunc();
	if(dd.moveFunc) return dd.moveFunc(d_ev);
	return false;
}
function RESIZE(d_ev)
{
	if(!dd.obj || !dd.obj.inherit) return true;
	if(dd.wait) return false;
	dd.wait = 1;
	setTimeout('dd.wait = 0;', dd.tWait);
	dd.e = new dd.evt(d_ev);
	if(dd.ie && !dd.e.but)
	{
		DROP(d_ev);
		return true;
	}
	dd.msmoved = 1;
	var d_w = dd.limW(dd.inWndW(dd.ofx+dd.e.x)-dd.obj.x), d_h;
	if(!dd.whratio) d_h = dd.limH(dd.inWndH(dd.ofy+dd.e.y)-dd.obj.y);
	else
	{
		d_h = dd.limH(dd.inWndH(Math.round(d_w/dd.whratio)+dd.obj.y)-dd.obj.y);
		d_w = Math.round(d_h*dd.whratio);
	}
	dd.reszTo(d_w, d_h);
	if(window.my_ResizeFunc) my_ResizeFunc();
	if(dd.obj.resizeFunc) dd.obj.resizeFunc();
	if(dd.moveFunc) return dd.moveFunc(d_ev);
	return false;
}
function DROP(d_ev)
{
	if(dd.obj)
	{
		if(dd.obj.is_dragged)
		{
			if(!dd.obj.is_image) dd.getWH(dd.obj);
		}
		else if(dd.n4)
		{
			if(dd.obj.is_image)
			{
				dd.n4RectVis(0);
				dd.obj.resizeTo(dd.obj.w, dd.obj.h);
			}
		}
		if(!dd.n4 || !dd.obj.is_image) dd.recalc();
		dd.setMovHdl(dd.moveFunc);
		dd.setUpHdl(dd.upFunc);
		if(dd.db) dd.db.onselectstart = null;
		dd.obj._setOpaRel(1.0);
		dd.obj._setCrs(dd.obj.cursor);
		dd.embedVis('inherit');
		dd.obj._resetZ();
		dd.e = new dd.evt(d_ev);
		if(window.my_DropFunc) my_DropFunc();
		if(dd.obj.dropFunc) dd.obj.dropFunc();
		dd.msmoved = dd.obj.is_dragged = dd.obj.is_resized = dd.whratio = 0;
		dd.obj = null;
	}
	dd.setDwnHdl(PICK);
}
function SET_DHTML()
{
	var d_a = arguments, d_ai, d_htm = '', d_o, d_i = d_a.length;
	while(d_i)
	{
		if(!(d_ai = d_a[--d_i]).indexOf('c:')) dd.cursor = d_ai.substring(2);
		else if(d_ai == NO_ALT) dd.noalt = 1;
		else if(d_ai == SCROLL) dd.scroll = 1;
		else if(d_ai == RESET_Z) dd.re_z = 1;
		else if(d_ai == RESIZABLE) dd.resizable = 1;
		else if(d_ai == SCALABLE) dd.scalable = 1;
		else if(d_ai == TRANSPARENT) dd.diaphan = 1;
		else
		{
			d_o = new DDObj(d_ai);
			dd.addElt(d_o);
			d_htm += d_o.t_htm || '';
			if(d_o.oimg && d_o.cpy_n)
			{
				for(var d_l = d_o.cpy_n, d_j = 0; d_j < d_l;)
				{
					var d_p = new DDObj(d_o.name+d_o.cmd, ++d_j);
					dd.addElt(d_p, d_o);
					d_p.defz = d_o.defz+d_j;
					d_p.original = d_o;
					d_htm += d_p.t_htm;
				}
			}
		}
	}
	if (dd.n4 || dd.n6 || dd.ie || dd.op || dd.w3c) document.write(
		(dd.n4? '<div style="position:absolute;"><\/div>\n'
		: (dd.op && !dd.op6)? '<div id="OpBlUr" style="position:absolute;visibility:hidden;width:0px;height:0px;"><form><input type="text" style="width:0px;height:0px;"><\/form><\/div>'
		: '') + d_htm
	);
	dd.z = 0x33;
	for(d_i = dd.elements.length; d_i;)
	{
		dd.addProps(d_o = dd.elements[--d_i]);
		if(d_o.is_image && !d_o.original && !d_o.clone)
			dd.n4? d_o.oimg.src = spacer : d_o.oimg.style.visibility = 'hidden';
	}
	dd.mkWzDom();
	if(window.onload) dd.loadFunc = window.onload;
	if(window.onunload) dd.uloadFunc = window.onunload;
	window.onload = dd.initz;
	window.onunload = dd.finlz;
	dd.setDwnHdl(PICK);
}
function ADD_DHTML() // layers only!
{
	var d_a = arguments, d_o, d_i = d_a.length; while(d_i)
	{
		d_o = new DDObj(d_a[--d_i]);
		dd.addElt(d_o);
		dd.addProps(d_o);
	}
	dd.mkWzDom();
}




////////////////////////////////////////////////////////////
// If not needed, all code below this line may be removed


// For backward compatibility
dd.d = document;			// < v. 2.72
var RESET_ZINDEX = RESET_Z; // < 3.44
var KEYDOWN_RESIZE = RESIZABLE; // < 4.43
var CURSOR_POINTER = CURSOR_HAND; // < 4.44
var NO_SCROLL = '';		 // < v. 4.49




////////////////////////////////////////////////////////////
// FUNCTIONS FOR EXTENDED SCRIPTING
// Use these for your own extensions,
// or to call functions defined elsewhere



/* my_PickFunc IS AUTOMATICALLY CALLED WHEN AN ITEM STARTS TO BE DRAGGED.
The following objects/properties are accessible from here:

- dd.e: current mouse event
- dd.e.property: access to a property of the current mouse event.
  Mostly requested properties:
  - dd.e.x: document-related x co-ordinate
  - dd.e.y: document-related y co-ord
  - dd.e.src: target of mouse event (not identical with the drag drop object itself).
  - dd.e.button: currently pressed mouse button. Left button: dd.e.button <= 1

- dd.obj: reference to currently dragged item.
- dd.obj.property: access to any property of that item.
- dd.obj.method(): for example dd.obj.resizeTo() or dd.obj.swapImage() .
  Mostly requested properties:
	- dd.obj.name: image name or layer ID passed to SET_DHTML();
	- dd.obj.x and dd.obj.y: co-ordinates;
	- dd.obj.w and dd.obj.h: size;
	- dd.obj.is_dragged: 1 while item is dragged, else 0;
	- dd.obj.is_resized: 1 while item is resized, i.e. if <ctrl> or <shift> is pressed, else 0

For more properties and details, visit the API documentation
at http://www.walterzorn.com/dragdrop/api_e.htm (english) or
http://www.walterzorn.de/dragdrop/api.htm (german)	*/
function my_PickFunc()
{
}




/* my_DragFunc IS CALLED WHILE AN ITEM IS DRAGGED
See the description of my_PickFunc above for what's accessible from here. */
function my_DragFunc()
{
	//window.status = 'dd.elements.' + dd.obj.name + '.x  = ' + dd.obj.x + '	 dd.elements.' + dd.obj.name + '.y = ' + dd.obj.y;
}




/* my_ResizeFunc IS CALLED WHILE AN ITEM IS RESIZED
See the description of my_PickFunc above for what's accessible from here. */
function my_ResizeFunc()
{
	//window.status = 'dd.elements.' + dd.obj.name + '.w  = ' + dd.obj.w + '	 dd.elements.' + dd.obj.name + '.h = ' + dd.obj.h;
}




/* THIS ONE IS CALLED ONCE AN ITEM IS DROPPED
See the description of my_PickFunc for what's accessible from here.
Here may be investigated, for example, what's the name (dd.obj.name)
of the dropped item, and where (dd.obj.x, dd.obj.y) it has been dropped... */
function my_DropFunc()
{
}/*yahoo-dom-event.js*/

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var D={},B=arguments;for(var C=0,A=B.length;C<A;C=C+1){YAHOO.lang.augmentObject(D,B[C],true);}return D;},later:function(H,B,I,D,E){H=H||0;B=B||{};var C=I,G=D,F,A;if(YAHOO.lang.isString(I)){C=B[I];}if(!C){throw new TypeError("method undefined");}if(!YAHOO.lang.isArray(G)){G=[D];}F=function(){C.apply(B,G);};A=(E)?setInterval(F,H):setTimeout(F,H);return{interval:E,cancel:function(){if(this.interval){clearInterval(A);}else{clearTimeout(A);}}};},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.5.0",build:"895"});(function(){var B=YAHOO.util,K,I,J={},F={},M=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,L=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i};var N=function(P){if(!E.HYPHEN.test(P)){return P;}if(J[P]){return J[P];}var Q=P;while(E.HYPHEN.exec(Q)){Q=Q.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}J[P]=Q;return Q;};var O=function(Q){var P=F[Q];if(!P){P=new RegExp("(?:^|\\s+)"+Q+"(?:\\s+|$)");F[Q]=P;}return P;};if(M.defaultView&&M.defaultView.getComputedStyle){K=function(P,S){var R=null;if(S=="float"){S="cssFloat";}var Q=M.defaultView.getComputedStyle(P,"");if(Q){R=Q[N(S)];}return P.style[S]||R;};}else{if(M.documentElement.currentStyle&&G){K=function(P,R){switch(N(R)){case"opacity":var T=100;try{T=P.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(S){try{T=P.filters("alpha").opacity;}catch(S){}}return T/100;case"float":R="styleFloat";default:var Q=P.currentStyle?P.currentStyle[R]:null;return(P.style[R]||Q);}};}else{K=function(P,Q){return P.style[Q];};}}if(G){I=function(P,Q,R){switch(Q){case"opacity":if(YAHOO.lang.isString(P.style.filter)){P.style.filter="alpha(opacity="+R*100+")";if(!P.currentStyle||!P.currentStyle.hasLayout){P.style.zoom=1;}}break;case"float":Q="styleFloat";default:P.style[Q]=R;}};}else{I=function(P,Q,R){if(Q=="float"){Q="cssFloat";}P.style[Q]=R;};}var D=function(P,Q){return P&&P.nodeType==1&&(!Q||Q(P));};YAHOO.util.Dom={get:function(R){if(R&&(R.nodeType||R.item)){return R;}if(YAHOO.lang.isString(R)||!R){return M.getElementById(R);}if(R.length!==undefined){var S=[];for(var Q=0,P=R.length;Q<P;++Q){S[S.length]=B.Dom.get(R[Q]);}return S;}return R;},getStyle:function(P,R){R=N(R);var Q=function(S){return K(S,R);};return B.Dom.batch(P,Q,B.Dom,true);},setStyle:function(P,R,S){R=N(R);var Q=function(T){I(T,R,S);};B.Dom.batch(P,Q,B.Dom,true);},getXY:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=R.ownerDocument.body){return false;}return H(R);};return B.Dom.batch(P,Q,B.Dom,true);},getX:function(P){var Q=function(R){return B.Dom.getXY(R)[0];};return B.Dom.batch(P,Q,B.Dom,true);},getY:function(P){var Q=function(R){return B.Dom.getXY(R)[1];};return B.Dom.batch(P,Q,B.Dom,true);},setXY:function(P,S,R){var Q=function(V){var U=this.getStyle(V,"position");if(U=="static"){this.setStyle(V,"position","relative");U="relative";}var X=this.getXY(V);if(X===false){return false;}var W=[parseInt(this.getStyle(V,"left"),10),parseInt(this.getStyle(V,"top"),10)];if(isNaN(W[0])){W[0]=(U=="relative")?0:V.offsetLeft;}if(isNaN(W[1])){W[1]=(U=="relative")?0:V.offsetTop;}if(S[0]!==null){V.style.left=S[0]-X[0]+W[0]+"px";}if(S[1]!==null){V.style.top=S[1]-X[1]+W[1]+"px";}if(!R){var T=this.getXY(V);if((S[0]!==null&&T[0]!=S[0])||(S[1]!==null&&T[1]!=S[1])){this.setXY(V,S,true);}}};B.Dom.batch(P,Q,B.Dom,true);},setX:function(Q,P){B.Dom.setXY(Q,[P,null]);},setY:function(P,Q){B.Dom.setXY(P,[null,Q]);},getRegion:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=M.body){return false;}var S=B.Region.getRegion(R);return S;};return B.Dom.batch(P,Q,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(T,X,U,V){X=X||"*";U=(U)?B.Dom.get(U):null||M;if(!U){return[];}var Q=[],P=U.getElementsByTagName(X),W=O(T);for(var R=0,S=P.length;R<S;++R){if(W.test(P[R].className)){Q[Q.length]=P[R];if(V){V.call(P[R],P[R]);}}}return Q;},hasClass:function(R,Q){var P=O(Q);var S=function(T){return P.test(T.className);};return B.Dom.batch(R,S,B.Dom,true);},addClass:function(Q,P){var R=function(S){if(this.hasClass(S,P)){return false;}S.className=YAHOO.lang.trim([S.className,P].join(" "));return true;};return B.Dom.batch(Q,R,B.Dom,true);},removeClass:function(R,Q){var P=O(Q);var S=function(T){if(!Q||!this.hasClass(T,Q)){return false;}var U=T.className;T.className=U.replace(P," ");if(this.hasClass(T,Q)){this.removeClass(T,Q);}T.className=YAHOO.lang.trim(T.className);return true;};return B.Dom.batch(R,S,B.Dom,true);},replaceClass:function(S,Q,P){if(!P||Q===P){return false;}var R=O(Q);var T=function(U){if(!this.hasClass(U,Q)){this.addClass(U,P);return true;}U.className=U.className.replace(R," "+P+" ");if(this.hasClass(U,Q)){this.replaceClass(U,Q,P);}U.className=YAHOO.lang.trim(U.className);return true;};return B.Dom.batch(S,T,B.Dom,true);},generateId:function(P,R){R=R||"yui-gen";var Q=function(S){if(S&&S.id){return S.id;}var T=R+YAHOO.env._id_counter++;if(S){S.id=T;}return T;};return B.Dom.batch(P,Q,B.Dom,true)||Q.apply(B.Dom,arguments);},isAncestor:function(P,Q){P=B.Dom.get(P);Q=B.Dom.get(Q);if(!P||!Q){return false;}if(P.contains&&Q.nodeType&&!L){return P.contains(Q);}else{if(P.compareDocumentPosition&&Q.nodeType){return !!(P.compareDocumentPosition(Q)&16);}else{if(Q.nodeType){return !!this.getAncestorBy(Q,function(R){return R==P;});}}}return false;},inDocument:function(P){return this.isAncestor(M.documentElement,P);},getElementsBy:function(W,Q,R,T){Q=Q||"*";R=(R)?B.Dom.get(R):null||M;if(!R){return[];}var S=[],V=R.getElementsByTagName(Q);for(var U=0,P=V.length;U<P;++U){if(W(V[U])){S[S.length]=V[U];if(T){T(V[U]);}}}return S;},batch:function(T,W,V,R){T=(T&&(T.tagName||T.item))?T:B.Dom.get(T);if(!T||!W){return false;}var S=(R)?V:window;if(T.tagName||T.length===undefined){return W.call(S,T,V);}var U=[];for(var Q=0,P=T.length;Q<P;++Q){U[U.length]=W.call(S,T[Q],V);}return U;},getDocumentHeight:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollHeight:M.documentElement.scrollHeight;var P=Math.max(Q,B.Dom.getViewportHeight());return P;},getDocumentWidth:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollWidth:M.documentElement.scrollWidth;var P=Math.max(Q,B.Dom.getViewportWidth());return P;},getViewportHeight:function(){var P=self.innerHeight;var Q=M.compatMode;if((Q||G)&&!C){P=(Q=="CSS1Compat")?M.documentElement.clientHeight:M.body.clientHeight;
}return P;},getViewportWidth:function(){var P=self.innerWidth;var Q=M.compatMode;if(Q||G){P=(Q=="CSS1Compat")?M.documentElement.clientWidth:M.body.clientWidth;}return P;},getAncestorBy:function(P,Q){while(P=P.parentNode){if(D(P,Q)){return P;}}return null;},getAncestorByClassName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return B.Dom.hasClass(S,P);};return B.Dom.getAncestorBy(Q,R);},getAncestorByTagName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return S.tagName&&S.tagName.toUpperCase()==P.toUpperCase();};return B.Dom.getAncestorBy(Q,R);},getPreviousSiblingBy:function(P,Q){while(P){P=P.previousSibling;if(D(P,Q)){return P;}}return null;},getPreviousSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getPreviousSiblingBy(P);},getNextSiblingBy:function(P,Q){while(P){P=P.nextSibling;if(D(P,Q)){return P;}}return null;},getNextSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getNextSiblingBy(P);},getFirstChildBy:function(P,R){var Q=(D(P.firstChild,R))?P.firstChild:null;return Q||B.Dom.getNextSiblingBy(P.firstChild,R);},getFirstChild:function(P,Q){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getFirstChildBy(P);},getLastChildBy:function(P,R){if(!P){return null;}var Q=(D(P.lastChild,R))?P.lastChild:null;return Q||B.Dom.getPreviousSiblingBy(P.lastChild,R);},getLastChild:function(P){P=B.Dom.get(P);return B.Dom.getLastChildBy(P);},getChildrenBy:function(Q,S){var R=B.Dom.getFirstChildBy(Q,S);var P=R?[R]:[];B.Dom.getNextSiblingBy(R,function(T){if(!S||S(T)){P[P.length]=T;}return false;});return P;},getChildren:function(P){P=B.Dom.get(P);if(!P){}return B.Dom.getChildrenBy(P);},getDocumentScrollLeft:function(P){P=P||M;return Math.max(P.documentElement.scrollLeft,P.body.scrollLeft);},getDocumentScrollTop:function(P){P=P||M;return Math.max(P.documentElement.scrollTop,P.body.scrollTop);},insertBefore:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}return P.parentNode.insertBefore(Q,P);},insertAfter:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}if(P.nextSibling){return P.parentNode.insertBefore(Q,P.nextSibling);}else{return P.parentNode.appendChild(Q);}},getClientRegion:function(){var R=B.Dom.getDocumentScrollTop(),Q=B.Dom.getDocumentScrollLeft(),S=B.Dom.getViewportWidth()+Q,P=B.Dom.getViewportHeight()+R;return new B.Region(R,S,P,Q);}};var H=function(){if(M.documentElement.getBoundingClientRect){return function(Q){var R=Q.getBoundingClientRect();var P=Q.ownerDocument;return[R.left+B.Dom.getDocumentScrollLeft(P),R.top+B.Dom.getDocumentScrollTop(P)];};}else{return function(R){var S=[R.offsetLeft,R.offsetTop];var Q=R.offsetParent;var P=(L&&B.Dom.getStyle(R,"position")=="absolute"&&R.offsetParent==R.ownerDocument.body);if(Q!=R){while(Q){S[0]+=Q.offsetLeft;S[1]+=Q.offsetTop;if(!P&&L&&B.Dom.getStyle(Q,"position")=="absolute"){P=true;}Q=Q.offsetParent;}}if(P){S[0]-=R.ownerDocument.body.offsetLeft;S[1]-=R.ownerDocument.body.offsetTop;}Q=R.parentNode;while(Q.tagName&&!E.ROOT_TAG.test(Q.tagName)){if(B.Dom.getStyle(Q,"display").search(/^inline|table-row.*$/i)){S[0]-=Q.scrollLeft;S[1]-=Q.scrollTop;}Q=Q.parentNode;}return S;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.5.0",build:"895"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var D=this.subscribers.length;if(!D&&this.silent){return true;}var H=[],F=true,C,I=false;for(C=0;C<arguments.length;++C){H.push(arguments[C]);}if(!this.silent){}for(C=0;C<D;++C){var L=this.subscribers[C];if(!L){I=true;}else{if(!this.silent){}var K=L.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var A=null;if(H.length>0){A=H[0];}try{F=L.fn.call(K,A,L.obj);}catch(E){this.lastError=E;}}else{try{F=L.fn.call(K,this.type,H,L.obj);}catch(G){this.lastError=G;}}if(false===F){if(!this.silent){}return false;}}}if(I){var J=[],B=this.subscribers;for(C=0,D=B.length;C<D;C=C+1){J.push(B[C]);}this.subscribers=J;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M];for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=0,R=L.length;O<R;++O){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=0,R=J.length;O<R;O++){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J[O]=null;return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M[O]=null;break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I[Q]=null;return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;
},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;++M){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!this.DOMReady){this.startInterval();return false;}}this.locked=true;var P=!H;if(!P){P=(C>0);}var O=[];var Q=function(S,T){var R=S;if(T.override){if(T.override===true){R=T.obj;}else{R=T.override;}}T.fn.call(R,T.obj);};var L,K,N,M;for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&!N.checkReady){M=this.getEl(N.id);if(M){Q(M,N);F[L]=null;}else{O.push(N);}}}for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&N.checkReady){M=this.getEl(N.id);if(M){if(H||M.nextSibling){Q(M,N);F[L]=null;}}else{O.push(N);}}}C=(O.length===0)?0:C-1;if(P){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=0,K=Q.length;N<K;++N){var L=Q[N];this.removeListener(M,L.type,L.fn,L.index);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T&&T.length>0){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var Q=YAHOO.util.Event,O,N,L,K,M;for(O=0,K=J.length;O<K;++O){L=J[O];if(L){var P=window;if(L[Q.ADJ_SCOPE]){if(L[Q.ADJ_SCOPE]===true){P=L[Q.UNLOAD_OBJ];}else{P=L[Q.ADJ_SCOPE];}}L[Q.FN].call(P,Q.getEvent(R,L[Q.EL]),L[Q.UNLOAD_OBJ]);J[O]=null;L=null;P=null;}}J=null;if(I&&I.length>0){N=I.length;while(N){M=N-1;L=I[M];if(L){Q.removeListener(L[Q.EL],L[Q.TYPE],L[Q.FN],M);}N--;}L=null;}G=null;Q._simpleRemove(window,"unload",Q._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;
/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);EU._dri=setInterval(function(){var n=document.createElement("p");try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){n=null;}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);
var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.5.0",build:"895"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.5.0", build: "895"});/*container_core-min.js*/

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
(function(){YAHOO.util.Config=function(D){if(D){this.init(D);}};var B=YAHOO.lang,C=YAHOO.util.CustomEvent,A=YAHOO.util.Config;A.CONFIG_CHANGED_EVENT="configChanged";A.BOOLEAN_TYPE="boolean";A.prototype={owner:null,queueInProgress:false,config:null,initialConfig:null,eventQueue:null,configChangedEvent:null,init:function(D){this.owner=D;this.configChangedEvent=this.createEvent(A.CONFIG_CHANGED_EVENT);this.configChangedEvent.signature=C.LIST;this.queueInProgress=false;this.config={};this.initialConfig={};this.eventQueue=[];},checkBoolean:function(D){return(typeof D==A.BOOLEAN_TYPE);},checkNumber:function(D){return(!isNaN(D));},fireEvent:function(D,F){var E=this.config[D];if(E&&E.event){E.event.fire(F);}},addProperty:function(E,D){E=E.toLowerCase();this.config[E]=D;D.event=this.createEvent(E,{scope:this.owner});D.event.signature=C.LIST;D.key=E;if(D.handler){D.event.subscribe(D.handler,this.owner);}this.setProperty(E,D.value,true);if(!D.suppressEvent){this.queueProperty(E,D.value);}},getConfig:function(){var D={},F,E;for(F in this.config){E=this.config[F];if(E&&E.event){D[F]=E.value;}}return D;},getProperty:function(D){var E=this.config[D.toLowerCase()];if(E&&E.event){return E.value;}else{return undefined;}},resetProperty:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event){if(this.initialConfig[D]&&!B.isUndefined(this.initialConfig[D])){this.setProperty(D,this.initialConfig[D]);return true;}}else{return false;}},setProperty:function(E,G,D){var F;E=E.toLowerCase();if(this.queueInProgress&&!D){this.queueProperty(E,G);return true;}else{F=this.config[E];if(F&&F.event){if(F.validator&&!F.validator(G)){return false;}else{F.value=G;if(!D){this.fireEvent(E,G);this.configChangedEvent.fire([E,G]);}return true;}}else{return false;}}},queueProperty:function(S,P){S=S.toLowerCase();var R=this.config[S],K=false,J,G,H,I,O,Q,F,M,N,D,L,T,E;if(R&&R.event){if(!B.isUndefined(P)&&R.validator&&!R.validator(P)){return false;}else{if(!B.isUndefined(P)){R.value=P;}else{P=R.value;}K=false;J=this.eventQueue.length;for(L=0;L<J;L++){G=this.eventQueue[L];if(G){H=G[0];I=G[1];if(H==S){this.eventQueue[L]=null;this.eventQueue.push([S,(!B.isUndefined(P)?P:I)]);K=true;break;}}}if(!K&&!B.isUndefined(P)){this.eventQueue.push([S,P]);}}if(R.supercedes){O=R.supercedes.length;for(T=0;T<O;T++){Q=R.supercedes[T];F=this.eventQueue.length;for(E=0;E<F;E++){M=this.eventQueue[E];if(M){N=M[0];D=M[1];if(N==Q.toLowerCase()){this.eventQueue.push([N,D]);this.eventQueue[E]=null;break;}}}}}return true;}else{return false;}},refireEvent:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event&&!B.isUndefined(E.value)){if(this.queueInProgress){this.queueProperty(D);}else{this.fireEvent(D,E.value);}}},applyConfig:function(D,G){var F,E;if(G){E={};for(F in D){if(B.hasOwnProperty(D,F)){E[F.toLowerCase()]=D[F];}}this.initialConfig=E;}for(F in D){if(B.hasOwnProperty(D,F)){this.queueProperty(F,D[F]);}}},refresh:function(){var D;for(D in this.config){this.refireEvent(D);}},fireQueue:function(){var E,H,D,G,F;this.queueInProgress=true;for(E=0;E<this.eventQueue.length;E++){H=this.eventQueue[E];if(H){D=H[0];G=H[1];F=this.config[D];F.value=G;this.fireEvent(D,G);}}this.queueInProgress=false;this.eventQueue=[];},subscribeToConfigEvent:function(E,F,H,D){var G=this.config[E.toLowerCase()];if(G&&G.event){if(!A.alreadySubscribed(G.event,F,H)){G.event.subscribe(F,H,D);}return true;}else{return false;}},unsubscribeFromConfigEvent:function(D,E,G){var F=this.config[D.toLowerCase()];if(F&&F.event){return F.event.unsubscribe(E,G);}else{return false;}},toString:function(){var D="Config";if(this.owner){D+=" ["+this.owner.toString()+"]";}return D;},outputEventQueue:function(){var D="",G,E,F=this.eventQueue.length;for(E=0;E<F;E++){G=this.eventQueue[E];if(G){D+=G[0]+"="+G[1]+", ";}}return D;},destroy:function(){var E=this.config,D,F;for(D in E){if(B.hasOwnProperty(E,D)){F=E[D];F.event.unsubscribeAll();F.event=null;}}this.configChangedEvent.unsubscribeAll();this.configChangedEvent=null;this.owner=null;this.config=null;this.initialConfig=null;this.eventQueue=null;}};A.alreadySubscribed=function(E,H,I){var F=E.subscribers.length,D,G;if(F>0){G=F-1;do{D=E.subscribers[G];if(D&&D.obj==I&&D.fn==H){return true;}}while(G--);}return false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Module=function(Q,P){if(Q){this.init(Q,P);}else{}};var F=YAHOO.util.Dom,D=YAHOO.util.Config,M=YAHOO.util.Event,L=YAHOO.util.CustomEvent,G=YAHOO.widget.Module,H,O,N,E,A={"BEFORE_INIT":"beforeInit","INIT":"init","APPEND":"append","BEFORE_RENDER":"beforeRender","RENDER":"render","CHANGE_HEADER":"changeHeader","CHANGE_BODY":"changeBody","CHANGE_FOOTER":"changeFooter","CHANGE_CONTENT":"changeContent","DESTORY":"destroy","BEFORE_SHOW":"beforeShow","SHOW":"show","BEFORE_HIDE":"beforeHide","HIDE":"hide"},I={"VISIBLE":{key:"visible",value:true,validator:YAHOO.lang.isBoolean},"EFFECT":{key:"effect",suppressEvent:true,supercedes:["visible"]},"MONITOR_RESIZE":{key:"monitorresize",value:true},"APPEND_TO_DOCUMENT_BODY":{key:"appendtodocumentbody",value:false}};G.IMG_ROOT=null;G.IMG_ROOT_SSL=null;G.CSS_MODULE="yui-module";G.CSS_HEADER="hd";G.CSS_BODY="bd";G.CSS_FOOTER="ft";G.RESIZE_MONITOR_SECURE_URL="javascript:false;";G.textResizeEvent=new L("textResize");function K(){if(!H){H=document.createElement("div");H.innerHTML=("<div class=\""+G.CSS_HEADER+"\"></div><div class=\""+G.CSS_BODY+"\"></div><div class=\""+G.CSS_FOOTER+"\"></div>");O=H.firstChild;N=O.nextSibling;E=N.nextSibling;}return H;}function J(){if(!O){K();}return(O.cloneNode(false));}function B(){if(!N){K();}return(N.cloneNode(false));}function C(){if(!E){K();}return(E.cloneNode(false));}G.prototype={constructor:G,element:null,header:null,body:null,footer:null,id:null,imageRoot:G.IMG_ROOT,initEvents:function(){var P=L.LIST;this.beforeInitEvent=this.createEvent(A.BEFORE_INIT);this.beforeInitEvent.signature=P;this.initEvent=this.createEvent(A.INIT);this.initEvent.signature=P;this.appendEvent=this.createEvent(A.APPEND);
this.appendEvent.signature=P;this.beforeRenderEvent=this.createEvent(A.BEFORE_RENDER);this.beforeRenderEvent.signature=P;this.renderEvent=this.createEvent(A.RENDER);this.renderEvent.signature=P;this.changeHeaderEvent=this.createEvent(A.CHANGE_HEADER);this.changeHeaderEvent.signature=P;this.changeBodyEvent=this.createEvent(A.CHANGE_BODY);this.changeBodyEvent.signature=P;this.changeFooterEvent=this.createEvent(A.CHANGE_FOOTER);this.changeFooterEvent.signature=P;this.changeContentEvent=this.createEvent(A.CHANGE_CONTENT);this.changeContentEvent.signature=P;this.destroyEvent=this.createEvent(A.DESTORY);this.destroyEvent.signature=P;this.beforeShowEvent=this.createEvent(A.BEFORE_SHOW);this.beforeShowEvent.signature=P;this.showEvent=this.createEvent(A.SHOW);this.showEvent.signature=P;this.beforeHideEvent=this.createEvent(A.BEFORE_HIDE);this.beforeHideEvent.signature=P;this.hideEvent=this.createEvent(A.HIDE);this.hideEvent.signature=P;},platform:function(){var P=navigator.userAgent.toLowerCase();if(P.indexOf("windows")!=-1||P.indexOf("win32")!=-1){return"windows";}else{if(P.indexOf("macintosh")!=-1){return"mac";}else{return false;}}}(),browser:function(){var P=navigator.userAgent.toLowerCase();if(P.indexOf("opera")!=-1){return"opera";}else{if(P.indexOf("msie 7")!=-1){return"ie7";}else{if(P.indexOf("msie")!=-1){return"ie";}else{if(P.indexOf("safari")!=-1){return"safari";}else{if(P.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}}(),isSecure:function(){if(window.location.href.toLowerCase().indexOf("https")===0){return true;}else{return false;}}(),initDefaultConfig:function(){this.cfg.addProperty(I.VISIBLE.key,{handler:this.configVisible,value:I.VISIBLE.value,validator:I.VISIBLE.validator});this.cfg.addProperty(I.EFFECT.key,{suppressEvent:I.EFFECT.suppressEvent,supercedes:I.EFFECT.supercedes});this.cfg.addProperty(I.MONITOR_RESIZE.key,{handler:this.configMonitorResize,value:I.MONITOR_RESIZE.value});this.cfg.addProperty(I.APPEND_TO_DOCUMENT_BODY.key,{value:I.APPEND_TO_DOCUMENT_BODY.value});},init:function(U,T){var R,V;this.initEvents();this.beforeInitEvent.fire(G);this.cfg=new D(this);if(this.isSecure){this.imageRoot=G.IMG_ROOT_SSL;}if(typeof U=="string"){R=U;U=document.getElementById(U);if(!U){U=(K()).cloneNode(false);U.id=R;}}this.element=U;if(U.id){this.id=U.id;}V=this.element.firstChild;if(V){var Q=false,P=false,S=false;do{if(1==V.nodeType){if(!Q&&F.hasClass(V,G.CSS_HEADER)){this.header=V;Q=true;}else{if(!P&&F.hasClass(V,G.CSS_BODY)){this.body=V;P=true;}else{if(!S&&F.hasClass(V,G.CSS_FOOTER)){this.footer=V;S=true;}}}}}while((V=V.nextSibling));}this.initDefaultConfig();F.addClass(this.element,G.CSS_MODULE);if(T){this.cfg.applyConfig(T,true);}if(!D.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}this.initEvent.fire(G);},initResizeMonitor:function(){var Q=(YAHOO.env.ua.gecko&&this.platform=="windows");if(Q){var P=this;setTimeout(function(){P._initResizeMonitor();},0);}else{this._initResizeMonitor();}},_initResizeMonitor:function(){var P,R,T;function V(){G.textResizeEvent.fire();}if(!YAHOO.env.ua.opera){R=F.get("_yuiResizeMonitor");var U=this._supportsCWResize();if(!R){R=document.createElement("iframe");if(this.isSecure&&G.RESIZE_MONITOR_SECURE_URL&&YAHOO.env.ua.ie){R.src=G.RESIZE_MONITOR_SECURE_URL;}if(!U){T=["<html><head><script ","type=\"text/javascript\">","window.onresize=function(){window.parent.","YAHOO.widget.Module.textResizeEvent.","fire();};<","/script></head>","<body></body></html>"].join("");R.src="data:text/html;charset=utf-8,"+encodeURIComponent(T);}R.id="_yuiResizeMonitor";R.style.position="absolute";R.style.visibility="hidden";var Q=document.body,S=Q.firstChild;if(S){Q.insertBefore(R,S);}else{Q.appendChild(R);}R.style.width="10em";R.style.height="10em";R.style.top=(-1*R.offsetHeight)+"px";R.style.left=(-1*R.offsetWidth)+"px";R.style.borderWidth="0";R.style.visibility="visible";if(YAHOO.env.ua.webkit){P=R.contentWindow.document;P.open();P.close();}}if(R&&R.contentWindow){G.textResizeEvent.subscribe(this.onDomResize,this,true);if(!G.textResizeInitialized){if(U){if(!M.on(R.contentWindow,"resize",V)){M.on(R,"resize",V);}}G.textResizeInitialized=true;}this.resizeMonitor=R;}}},_supportsCWResize:function(){var P=true;if(YAHOO.env.ua.gecko&&YAHOO.env.ua.gecko<=1.8){P=false;}return P;},onDomResize:function(S,R){var Q=-1*this.resizeMonitor.offsetWidth,P=-1*this.resizeMonitor.offsetHeight;this.resizeMonitor.style.top=P+"px";this.resizeMonitor.style.left=Q+"px";},setHeader:function(Q){var P=this.header||(this.header=J());if(Q.tagName){P.innerHTML="";P.appendChild(Q);}else{P.innerHTML=Q;}this.changeHeaderEvent.fire(Q);this.changeContentEvent.fire();},appendToHeader:function(Q){var P=this.header||(this.header=J());P.appendChild(Q);this.changeHeaderEvent.fire(Q);this.changeContentEvent.fire();},setBody:function(Q){var P=this.body||(this.body=B());if(Q.tagName){P.innerHTML="";P.appendChild(Q);}else{P.innerHTML=Q;}this.changeBodyEvent.fire(Q);this.changeContentEvent.fire();},appendToBody:function(Q){var P=this.body||(this.body=B());P.appendChild(Q);this.changeBodyEvent.fire(Q);this.changeContentEvent.fire();},setFooter:function(Q){var P=this.footer||(this.footer=C());if(Q.tagName){P.innerHTML="";P.appendChild(Q);}else{P.innerHTML=Q;}this.changeFooterEvent.fire(Q);this.changeContentEvent.fire();},appendToFooter:function(Q){var P=this.footer||(this.footer=C());P.appendChild(Q);this.changeFooterEvent.fire(Q);this.changeContentEvent.fire();},render:function(R,P){var S=this,T;function Q(U){if(typeof U=="string"){U=document.getElementById(U);}if(U){S._addToParent(U,S.element);S.appendEvent.fire();}}this.beforeRenderEvent.fire();if(!P){P=this.element;}if(R){Q(R);}else{if(!F.inDocument(this.element)){return false;}}if(this.header&&!F.inDocument(this.header)){T=P.firstChild;if(T){P.insertBefore(this.header,T);}else{P.appendChild(this.header);}}if(this.body&&!F.inDocument(this.body)){if(this.footer&&F.isAncestor(this.moduleElement,this.footer)){P.insertBefore(this.body,this.footer);
}else{P.appendChild(this.body);}}if(this.footer&&!F.inDocument(this.footer)){P.appendChild(this.footer);}this.renderEvent.fire();return true;},destroy:function(){var P,Q;if(this.element){M.purgeElement(this.element,true);P=this.element.parentNode;}if(P){P.removeChild(this.element);}this.element=null;this.header=null;this.body=null;this.footer=null;G.textResizeEvent.unsubscribe(this.onDomResize,this);this.cfg.destroy();this.cfg=null;this.destroyEvent.fire();for(Q in this){if(Q instanceof L){Q.unsubscribeAll();}}},show:function(){this.cfg.setProperty("visible",true);},hide:function(){this.cfg.setProperty("visible",false);},configVisible:function(Q,P,R){var S=P[0];if(S){this.beforeShowEvent.fire();F.setStyle(this.element,"display","block");this.showEvent.fire();}else{this.beforeHideEvent.fire();F.setStyle(this.element,"display","none");this.hideEvent.fire();}},configMonitorResize:function(R,Q,S){var P=Q[0];if(P){this.initResizeMonitor();}else{G.textResizeEvent.unsubscribe(this.onDomResize,this,true);this.resizeMonitor=null;}},_addToParent:function(P,Q){if(!this.cfg.getProperty("appendtodocumentbody")&&P===document.body&&P.firstChild){P.insertBefore(Q,P.firstChild);}else{P.appendChild(Q);}},toString:function(){return"Module "+this.id;}};YAHOO.lang.augmentProto(G,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Overlay=function(L,K){YAHOO.widget.Overlay.superclass.constructor.call(this,L,K);};var F=YAHOO.lang,I=YAHOO.util.CustomEvent,E=YAHOO.widget.Module,J=YAHOO.util.Event,D=YAHOO.util.Dom,C=YAHOO.util.Config,B=YAHOO.widget.Overlay,G,A={"BEFORE_MOVE":"beforeMove","MOVE":"move"},H={"X":{key:"x",validator:F.isNumber,suppressEvent:true,supercedes:["iframe"]},"Y":{key:"y",validator:F.isNumber,suppressEvent:true,supercedes:["iframe"]},"XY":{key:"xy",suppressEvent:true,supercedes:["iframe"]},"CONTEXT":{key:"context",suppressEvent:true,supercedes:["iframe"]},"FIXED_CENTER":{key:"fixedcenter",value:false,validator:F.isBoolean,supercedes:["iframe","visible"]},"WIDTH":{key:"width",suppressEvent:true,supercedes:["context","fixedcenter","iframe"]},"HEIGHT":{key:"height",suppressEvent:true,supercedes:["context","fixedcenter","iframe"]},"ZINDEX":{key:"zindex",value:null},"CONSTRAIN_TO_VIEWPORT":{key:"constraintoviewport",value:false,validator:F.isBoolean,supercedes:["iframe","x","y","xy"]},"IFRAME":{key:"iframe",value:(YAHOO.env.ua.ie==6?true:false),validator:F.isBoolean,supercedes:["zindex"]}};B.IFRAME_SRC="javascript:false;";B.IFRAME_OFFSET=3;B.VIEWPORT_OFFSET=10;B.TOP_LEFT="tl";B.TOP_RIGHT="tr";B.BOTTOM_LEFT="bl";B.BOTTOM_RIGHT="br";B.CSS_OVERLAY="yui-overlay";B.windowScrollEvent=new I("windowScroll");B.windowResizeEvent=new I("windowResize");B.windowScrollHandler=function(K){if(YAHOO.env.ua.ie){if(!window.scrollEnd){window.scrollEnd=-1;}clearTimeout(window.scrollEnd);window.scrollEnd=setTimeout(function(){B.windowScrollEvent.fire();},1);}else{B.windowScrollEvent.fire();}};B.windowResizeHandler=function(K){if(YAHOO.env.ua.ie){if(!window.resizeEnd){window.resizeEnd=-1;}clearTimeout(window.resizeEnd);window.resizeEnd=setTimeout(function(){B.windowResizeEvent.fire();},100);}else{B.windowResizeEvent.fire();}};B._initialized=null;if(B._initialized===null){J.on(window,"scroll",B.windowScrollHandler);J.on(window,"resize",B.windowResizeHandler);B._initialized=true;}YAHOO.extend(B,E,{init:function(L,K){B.superclass.init.call(this,L);this.beforeInitEvent.fire(B);D.addClass(this.element,B.CSS_OVERLAY);if(K){this.cfg.applyConfig(K,true);}if(this.platform=="mac"&&YAHOO.env.ua.gecko){if(!C.alreadySubscribed(this.showEvent,this.showMacGeckoScrollbars,this)){this.showEvent.subscribe(this.showMacGeckoScrollbars,this,true);}if(!C.alreadySubscribed(this.hideEvent,this.hideMacGeckoScrollbars,this)){this.hideEvent.subscribe(this.hideMacGeckoScrollbars,this,true);}}this.initEvent.fire(B);},initEvents:function(){B.superclass.initEvents.call(this);var K=I.LIST;this.beforeMoveEvent=this.createEvent(A.BEFORE_MOVE);this.beforeMoveEvent.signature=K;this.moveEvent=this.createEvent(A.MOVE);this.moveEvent.signature=K;},initDefaultConfig:function(){B.superclass.initDefaultConfig.call(this);this.cfg.addProperty(H.X.key,{handler:this.configX,validator:H.X.validator,suppressEvent:H.X.suppressEvent,supercedes:H.X.supercedes});this.cfg.addProperty(H.Y.key,{handler:this.configY,validator:H.Y.validator,suppressEvent:H.Y.suppressEvent,supercedes:H.Y.supercedes});this.cfg.addProperty(H.XY.key,{handler:this.configXY,suppressEvent:H.XY.suppressEvent,supercedes:H.XY.supercedes});this.cfg.addProperty(H.CONTEXT.key,{handler:this.configContext,suppressEvent:H.CONTEXT.suppressEvent,supercedes:H.CONTEXT.supercedes});this.cfg.addProperty(H.FIXED_CENTER.key,{handler:this.configFixedCenter,value:H.FIXED_CENTER.value,validator:H.FIXED_CENTER.validator,supercedes:H.FIXED_CENTER.supercedes});this.cfg.addProperty(H.WIDTH.key,{handler:this.configWidth,suppressEvent:H.WIDTH.suppressEvent,supercedes:H.WIDTH.supercedes});this.cfg.addProperty(H.HEIGHT.key,{handler:this.configHeight,suppressEvent:H.HEIGHT.suppressEvent,supercedes:H.HEIGHT.supercedes});this.cfg.addProperty(H.ZINDEX.key,{handler:this.configzIndex,value:H.ZINDEX.value});this.cfg.addProperty(H.CONSTRAIN_TO_VIEWPORT.key,{handler:this.configConstrainToViewport,value:H.CONSTRAIN_TO_VIEWPORT.value,validator:H.CONSTRAIN_TO_VIEWPORT.validator,supercedes:H.CONSTRAIN_TO_VIEWPORT.supercedes});this.cfg.addProperty(H.IFRAME.key,{handler:this.configIframe,value:H.IFRAME.value,validator:H.IFRAME.validator,supercedes:H.IFRAME.supercedes});},moveTo:function(K,L){this.cfg.setProperty("xy",[K,L]);},hideMacGeckoScrollbars:function(){D.removeClass(this.element,"show-scrollbars");D.addClass(this.element,"hide-scrollbars");},showMacGeckoScrollbars:function(){D.removeClass(this.element,"hide-scrollbars");D.addClass(this.element,"show-scrollbars");},configVisible:function(N,K,T){var M=K[0],O=D.getStyle(this.element,"visibility"),U=this.cfg.getProperty("effect"),R=[],Q=(this.platform=="mac"&&YAHOO.env.ua.gecko),b=C.alreadySubscribed,S,L,a,Y,X,W,Z,V,P;
if(O=="inherit"){a=this.element.parentNode;while(a.nodeType!=9&&a.nodeType!=11){O=D.getStyle(a,"visibility");if(O!="inherit"){break;}a=a.parentNode;}if(O=="inherit"){O="visible";}}if(U){if(U instanceof Array){V=U.length;for(Y=0;Y<V;Y++){S=U[Y];R[R.length]=S.effect(this,S.duration);}}else{R[R.length]=U.effect(this,U.duration);}}if(M){if(Q){this.showMacGeckoScrollbars();}if(U){if(M){if(O!="visible"||O===""){this.beforeShowEvent.fire();P=R.length;for(X=0;X<P;X++){L=R[X];if(X===0&&!b(L.animateInCompleteEvent,this.showEvent.fire,this.showEvent)){L.animateInCompleteEvent.subscribe(this.showEvent.fire,this.showEvent,true);}L.animateIn();}}}}else{if(O!="visible"||O===""){this.beforeShowEvent.fire();D.setStyle(this.element,"visibility","visible");this.cfg.refireEvent("iframe");this.showEvent.fire();}}}else{if(Q){this.hideMacGeckoScrollbars();}if(U){if(O=="visible"){this.beforeHideEvent.fire();P=R.length;for(W=0;W<P;W++){Z=R[W];if(W===0&&!b(Z.animateOutCompleteEvent,this.hideEvent.fire,this.hideEvent)){Z.animateOutCompleteEvent.subscribe(this.hideEvent.fire,this.hideEvent,true);}Z.animateOut();}}else{if(O===""){D.setStyle(this.element,"visibility","hidden");}}}else{if(O=="visible"||O===""){this.beforeHideEvent.fire();D.setStyle(this.element,"visibility","hidden");this.hideEvent.fire();}}}},doCenterOnDOMEvent:function(){if(this.cfg.getProperty("visible")){this.center();}},configFixedCenter:function(O,M,P){var Q=M[0],L=C.alreadySubscribed,N=B.windowResizeEvent,K=B.windowScrollEvent;if(Q){this.center();if(!L(this.beforeShowEvent,this.center,this)){this.beforeShowEvent.subscribe(this.center);}if(!L(N,this.doCenterOnDOMEvent,this)){N.subscribe(this.doCenterOnDOMEvent,this,true);}if(!L(K,this.doCenterOnDOMEvent,this)){K.subscribe(this.doCenterOnDOMEvent,this,true);}}else{this.beforeShowEvent.unsubscribe(this.center);N.unsubscribe(this.doCenterOnDOMEvent,this);K.unsubscribe(this.doCenterOnDOMEvent,this);}},configHeight:function(N,L,O){var K=L[0],M=this.element;D.setStyle(M,"height",K);this.cfg.refireEvent("iframe");},configWidth:function(N,K,O){var M=K[0],L=this.element;D.setStyle(L,"width",M);this.cfg.refireEvent("iframe");},configzIndex:function(M,K,N){var O=K[0],L=this.element;if(!O){O=D.getStyle(L,"zIndex");if(!O||isNaN(O)){O=0;}}if(this.iframe||this.cfg.getProperty("iframe")===true){if(O<=0){O=1;}}D.setStyle(L,"zIndex",O);this.cfg.setProperty("zIndex",O,true);if(this.iframe){this.stackIframe();}},configXY:function(M,L,N){var P=L[0],K=P[0],O=P[1];this.cfg.setProperty("x",K);this.cfg.setProperty("y",O);this.beforeMoveEvent.fire([K,O]);K=this.cfg.getProperty("x");O=this.cfg.getProperty("y");this.cfg.refireEvent("iframe");this.moveEvent.fire([K,O]);},configX:function(M,L,N){var K=L[0],O=this.cfg.getProperty("y");this.cfg.setProperty("x",K,true);this.cfg.setProperty("y",O,true);this.beforeMoveEvent.fire([K,O]);K=this.cfg.getProperty("x");O=this.cfg.getProperty("y");D.setX(this.element,K,true);this.cfg.setProperty("xy",[K,O],true);this.cfg.refireEvent("iframe");this.moveEvent.fire([K,O]);},configY:function(M,L,N){var K=this.cfg.getProperty("x"),O=L[0];this.cfg.setProperty("x",K,true);this.cfg.setProperty("y",O,true);this.beforeMoveEvent.fire([K,O]);K=this.cfg.getProperty("x");O=this.cfg.getProperty("y");D.setY(this.element,O,true);this.cfg.setProperty("xy",[K,O],true);this.cfg.refireEvent("iframe");this.moveEvent.fire([K,O]);},showIframe:function(){var L=this.iframe,K;if(L){K=this.element.parentNode;if(K!=L.parentNode){this._addToParent(K,L);}L.style.display="block";}},hideIframe:function(){if(this.iframe){this.iframe.style.display="none";}},syncIframe:function(){var K=this.iframe,M=this.element,O=B.IFRAME_OFFSET,L=(O*2),N;if(K){K.style.width=(M.offsetWidth+L+"px");K.style.height=(M.offsetHeight+L+"px");N=this.cfg.getProperty("xy");if(!F.isArray(N)||(isNaN(N[0])||isNaN(N[1]))){this.syncPosition();N=this.cfg.getProperty("xy");}D.setXY(K,[(N[0]-O),(N[1]-O)]);}},stackIframe:function(){if(this.iframe){var K=D.getStyle(this.element,"zIndex");if(!YAHOO.lang.isUndefined(K)&&!isNaN(K)){D.setStyle(this.iframe,"zIndex",(K-1));}}},configIframe:function(N,M,O){var K=M[0];function P(){var R=this.iframe,S=this.element,T;if(!R){if(!G){G=document.createElement("iframe");if(this.isSecure){G.src=B.IFRAME_SRC;}if(YAHOO.env.ua.ie){G.style.filter="alpha(opacity=0)";G.frameBorder=0;}else{G.style.opacity="0";}G.style.position="absolute";G.style.border="none";G.style.margin="0";G.style.padding="0";G.style.display="none";}R=G.cloneNode(false);T=S.parentNode;var Q=T||document.body;this._addToParent(Q,R);this.iframe=R;}this.showIframe();this.syncIframe();this.stackIframe();if(!this._hasIframeEventListeners){this.showEvent.subscribe(this.showIframe);this.hideEvent.subscribe(this.hideIframe);this.changeContentEvent.subscribe(this.syncIframe);this._hasIframeEventListeners=true;}}function L(){P.call(this);this.beforeShowEvent.unsubscribe(L);this._iframeDeferred=false;}if(K){if(this.cfg.getProperty("visible")){P.call(this);}else{if(!this._iframeDeferred){this.beforeShowEvent.subscribe(L);this._iframeDeferred=true;}}}else{this.hideIframe();if(this._hasIframeEventListeners){this.showEvent.unsubscribe(this.showIframe);this.hideEvent.unsubscribe(this.hideIframe);this.changeContentEvent.unsubscribe(this.syncIframe);this._hasIframeEventListeners=false;}}},_primeXYFromDOM:function(){if(YAHOO.lang.isUndefined(this.cfg.getProperty("xy"))){this.syncPosition();this.cfg.refireEvent("xy");this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);}},configConstrainToViewport:function(L,K,M){var N=K[0];if(N){if(!C.alreadySubscribed(this.beforeMoveEvent,this.enforceConstraints,this)){this.beforeMoveEvent.subscribe(this.enforceConstraints,this,true);}if(!C.alreadySubscribed(this.beforeShowEvent,this._primeXYFromDOM)){this.beforeShowEvent.subscribe(this._primeXYFromDOM);}}else{this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);this.beforeMoveEvent.unsubscribe(this.enforceConstraints,this);}},configContext:function(M,L,O){var Q=L[0],N,P,K;if(Q){N=Q[0];P=Q[1];
K=Q[2];if(N){if(typeof N=="string"){this.cfg.setProperty("context",[document.getElementById(N),P,K],true);}if(P&&K){this.align(P,K);}}}},align:function(L,K){var Q=this.cfg.getProperty("context"),P=this,O,N,R;function M(S,T){switch(L){case B.TOP_LEFT:P.moveTo(T,S);break;case B.TOP_RIGHT:P.moveTo((T-N.offsetWidth),S);break;case B.BOTTOM_LEFT:P.moveTo(T,(S-N.offsetHeight));break;case B.BOTTOM_RIGHT:P.moveTo((T-N.offsetWidth),(S-N.offsetHeight));break;}}if(Q){O=Q[0];N=this.element;P=this;if(!L){L=Q[1];}if(!K){K=Q[2];}if(N&&O){R=D.getRegion(O);switch(K){case B.TOP_LEFT:M(R.top,R.left);break;case B.TOP_RIGHT:M(R.top,R.right);break;case B.BOTTOM_LEFT:M(R.bottom,R.left);break;case B.BOTTOM_RIGHT:M(R.bottom,R.right);break;}}}},enforceConstraints:function(L,K,M){var O=K[0];var N=this.getConstrainedXY(O[0],O[1]);this.cfg.setProperty("x",N[0],true);this.cfg.setProperty("y",N[1],true);this.cfg.setProperty("xy",N,true);},getConstrainedXY:function(V,T){var N=B.VIEWPORT_OFFSET,U=D.getViewportWidth(),Q=D.getViewportHeight(),M=this.element.offsetHeight,S=this.element.offsetWidth,Y=D.getDocumentScrollLeft(),W=D.getDocumentScrollTop();var P=V;var L=T;if(S+N<U){var R=Y+N;var X=Y+U-S-N;if(V<R){P=R;}else{if(V>X){P=X;}}}else{P=N+Y;}if(M+N<Q){var O=W+N;var K=W+Q-M-N;if(T<O){L=O;}else{if(T>K){L=K;}}}else{L=N+W;}return[P,L];},center:function(){var N=B.VIEWPORT_OFFSET,O=this.element.offsetWidth,M=this.element.offsetHeight,L=D.getViewportWidth(),P=D.getViewportHeight(),K,Q;if(O<L){K=(L/2)-(O/2)+D.getDocumentScrollLeft();}else{K=N+D.getDocumentScrollLeft();}if(M<P){Q=(P/2)-(M/2)+D.getDocumentScrollTop();}else{Q=N+D.getDocumentScrollTop();}this.cfg.setProperty("xy",[parseInt(K,10),parseInt(Q,10)]);this.cfg.refireEvent("iframe");},syncPosition:function(){var K=D.getXY(this.element);this.cfg.setProperty("x",K[0],true);this.cfg.setProperty("y",K[1],true);this.cfg.setProperty("xy",K,true);},onDomResize:function(M,L){var K=this;B.superclass.onDomResize.call(this,M,L);setTimeout(function(){K.syncPosition();K.cfg.refireEvent("iframe");K.cfg.refireEvent("context");},0);},bringToTop:function(){var O=[],N=this.element;function R(V,U){var X=D.getStyle(V,"zIndex"),W=D.getStyle(U,"zIndex"),T=(!X||isNaN(X))?0:parseInt(X,10),S=(!W||isNaN(W))?0:parseInt(W,10);if(T>S){return -1;}else{if(T<S){return 1;}else{return 0;}}}function M(U){var S=D.hasClass(U,B.CSS_OVERLAY),T=YAHOO.widget.Panel;if(S&&!D.isAncestor(N,S)){if(T&&D.hasClass(U,T.CSS_PANEL)){O[O.length]=U.parentNode;}else{O[O.length]=U;}}}D.getElementsBy(M,"DIV",document.body);O.sort(R);var K=O[0],Q;if(K){Q=D.getStyle(K,"zIndex");if(!isNaN(Q)){var P=false;if(K!=N){P=true;}else{if(O.length>1){var L=D.getStyle(O[1],"zIndex");if(!isNaN(L)&&(Q==L)){P=true;}}}if(P){this.cfg.setProperty("zindex",(parseInt(Q,10)+2));}}}},destroy:function(){if(this.iframe){this.iframe.parentNode.removeChild(this.iframe);}this.iframe=null;B.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent,this);B.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent,this);B.superclass.destroy.call(this);},toString:function(){return"Overlay "+this.id;}});}());(function(){YAHOO.widget.OverlayManager=function(G){this.init(G);};var D=YAHOO.widget.Overlay,C=YAHOO.util.Event,E=YAHOO.util.Dom,B=YAHOO.util.Config,F=YAHOO.util.CustomEvent,A=YAHOO.widget.OverlayManager;A.CSS_FOCUSED="focused";A.prototype={constructor:A,overlays:null,initDefaultConfig:function(){this.cfg.addProperty("overlays",{suppressEvent:true});this.cfg.addProperty("focusevent",{value:"mousedown"});},init:function(I){this.cfg=new B(this);this.initDefaultConfig();if(I){this.cfg.applyConfig(I,true);}this.cfg.fireQueue();var H=null;this.getActive=function(){return H;};this.focus=function(J){var K=this.find(J);if(K){if(H!=K){if(H){H.blur();}this.bringToTop(K);H=K;E.addClass(H.element,A.CSS_FOCUSED);K.focusEvent.fire();}}};this.remove=function(K){var M=this.find(K),J;if(M){if(H==M){H=null;}var L=(M.element===null&&M.cfg===null)?true:false;if(!L){J=E.getStyle(M.element,"zIndex");M.cfg.setProperty("zIndex",-1000,true);}this.overlays.sort(this.compareZIndexDesc);this.overlays=this.overlays.slice(0,(this.overlays.length-1));M.hideEvent.unsubscribe(M.blur);M.destroyEvent.unsubscribe(this._onOverlayDestroy,M);if(!L){C.removeListener(M.element,this.cfg.getProperty("focusevent"),this._onOverlayElementFocus);M.cfg.setProperty("zIndex",J,true);M.cfg.setProperty("manager",null);}M.focusEvent.unsubscribeAll();M.blurEvent.unsubscribeAll();M.focusEvent=null;M.blurEvent=null;M.focus=null;M.blur=null;}};this.blurAll=function(){var K=this.overlays.length,J;if(K>0){J=K-1;do{this.overlays[J].blur();}while(J--);}};this._onOverlayBlur=function(K,J){H=null;};var G=this.cfg.getProperty("overlays");if(!this.overlays){this.overlays=[];}if(G){this.register(G);this.overlays.sort(this.compareZIndexDesc);}},_onOverlayElementFocus:function(I){var G=C.getTarget(I),H=this.close;if(H&&(G==H||E.isAncestor(H,G))){this.blur();}else{this.focus();}},_onOverlayDestroy:function(H,G,I){this.remove(I);},register:function(G){var K=this,L,I,H,J;if(G instanceof D){G.cfg.addProperty("manager",{value:this});G.focusEvent=G.createEvent("focus");G.focusEvent.signature=F.LIST;G.blurEvent=G.createEvent("blur");G.blurEvent.signature=F.LIST;G.focus=function(){K.focus(this);};G.blur=function(){if(K.getActive()==this){E.removeClass(this.element,A.CSS_FOCUSED);this.blurEvent.fire();}};G.blurEvent.subscribe(K._onOverlayBlur);G.hideEvent.subscribe(G.blur);G.destroyEvent.subscribe(this._onOverlayDestroy,G,this);C.on(G.element,this.cfg.getProperty("focusevent"),this._onOverlayElementFocus,null,G);L=E.getStyle(G.element,"zIndex");if(!isNaN(L)){G.cfg.setProperty("zIndex",parseInt(L,10));}else{G.cfg.setProperty("zIndex",0);}this.overlays.push(G);this.bringToTop(G);return true;}else{if(G instanceof Array){I=0;J=G.length;for(H=0;H<J;H++){if(this.register(G[H])){I++;}}if(I>0){return true;}}else{return false;}}},bringToTop:function(M){var I=this.find(M),L,G,J;if(I){J=this.overlays;J.sort(this.compareZIndexDesc);G=J[0];if(G){L=E.getStyle(G.element,"zIndex");
if(!isNaN(L)){var K=false;if(G!==I){K=true;}else{if(J.length>1){var H=E.getStyle(J[1].element,"zIndex");if(!isNaN(H)&&(L==H)){K=true;}}}if(K){I.cfg.setProperty("zindex",(parseInt(L,10)+2));}}J.sort(this.compareZIndexDesc);}}},find:function(G){var I=this.overlays,J=I.length,H;if(J>0){H=J-1;if(G instanceof D){do{if(I[H]==G){return I[H];}}while(H--);}else{if(typeof G=="string"){do{if(I[H].id==G){return I[H];}}while(H--);}}return null;}},compareZIndexDesc:function(J,I){var H=(J.cfg)?J.cfg.getProperty("zIndex"):null,G=(I.cfg)?I.cfg.getProperty("zIndex"):null;if(H===null&&G===null){return 0;}else{if(H===null){return 1;}else{if(G===null){return -1;}else{if(H>G){return -1;}else{if(H<G){return 1;}else{return 0;}}}}}},showAll:function(){var H=this.overlays,I=H.length,G;if(I>0){G=I-1;do{H[G].show();}while(G--);}},hideAll:function(){var H=this.overlays,I=H.length,G;if(I>0){G=I-1;do{H[G].hide();}while(G--);}},toString:function(){return"OverlayManager";}};}());(function(){YAHOO.widget.ContainerEffect=function(F,I,H,E,G){if(!G){G=YAHOO.util.Anim;}this.overlay=F;this.attrIn=I;this.attrOut=H;this.targetElement=E||F.element;this.animClass=G;};var B=YAHOO.util.Dom,D=YAHOO.util.CustomEvent,C=YAHOO.util.Easing,A=YAHOO.widget.ContainerEffect;A.FADE=function(E,G){var I={attributes:{opacity:{from:0,to:1}},duration:G,method:C.easeIn};var F={attributes:{opacity:{to:0}},duration:G,method:C.easeOut};var H=new A(E,I,F,E.element);H.handleUnderlayStart=function(){var K=this.overlay.underlay;if(K&&YAHOO.env.ua.ie){var J=(K.filters&&K.filters.length>0);if(J){B.addClass(E.element,"yui-effect-fade");}}};H.handleUnderlayComplete=function(){var J=this.overlay.underlay;if(J&&YAHOO.env.ua.ie){B.removeClass(E.element,"yui-effect-fade");}};H.handleStartAnimateIn=function(K,J,L){B.addClass(L.overlay.element,"hide-select");if(!L.overlay.underlay){L.overlay.cfg.refireEvent("underlay");}L.handleUnderlayStart();B.setStyle(L.overlay.element,"visibility","visible");B.setStyle(L.overlay.element,"opacity",0);};H.handleCompleteAnimateIn=function(K,J,L){B.removeClass(L.overlay.element,"hide-select");if(L.overlay.element.style.filter){L.overlay.element.style.filter=null;}L.handleUnderlayComplete();L.overlay.cfg.refireEvent("iframe");L.animateInCompleteEvent.fire();};H.handleStartAnimateOut=function(K,J,L){B.addClass(L.overlay.element,"hide-select");L.handleUnderlayStart();};H.handleCompleteAnimateOut=function(K,J,L){B.removeClass(L.overlay.element,"hide-select");if(L.overlay.element.style.filter){L.overlay.element.style.filter=null;}B.setStyle(L.overlay.element,"visibility","hidden");B.setStyle(L.overlay.element,"opacity",1);L.handleUnderlayComplete();L.overlay.cfg.refireEvent("iframe");L.animateOutCompleteEvent.fire();};H.init();return H;};A.SLIDE=function(G,I){var F=G.cfg.getProperty("x")||B.getX(G.element),K=G.cfg.getProperty("y")||B.getY(G.element),J=B.getClientWidth(),H=G.element.offsetWidth,E=new A(G,{attributes:{points:{to:[F,K]}},duration:I,method:C.easeIn},{attributes:{points:{to:[(J+25),K]}},duration:I,method:C.easeOut},G.element,YAHOO.util.Motion);E.handleStartAnimateIn=function(M,L,N){N.overlay.element.style.left=((-25)-H)+"px";N.overlay.element.style.top=K+"px";};E.handleTweenAnimateIn=function(O,N,P){var Q=B.getXY(P.overlay.element),M=Q[0],L=Q[1];if(B.getStyle(P.overlay.element,"visibility")=="hidden"&&M<F){B.setStyle(P.overlay.element,"visibility","visible");}P.overlay.cfg.setProperty("xy",[M,L],true);P.overlay.cfg.refireEvent("iframe");};E.handleCompleteAnimateIn=function(M,L,N){N.overlay.cfg.setProperty("xy",[F,K],true);N.startX=F;N.startY=K;N.overlay.cfg.refireEvent("iframe");N.animateInCompleteEvent.fire();};E.handleStartAnimateOut=function(M,L,P){var N=B.getViewportWidth(),Q=B.getXY(P.overlay.element),O=Q[1];P.animOut.attributes.points.to=[(N+25),O];};E.handleTweenAnimateOut=function(N,M,O){var Q=B.getXY(O.overlay.element),L=Q[0],P=Q[1];O.overlay.cfg.setProperty("xy",[L,P],true);O.overlay.cfg.refireEvent("iframe");};E.handleCompleteAnimateOut=function(M,L,N){B.setStyle(N.overlay.element,"visibility","hidden");N.overlay.cfg.setProperty("xy",[F,K]);N.animateOutCompleteEvent.fire();};E.init();return E;};A.prototype={init:function(){this.beforeAnimateInEvent=this.createEvent("beforeAnimateIn");this.beforeAnimateInEvent.signature=D.LIST;this.beforeAnimateOutEvent=this.createEvent("beforeAnimateOut");this.beforeAnimateOutEvent.signature=D.LIST;this.animateInCompleteEvent=this.createEvent("animateInComplete");this.animateInCompleteEvent.signature=D.LIST;this.animateOutCompleteEvent=this.createEvent("animateOutComplete");this.animateOutCompleteEvent.signature=D.LIST;this.animIn=new this.animClass(this.targetElement,this.attrIn.attributes,this.attrIn.duration,this.attrIn.method);this.animIn.onStart.subscribe(this.handleStartAnimateIn,this);this.animIn.onTween.subscribe(this.handleTweenAnimateIn,this);this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn,this);this.animOut=new this.animClass(this.targetElement,this.attrOut.attributes,this.attrOut.duration,this.attrOut.method);this.animOut.onStart.subscribe(this.handleStartAnimateOut,this);this.animOut.onTween.subscribe(this.handleTweenAnimateOut,this);this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut,this);},animateIn:function(){this.beforeAnimateInEvent.fire();this.animIn.animate();},animateOut:function(){this.beforeAnimateOutEvent.fire();this.animOut.animate();},handleStartAnimateIn:function(F,E,G){},handleTweenAnimateIn:function(F,E,G){},handleCompleteAnimateIn:function(F,E,G){},handleStartAnimateOut:function(F,E,G){},handleTweenAnimateOut:function(F,E,G){},handleCompleteAnimateOut:function(F,E,G){},toString:function(){var E="ContainerEffect";if(this.overlay){E+=" ["+this.overlay.toString()+"]";}return E;}};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);})();YAHOO.register("containercore",YAHOO.widget.Module,{version:"2.5.0",build:"895"});/*menu-min.js*/

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
(function(){var B=YAHOO.util.Dom,A=YAHOO.util.Event;YAHOO.widget.MenuManager=function(){var N=false,F={},Q={},J={},E={"click":"clickEvent","mousedown":"mouseDownEvent","mouseup":"mouseUpEvent","mouseover":"mouseOverEvent","mouseout":"mouseOutEvent","keydown":"keyDownEvent","keyup":"keyUpEvent","keypress":"keyPressEvent"},K=null;function D(S){var R;if(S&&S.tagName){switch(S.tagName.toUpperCase()){case"DIV":R=S.parentNode;if((B.hasClass(S,"hd")||B.hasClass(S,"bd")||B.hasClass(S,"ft"))&&R&&R.tagName&&R.tagName.toUpperCase()=="DIV"){return R;}else{return S;}break;case"LI":return S;default:R=S.parentNode;if(R){return D(R);}break;}}}function G(V){var R=A.getTarget(V),S=D(R),X,T,U,Z,Y;if(S){T=S.tagName.toUpperCase();if(T=="LI"){U=S.id;if(U&&J[U]){Z=J[U];Y=Z.parent;}}else{if(T=="DIV"){if(S.id){Y=F[S.id];}}}}if(Y){X=E[V.type];if(Z&&!Z.cfg.getProperty("disabled")){Z[X].fire(V);if(V.type=="keyup"||V.type=="mousedown"){if(K!=Z){if(K){K.blurEvent.fire();}Z.focusEvent.fire();}}}Y[X].fire(V,Z);}else{if(V.type=="mousedown"){if(K){K.blurEvent.fire();K=null;}for(var W in Q){if(YAHOO.lang.hasOwnProperty(Q,W)){Y=Q[W];if(Y.cfg.getProperty("clicktohide")&&!(Y instanceof YAHOO.widget.MenuBar)&&Y.cfg.getProperty("position")=="dynamic"){Y.hide();}else{Y.clearActiveItem(true);}}}}else{if(V.type=="keyup"){if(K){K.blurEvent.fire();K=null;}}}}}function P(S,R,T){if(F[T.id]){this.removeMenu(T);}}function M(S,R){var T=R[0];if(T){K=T;}}function H(S,R){K=null;}function C(T,S){var R=S[0],U=this.id;if(R){Q[U]=this;}else{if(Q[U]){delete Q[U];}}}function L(S,R){O(this);}function O(S){var R=S.id;if(R&&J[R]){if(K==S){K=null;}delete J[R];S.destroyEvent.unsubscribe(L);}}function I(S,R){var U=R[0],T;if(U instanceof YAHOO.widget.MenuItem){T=U.id;if(!J[T]){J[T]=U;U.destroyEvent.subscribe(L);}}}return{addMenu:function(S){var R;if(S instanceof YAHOO.widget.Menu&&S.id&&!F[S.id]){F[S.id]=S;if(!N){R=document;A.on(R,"mouseover",G,this,true);A.on(R,"mouseout",G,this,true);A.on(R,"mousedown",G,this,true);A.on(R,"mouseup",G,this,true);A.on(R,"click",G,this,true);A.on(R,"keydown",G,this,true);A.on(R,"keyup",G,this,true);A.on(R,"keypress",G,this,true);N=true;}S.cfg.subscribeToConfigEvent("visible",C);S.destroyEvent.subscribe(P,S,this);S.itemAddedEvent.subscribe(I);S.focusEvent.subscribe(M);S.blurEvent.subscribe(H);}},removeMenu:function(U){var S,R,T;if(U){S=U.id;if(F[S]==U){R=U.getItems();if(R&&R.length>0){T=R.length-1;do{O(R[T]);}while(T--);}delete F[S];if(Q[S]==U){delete Q[S];}if(U.cfg){U.cfg.unsubscribeFromConfigEvent("visible",C);}U.destroyEvent.unsubscribe(P,U);U.itemAddedEvent.unsubscribe(I);U.focusEvent.unsubscribe(M);U.blurEvent.unsubscribe(H);}}},hideVisible:function(){var R;for(var S in Q){if(YAHOO.lang.hasOwnProperty(Q,S)){R=Q[S];if(!(R instanceof YAHOO.widget.MenuBar)&&R.cfg.getProperty("position")=="dynamic"){R.hide();}}}},getVisible:function(){return Q;},getMenus:function(){return F;},getMenu:function(S){var R=F[S];if(R){return R;}},getMenuItem:function(R){var S=J[R];if(S){return S;}},getMenuItemGroup:function(U){var S=B.get(U),R,W,V,T;if(S&&S.tagName&&S.tagName.toUpperCase()=="UL"){W=S.firstChild;if(W){R=[];do{T=W.id;if(T){V=this.getMenuItem(T);if(V){R[R.length]=V;}}}while((W=W.nextSibling));if(R.length>0){return R;}}}},getFocusedMenuItem:function(){return K;},getFocusedMenu:function(){if(K){return(K.parent.getRoot());}},toString:function(){return"MenuManager";}};}();})();(function(){YAHOO.widget.Menu=function(O,N){if(N){this.parent=N.parent;this.lazyLoad=N.lazyLoad||N.lazyload;this.itemData=N.itemData||N.itemdata;}YAHOO.widget.Menu.superclass.constructor.call(this,O,N);};function I(N){if(typeof N=="string"){return("dynamic,static".indexOf((N.toLowerCase()))!=-1);}}var C=YAHOO.util.Dom,M=YAHOO.util.Event,D=YAHOO.widget.Module,B=YAHOO.widget.Overlay,F=YAHOO.widget.Menu,K=YAHOO.widget.MenuManager,L=YAHOO.util.CustomEvent,E=YAHOO.lang,H=YAHOO.env.ua,G,A={"MOUSE_OVER":"mouseover","MOUSE_OUT":"mouseout","MOUSE_DOWN":"mousedown","MOUSE_UP":"mouseup","CLICK":"click","KEY_PRESS":"keypress","KEY_DOWN":"keydown","KEY_UP":"keyup","FOCUS":"focus","BLUR":"blur","ITEM_ADDED":"itemAdded","ITEM_REMOVED":"itemRemoved"},J={"VISIBLE":{key:"visible",value:false,validator:E.isBoolean},"CONSTRAIN_TO_VIEWPORT":{key:"constraintoviewport",value:true,validator:E.isBoolean,supercedes:["iframe","x","y","xy"]},"POSITION":{key:"position",value:"dynamic",validator:I,supercedes:["visible","iframe"]},"SUBMENU_ALIGNMENT":{key:"submenualignment",value:["tl","tr"],suppressEvent:true},"AUTO_SUBMENU_DISPLAY":{key:"autosubmenudisplay",value:true,validator:E.isBoolean,suppressEvent:true},"SHOW_DELAY":{key:"showdelay",value:250,validator:E.isNumber,suppressEvent:true},"HIDE_DELAY":{key:"hidedelay",value:0,validator:E.isNumber,suppressEvent:true},"SUBMENU_HIDE_DELAY":{key:"submenuhidedelay",value:250,validator:E.isNumber,suppressEvent:true},"CLICK_TO_HIDE":{key:"clicktohide",value:true,validator:E.isBoolean,suppressEvent:true},"CONTAINER":{key:"container",suppressEvent:true},"SCROLL_INCREMENT":{key:"scrollincrement",value:1,validator:E.isNumber,supercedes:["maxheight"],suppressEvent:true},"MIN_SCROLL_HEIGHT":{key:"minscrollheight",value:90,validator:E.isNumber,supercedes:["maxheight"],suppressEvent:true},"MAX_HEIGHT":{key:"maxheight",value:0,validator:E.isNumber,supercedes:["iframe"],suppressEvent:true},"CLASS_NAME":{key:"classname",value:null,validator:E.isString,suppressEvent:true},"DISABLED":{key:"disabled",value:false,validator:E.isBoolean,suppressEvent:true}};YAHOO.lang.extend(F,B,{CSS_CLASS_NAME:"yuimenu",ITEM_TYPE:null,GROUP_TITLE_TAG_NAME:"h6",OFF_SCREEN_POSITION:[-10000,-10000],_nHideDelayId:null,_nShowDelayId:null,_nSubmenuHideDelayId:null,_nBodyScrollId:null,_bHideDelayEventHandlersAssigned:false,_bHandledMouseOverEvent:false,_bHandledMouseOutEvent:false,_aGroupTitleElements:null,_aItemGroups:null,_aListElements:null,_nCurrentMouseX:0,_bStopMouseEventHandlers:false,_sClassName:null,lazyLoad:false,itemData:null,activeItem:null,parent:null,srcElement:null,mouseOverEvent:null,mouseOutEvent:null,mouseDownEvent:null,mouseUpEvent:null,clickEvent:null,keyPressEvent:null,keyDownEvent:null,keyUpEvent:null,itemAddedEvent:null,itemRemovedEvent:null,init:function(P,O){this._aItemGroups=[];
this._aListElements=[];this._aGroupTitleElements=[];if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuItem;}var N;if(typeof P=="string"){N=document.getElementById(P);}else{if(P.tagName){N=P;}}if(N&&N.tagName){switch(N.tagName.toUpperCase()){case"DIV":this.srcElement=N;if(!N.id){N.setAttribute("id",C.generateId());}F.superclass.init.call(this,N);this.beforeInitEvent.fire(F);break;case"SELECT":this.srcElement=N;F.superclass.init.call(this,C.generateId());this.beforeInitEvent.fire(F);break;}}else{F.superclass.init.call(this,P);this.beforeInitEvent.fire(F);}if(this.element){C.addClass(this.element,this.CSS_CLASS_NAME);this.initEvent.subscribe(this._onInit);this.beforeRenderEvent.subscribe(this._onBeforeRender);this.renderEvent.subscribe(this._onRender);this.renderEvent.subscribe(this.onRender);this.beforeShowEvent.subscribe(this._onBeforeShow);this.hideEvent.subscribe(this.positionOffScreen);this.showEvent.subscribe(this._onShow);this.beforeHideEvent.subscribe(this._onBeforeHide);this.mouseOverEvent.subscribe(this._onMouseOver);this.mouseOutEvent.subscribe(this._onMouseOut);this.clickEvent.subscribe(this._onClick);this.keyDownEvent.subscribe(this._onKeyDown);this.keyPressEvent.subscribe(this._onKeyPress);if(H.gecko||H.webkit){this.cfg.subscribeToConfigEvent("y",this._onYChange);}if(O){this.cfg.applyConfig(O,true);}K.addMenu(this);this.initEvent.fire(F);}},_initSubTree:function(){var O=this.srcElement,N,Q,T,U,S,R,P;if(O){N=(O.tagName&&O.tagName.toUpperCase());if(N=="DIV"){U=this.body.firstChild;if(U){Q=0;T=this.GROUP_TITLE_TAG_NAME.toUpperCase();do{if(U&&U.tagName){switch(U.tagName.toUpperCase()){case T:this._aGroupTitleElements[Q]=U;break;case"UL":this._aListElements[Q]=U;this._aItemGroups[Q]=[];Q++;break;}}}while((U=U.nextSibling));if(this._aListElements[0]){C.addClass(this._aListElements[0],"first-of-type");}}}U=null;if(N){switch(N){case"DIV":S=this._aListElements;R=S.length;if(R>0){P=R-1;do{U=S[P].firstChild;if(U){do{if(U&&U.tagName&&U.tagName.toUpperCase()=="LI"){this.addItem(new this.ITEM_TYPE(U,{parent:this}),P);}}while((U=U.nextSibling));}}while(P--);}break;case"SELECT":U=O.firstChild;do{if(U&&U.tagName){switch(U.tagName.toUpperCase()){case"OPTGROUP":case"OPTION":this.addItem(new this.ITEM_TYPE(U,{parent:this}));break;}}}while((U=U.nextSibling));break;}}}},_getFirstEnabledItem:function(){var N=this.getItems(),Q=N.length,P;for(var O=0;O<Q;O++){P=N[O];if(P&&!P.cfg.getProperty("disabled")&&P.element.style.display!="none"){return P;}}},_addItemToGroup:function(S,T,W){var U,X,Q,V,R,O,P;function N(Y,Z){return(Y[Z]||N(Y,(Z+1)));}if(T instanceof this.ITEM_TYPE){U=T;U.parent=this;}else{if(typeof T=="string"){U=new this.ITEM_TYPE(T,{parent:this});}else{if(typeof T=="object"){T.parent=this;U=new this.ITEM_TYPE(T.text,T);}}}if(U){if(U.cfg.getProperty("selected")){this.activeItem=U;}X=typeof S=="number"?S:0;Q=this._getItemGroup(X);if(!Q){Q=this._createItemGroup(X);}if(typeof W=="number"){R=(W>=Q.length);if(Q[W]){Q.splice(W,0,U);}else{Q[W]=U;}V=Q[W];if(V){if(R&&(!V.element.parentNode||V.element.parentNode.nodeType==11)){this._aListElements[X].appendChild(V.element);}else{O=N(Q,(W+1));if(O&&(!V.element.parentNode||V.element.parentNode.nodeType==11)){this._aListElements[X].insertBefore(V.element,O.element);}}V.parent=this;this._subscribeToItemEvents(V);this._configureSubmenu(V);this._updateItemProperties(X);this.itemAddedEvent.fire(V);this.changeContentEvent.fire();return V;}}else{P=Q.length;Q[P]=U;V=Q[P];if(V){if(!C.isAncestor(this._aListElements[X],V.element)){this._aListElements[X].appendChild(V.element);}V.element.setAttribute("groupindex",X);V.element.setAttribute("index",P);V.parent=this;V.index=P;V.groupIndex=X;this._subscribeToItemEvents(V);this._configureSubmenu(V);if(P===0){C.addClass(V.element,"first-of-type");}this.itemAddedEvent.fire(V);this.changeContentEvent.fire();return V;}}}},_removeItemFromGroupByIndex:function(Q,O){var P=typeof Q=="number"?Q:0,R=this._getItemGroup(P),T,S,N;if(R){T=R.splice(O,1);S=T[0];if(S){this._updateItemProperties(P);if(R.length===0){N=this._aListElements[P];if(this.body&&N){this.body.removeChild(N);}this._aItemGroups.splice(P,1);this._aListElements.splice(P,1);N=this._aListElements[0];if(N){C.addClass(N,"first-of-type");}}this.itemRemovedEvent.fire(S);this.changeContentEvent.fire();return S;}}},_removeItemFromGroupByValue:function(P,N){var R=this._getItemGroup(P),S,Q,O;if(R){S=R.length;Q=-1;if(S>0){O=S-1;do{if(R[O]==N){Q=O;break;}}while(O--);if(Q>-1){return(this._removeItemFromGroupByIndex(P,Q));}}}},_updateItemProperties:function(O){var P=this._getItemGroup(O),S=P.length,R,Q,N;if(S>0){N=S-1;do{R=P[N];if(R){Q=R.element;R.index=N;R.groupIndex=O;Q.setAttribute("groupindex",O);Q.setAttribute("index",N);C.removeClass(Q,"first-of-type");}}while(N--);if(Q){C.addClass(Q,"first-of-type");}}},_createItemGroup:function(O){var N;if(!this._aItemGroups[O]){this._aItemGroups[O]=[];N=document.createElement("ul");this._aListElements[O]=N;return this._aItemGroups[O];}},_getItemGroup:function(O){var N=((typeof O=="number")?O:0);return this._aItemGroups[N];},_configureSubmenu:function(N){var O=N.cfg.getProperty("submenu");if(O){this.cfg.configChangedEvent.subscribe(this._onParentMenuConfigChange,O,true);this.renderEvent.subscribe(this._onParentMenuRender,O,true);O.beforeShowEvent.subscribe(this._onSubmenuBeforeShow);}},_subscribeToItemEvents:function(N){N.focusEvent.subscribe(this._onMenuItemFocus);N.blurEvent.subscribe(this._onMenuItemBlur);N.destroyEvent.subscribe(this._onMenuItemDestroy,N,this);N.cfg.configChangedEvent.subscribe(this._onMenuItemConfigChange,N,this);},_onVisibleChange:function(P,O){var N=O[0];if(N){C.addClass(this.element,"visible");}else{C.removeClass(this.element,"visible");}},_cancelHideDelay:function(){var N=this.getRoot();if(N._nHideDelayId){window.clearTimeout(N._nHideDelayId);}},_execHideDelay:function(){this._cancelHideDelay();var O=this.getRoot(),P=this;function N(){if(O.activeItem){O.clearActiveItem();}if(O==P&&!(P instanceof YAHOO.widget.MenuBar)&&P.cfg.getProperty("position")=="dynamic"){P.hide();
}}O._nHideDelayId=window.setTimeout(N,O.cfg.getProperty("hidedelay"));},_cancelShowDelay:function(){var N=this.getRoot();if(N._nShowDelayId){window.clearTimeout(N._nShowDelayId);}},_execShowDelay:function(P){var O=this.getRoot();function N(){if(P.parent.cfg.getProperty("selected")){P.show();}}O._nShowDelayId=window.setTimeout(N,O.cfg.getProperty("showdelay"));},_execSubmenuHideDelay:function(Q,O,N){var P=this;Q._nSubmenuHideDelayId=window.setTimeout(function(){if(P._nCurrentMouseX>(O+10)){Q._nSubmenuHideDelayId=window.setTimeout(function(){Q.hide();},N);}else{Q.hide();}},50);},_disableScrollHeader:function(){if(!this._bHeaderDisabled){C.addClass(this.header,"topscrollbar_disabled");this._bHeaderDisabled=true;}},_disableScrollFooter:function(){if(!this._bFooterDisabled){C.addClass(this.footer,"bottomscrollbar_disabled");this._bFooterDisabled=true;}},_enableScrollHeader:function(){if(this._bHeaderDisabled){C.removeClass(this.header,"topscrollbar_disabled");this._bHeaderDisabled=false;}},_enableScrollFooter:function(){if(this._bFooterDisabled){C.removeClass(this.footer,"bottomscrollbar_disabled");this._bFooterDisabled=false;}},_onMouseOver:function(W,R){if(this._bStopMouseEventHandlers){return false;}var X=R[0],V=R[1],N=M.getTarget(X),O,Q,U,P,T,S;if(!this._bHandledMouseOverEvent&&(N==this.element||C.isAncestor(this.element,N))){this._nCurrentMouseX=0;M.on(this.element,"mousemove",this._onMouseMove,this,true);if(!C.isAncestor(V.element,M.getRelatedTarget(X))){this.clearActiveItem();}if(this.parent&&this._nSubmenuHideDelayId){window.clearTimeout(this._nSubmenuHideDelayId);this.parent.cfg.setProperty("selected",true);O=this.parent.parent;O._bHandledMouseOutEvent=true;O._bHandledMouseOverEvent=false;}this._bHandledMouseOverEvent=true;this._bHandledMouseOutEvent=false;}if(V&&!V.handledMouseOverEvent&&!V.cfg.getProperty("disabled")&&(N==V.element||C.isAncestor(V.element,N))){Q=this.cfg.getProperty("showdelay");U=(Q>0);if(U){this._cancelShowDelay();}P=this.activeItem;if(P){P.cfg.setProperty("selected",false);}T=V.cfg;T.setProperty("selected",true);if(this.hasFocus()){V.focus();}if(this.cfg.getProperty("autosubmenudisplay")){S=T.getProperty("submenu");if(S){if(U){this._execShowDelay(S);}else{S.show();}}}V.handledMouseOverEvent=true;V.handledMouseOutEvent=false;}},_onMouseOut:function(V,P){if(this._bStopMouseEventHandlers){return false;}var W=P[0],T=P[1],Q=M.getRelatedTarget(W),U=false,S,R,N,O;if(T&&!T.cfg.getProperty("disabled")){S=T.cfg;R=S.getProperty("submenu");if(R&&(Q==R.element||C.isAncestor(R.element,Q))){U=true;}if(!T.handledMouseOutEvent&&((Q!=T.element&&!C.isAncestor(T.element,Q))||U)){if(!U){T.cfg.setProperty("selected",false);if(R){N=this.cfg.getProperty("submenuhidedelay");O=this.cfg.getProperty("showdelay");if(!(this instanceof YAHOO.widget.MenuBar)&&N>0&&O>=N){this._execSubmenuHideDelay(R,M.getPageX(W),N);}else{R.hide();}}}T.handledMouseOutEvent=true;T.handledMouseOverEvent=false;}}if(!this._bHandledMouseOutEvent&&((Q!=this.element&&!C.isAncestor(this.element,Q))||U)){M.removeListener(this.element,"mousemove",this._onMouseMove);this._nCurrentMouseX=M.getPageX(W);this._bHandledMouseOutEvent=true;this._bHandledMouseOverEvent=false;}},_onMouseMove:function(O,N){if(this._bStopMouseEventHandlers){return false;}this._nCurrentMouseX=M.getPageX(O);},_onClick:function(Y,Q){var W=YAHOO.util.Event,P=YAHOO.util.Dom,Z=Q[0],T=Q[1],R,V=false,O,N,S,U,X;if(T){if(T.cfg.getProperty("disabled")){W.preventDefault(Z);}else{R=T.cfg.getProperty("submenu");S=T.cfg.getProperty("url");if(S){U=S.indexOf("#");X=S.length;if(U!=-1){S=S.substr(U,X);X=S.length;if(X>1){N=S.substr(1,X);V=P.isAncestor(this.element,N);}else{if(X===1){V=true;}}}}if(V&&!T.cfg.getProperty("target")){W.preventDefault(Z);T.focus();}if(!R){O=this.getRoot();if(O instanceof YAHOO.widget.MenuBar||O.cfg.getProperty("position")=="static"){O.clearActiveItem();}else{O.hide();}}}}},_onKeyDown:function(b,V){var Y=V[0],X=V[1],f=this,U,Z,O,S,c,N,e,R,a,Q,W,d,T;function P(){f._bStopMouseEventHandlers=true;window.setTimeout(function(){f._bStopMouseEventHandlers=false;},10);}if(X&&!X.cfg.getProperty("disabled")){Z=X.cfg;O=this.parent;switch(Y.keyCode){case 38:case 40:c=(Y.keyCode==38)?X.getPreviousEnabledSibling():X.getNextEnabledSibling();if(c){this.clearActiveItem();c.cfg.setProperty("selected",true);c.focus();if(this.cfg.getProperty("maxheight")>0){N=this.body;e=N.scrollTop;R=N.offsetHeight;a=this.getItems();Q=a.length-1;W=c.element.offsetTop;if(Y.keyCode==40){if(W>=(R+e)){N.scrollTop=W-R;}else{if(W<=e){N.scrollTop=0;}}if(c==a[Q]){N.scrollTop=c.element.offsetTop;}}else{if(W<=e){N.scrollTop=W-c.element.offsetHeight;}else{if(W>=(e+R)){N.scrollTop=W;}}if(c==a[0]){N.scrollTop=0;}}e=N.scrollTop;d=N.scrollHeight-N.offsetHeight;if(e===0){this._disableScrollHeader();this._enableScrollFooter();}else{if(e==d){this._enableScrollHeader();this._disableScrollFooter();}else{this._enableScrollHeader();this._enableScrollFooter();}}}}M.preventDefault(Y);P();break;case 39:U=Z.getProperty("submenu");if(U){if(!Z.getProperty("selected")){Z.setProperty("selected",true);}U.show();U.setInitialFocus();U.setInitialSelection();}else{S=this.getRoot();if(S instanceof YAHOO.widget.MenuBar){c=S.activeItem.getNextEnabledSibling();if(c){S.clearActiveItem();c.cfg.setProperty("selected",true);U=c.cfg.getProperty("submenu");if(U){U.show();}c.focus();}}}M.preventDefault(Y);P();break;case 37:if(O){T=O.parent;if(T instanceof YAHOO.widget.MenuBar){c=T.activeItem.getPreviousEnabledSibling();if(c){T.clearActiveItem();c.cfg.setProperty("selected",true);U=c.cfg.getProperty("submenu");if(U){U.show();}c.focus();}}else{this.hide();O.focus();}}M.preventDefault(Y);P();break;}}if(Y.keyCode==27){if(this.cfg.getProperty("position")=="dynamic"){this.hide();if(this.parent){this.parent.focus();}}else{if(this.activeItem){U=this.activeItem.cfg.getProperty("submenu");if(U&&U.cfg.getProperty("visible")){U.hide();this.activeItem.focus();}else{this.activeItem.blur();this.activeItem.cfg.setProperty("selected",false);
}}}M.preventDefault(Y);}},_onKeyPress:function(P,O){var N=O[0];if(N.keyCode==40||N.keyCode==38){M.preventDefault(N);}},_onYChange:function(O,N){var Q=this.parent,S,P,R;if(Q){S=Q.parent.body.scrollTop;if(S>0){R=(this.cfg.getProperty("y")-S);C.setY(this.element,R);P=this.iframe;if(P){C.setY(P,R);}this.cfg.setProperty("y",R,true);}}},_onScrollTargetMouseOver:function(T,W){this._cancelHideDelay();var P=M.getTarget(T),R=this.body,V=this,Q=this.cfg.getProperty("scrollincrement"),N,O;function U(){var X=R.scrollTop;if(X<N){R.scrollTop=(X+Q);V._enableScrollHeader();}else{R.scrollTop=N;window.clearInterval(V._nBodyScrollId);V._disableScrollFooter();}}function S(){var X=R.scrollTop;if(X>0){R.scrollTop=(X-Q);V._enableScrollFooter();}else{R.scrollTop=0;window.clearInterval(V._nBodyScrollId);V._disableScrollHeader();}}if(C.hasClass(P,"hd")){O=S;}else{N=R.scrollHeight-R.offsetHeight;O=U;}this._nBodyScrollId=window.setInterval(O,10);},_onScrollTargetMouseOut:function(O,N){window.clearInterval(this._nBodyScrollId);this._cancelHideDelay();},_onInit:function(O,N){this.cfg.subscribeToConfigEvent("visible",this._onVisibleChange);var P=!this.parent,Q=this.lazyLoad;if(((P&&!Q)||(P&&(this.cfg.getProperty("visible")||this.cfg.getProperty("position")=="static"))||(!P&&!Q))&&this.getItemGroups().length===0){if(this.srcElement){this._initSubTree();}if(this.itemData){this.addItems(this.itemData);}}else{if(Q){this.cfg.fireQueue();}}},_onBeforeRender:function(Q,P){var R=this.element,U=this._aListElements.length,O=true,T=0,N,S;if(U>0){do{N=this._aListElements[T];if(N){if(O){C.addClass(N,"first-of-type");O=false;}if(!C.isAncestor(R,N)){this.appendToBody(N);}S=this._aGroupTitleElements[T];if(S){if(!C.isAncestor(R,S)){N.parentNode.insertBefore(S,N);}C.addClass(N,"hastitle");}}T++;}while(T<U);}},_onRender:function(O,N){if(this.cfg.getProperty("position")=="dynamic"){if(!this.cfg.getProperty("visible")){this.positionOffScreen();}}},_onBeforeShow:function(W,R){var V,O,S,Q,T;if(this.lazyLoad&&this.getItemGroups().length===0){if(this.srcElement){this._initSubTree();}if(this.itemData){if(this.parent&&this.parent.parent&&this.parent.parent.srcElement&&this.parent.parent.srcElement.tagName.toUpperCase()=="SELECT"){V=this.itemData.length;for(O=0;O<V;O++){if(this.itemData[O].tagName){this.addItem((new this.ITEM_TYPE(this.itemData[O])));}}}else{this.addItems(this.itemData);}}T=this.srcElement;if(T){if(T.tagName.toUpperCase()=="SELECT"){if(C.inDocument(T)){this.render(T.parentNode);}else{this.render(this.cfg.getProperty("container"));}}else{this.render();}}else{if(this.parent){this.render(this.parent.element);}else{this.render(this.cfg.getProperty("container"));}}}var P=this.cfg.getProperty("maxheight"),N=this.cfg.getProperty("minscrollheight"),U=this.cfg.getProperty("position")=="dynamic";if(!this.parent&&U){this.cfg.refireEvent("xy");}function X(){this.cfg.setProperty("maxheight",0);this.hideEvent.unsubscribe(X);}if(!(this instanceof YAHOO.widget.MenuBar)&&U){if(P===0){S=C.getViewportHeight();if(this.parent&&this.parent.parent instanceof YAHOO.widget.MenuBar){Q=YAHOO.util.Region.getRegion(this.parent.element);S=(S-Q.bottom);}if(this.element.offsetHeight>=S){P=(S-(B.VIEWPORT_OFFSET*2));if(P<N){P=N;}this.cfg.setProperty("maxheight",P);this.hideEvent.subscribe(X);}}}},_onShow:function(Q,P){var T=this.parent,S,N,O;function R(V){var U;if(V.type=="mousedown"||(V.type=="keydown"&&V.keyCode==27)){U=M.getTarget(V);if(U!=S.element||!C.isAncestor(S.element,U)){S.cfg.setProperty("autosubmenudisplay",false);M.removeListener(document,"mousedown",R);M.removeListener(document,"keydown",R);}}}if(T){S=T.parent;N=S.cfg.getProperty("submenualignment");O=this.cfg.getProperty("submenualignment");if((N[0]!=O[0])&&(N[1]!=O[1])){this.cfg.setProperty("submenualignment",[N[0],N[1]]);}if(!S.cfg.getProperty("autosubmenudisplay")&&(S instanceof YAHOO.widget.MenuBar||S.cfg.getProperty("position")=="static")){S.cfg.setProperty("autosubmenudisplay",true);M.on(document,"mousedown",R);M.on(document,"keydown",R);}}},_onBeforeHide:function(P,O){var N=this.activeItem,R,Q;if(N){R=N.cfg;R.setProperty("selected",false);Q=R.getProperty("submenu");if(Q){Q.hide();}}if(this.getRoot()==this){this.blur();}},_onParentMenuConfigChange:function(O,N,R){var P=N[0][0],Q=N[0][1];switch(P){case"iframe":case"constraintoviewport":case"hidedelay":case"showdelay":case"submenuhidedelay":case"clicktohide":case"effect":case"classname":case"scrollincrement":case"minscrollheight":R.cfg.setProperty(P,Q);break;}},_onParentMenuRender:function(O,N,S){var P=S.parent.parent.cfg,Q={constraintoviewport:P.getProperty("constraintoviewport"),xy:[0,0],clicktohide:P.getProperty("clicktohide"),effect:P.getProperty("effect"),showdelay:P.getProperty("showdelay"),hidedelay:P.getProperty("hidedelay"),submenuhidedelay:P.getProperty("submenuhidedelay"),classname:P.getProperty("classname"),scrollincrement:P.getProperty("scrollincrement"),minscrollheight:P.getProperty("minscrollheight"),iframe:P.getProperty("iframe")},R;S.cfg.applyConfig(Q);if(!this.lazyLoad){R=this.parent.element;if(this.element.parentNode==R){this.render();}else{this.render(R);}}},_onSubmenuBeforeShow:function(P,O){var Q=this.parent,N=Q.parent.cfg.getProperty("submenualignment");if(!this.cfg.getProperty("context")){this.cfg.setProperty("context",[Q.element,N[0],N[1]]);}else{this.align();}},_onMenuItemFocus:function(O,N){this.parent.focusEvent.fire(this);},_onMenuItemBlur:function(O,N){this.parent.blurEvent.fire(this);},_onMenuItemDestroy:function(P,O,N){this._removeItemFromGroupByValue(N.groupIndex,N);},_onMenuItemConfigChange:function(P,O,N){var R=O[0][0],S=O[0][1],Q;switch(R){case"selected":if(S===true){this.activeItem=N;}break;case"submenu":Q=O[0][1];if(Q){this._configureSubmenu(N);}break;}},enforceConstraints:function(Q,P,W){var j=this.parent,f=B.VIEWPORT_OFFSET,b=this.element,S=this.cfg,T=P[0],R=b.offsetHeight,c=b.offsetWidth,i=C.getViewportWidth(),a=C.getViewportHeight(),Z=(j&&j.parent instanceof YAHOO.widget.MenuBar)?0:f,d=S.getProperty("context"),X=d?d[0]:null,Y,h,O,N,g,e,V,U;
if(c<i){V=T[0];g=C.getDocumentScrollLeft();h=g+Z;N=g+i-c-Z;if(V<f){V=h;}else{if((V+c)>i){if(X&&((V-X.offsetWidth)>c)){if(j&&j.parent instanceof YAHOO.widget.MenuBar){V=(V-(c-X.offsetWidth));}else{V=(V-(X.offsetWidth+c));}}else{V=N;}}}}if(R<a){U=T[1];e=C.getDocumentScrollTop();Y=e+Z;O=e+a-R-Z;if(U<f){U=Y;}else{if(U>O){if(X&&(U>R)){U=((U+X.offsetHeight)-R);}else{U=O;}}}}S.setProperty("x",V,true);S.setProperty("y",U,true);S.setProperty("xy",[V,U],true);},configVisible:function(P,O,Q){var N,R;if(this.cfg.getProperty("position")=="dynamic"){F.superclass.configVisible.call(this,P,O,Q);}else{N=O[0];R=C.getStyle(this.element,"display");C.setStyle(this.element,"visibility","visible");if(N){if(R!="block"){this.beforeShowEvent.fire();C.setStyle(this.element,"display","block");this.showEvent.fire();}}else{if(R=="block"){this.beforeHideEvent.fire();C.setStyle(this.element,"display","none");this.hideEvent.fire();}}}},configPosition:function(P,O,S){var R=this.element,Q=O[0]=="static"?"static":"absolute",T=this.cfg,N;C.setStyle(R,"position",Q);if(Q=="static"){C.setStyle(R,"display","block");T.setProperty("visible",true);}else{C.setStyle(R,"visibility","hidden");}if(Q=="absolute"){N=T.getProperty("zindex");if(!N||N===0){N=this.parent?(this.parent.parent.cfg.getProperty("zindex")+1):1;T.setProperty("zindex",N);}}},configIframe:function(O,N,P){if(this.cfg.getProperty("position")=="dynamic"){F.superclass.configIframe.call(this,O,N,P);}},configHideDelay:function(O,N,R){var T=N[0],S=this.mouseOutEvent,P=this.mouseOverEvent,Q=this.keyDownEvent;if(T>0){if(!this._bHideDelayEventHandlersAssigned){S.subscribe(this._execHideDelay);P.subscribe(this._cancelHideDelay);Q.subscribe(this._cancelHideDelay);this._bHideDelayEventHandlersAssigned=true;}}else{S.unsubscribe(this._execHideDelay);P.unsubscribe(this._cancelHideDelay);Q.unsubscribe(this._cancelHideDelay);this._bHideDelayEventHandlersAssigned=false;}},configContainer:function(O,N,Q){var P=N[0];if(typeof P=="string"){this.cfg.setProperty("container",document.getElementById(P),true);}},_setMaxHeight:function(O,N,P){this.cfg.setProperty("maxheight",P);this.renderEvent.unsubscribe(this._setMaxHeight);},configMaxHeight:function(a,U,X){var T=U[0],Q=this.element,R=this.body,Y=this.header,O=this.footer,W=this._onScrollTargetMouseOver,b=this._onScrollTargetMouseOut,N=this.cfg.getProperty("minscrollheight"),V,S,P;if(T!==0&&T<N){T=N;}if(this.lazyLoad&&!R){this.renderEvent.unsubscribe(this._setMaxHeight);if(T>0){this.renderEvent.subscribe(this._setMaxHeight,T,this);}return ;}C.setStyle(R,"height","");C.removeClass(R,"yui-menu-body-scrolled");var Z=((H.gecko&&this.parent&&this.parent.parent&&this.parent.parent.cfg.getProperty("position")=="dynamic")||H.ie);if(Z){if(!this.cfg.getProperty("width")){S=Q.offsetWidth;Q.style.width=S+"px";P=(S-(Q.offsetWidth-S))+"px";this.cfg.setProperty("width",P);}}if(!Y&&!O){this.setHeader("&#32;");this.setFooter("&#32;");Y=this.header;O=this.footer;C.addClass(Y,"topscrollbar");C.addClass(O,"bottomscrollbar");Q.insertBefore(Y,R);Q.appendChild(O);}V=(T-(Y.offsetHeight+Y.offsetHeight));if(V>0&&(R.offsetHeight>T)){C.addClass(R,"yui-menu-body-scrolled");C.setStyle(R,"height",(V+"px"));M.on(Y,"mouseover",W,this,true);M.on(Y,"mouseout",b,this,true);M.on(O,"mouseover",W,this,true);M.on(O,"mouseout",b,this,true);this._disableScrollHeader();this._enableScrollFooter();}else{if(Y&&O){if(Z){this.cfg.setProperty("width","");}this._enableScrollHeader();this._enableScrollFooter();M.removeListener(Y,"mouseover",W);M.removeListener(Y,"mouseout",b);M.removeListener(O,"mouseover",W);M.removeListener(O,"mouseout",b);Q.removeChild(Y);Q.removeChild(O);this.header=null;this.footer=null;}}this.cfg.refireEvent("iframe");},configClassName:function(P,O,Q){var N=O[0];if(this._sClassName){C.removeClass(this.element,this._sClassName);}C.addClass(this.element,N);this._sClassName=N;},_onItemAdded:function(O,N){var P=N[0];if(P){P.cfg.setProperty("disabled",true);}},configDisabled:function(P,O,S){var R=O[0],N=this.getItems(),T,Q;if(E.isArray(N)){T=N.length;if(T>0){Q=T-1;do{N[Q].cfg.setProperty("disabled",R);}while(Q--);}if(R){this.clearActiveItem(true);C.addClass(this.element,"disabled");this.itemAddedEvent.subscribe(this._onItemAdded);}else{C.removeClass(this.element,"disabled");this.itemAddedEvent.unsubscribe(this._onItemAdded);}}},onRender:function(R,Q){function S(){var W=this.element,V=this._shadow;if(V&&W){V.style.width=(W.offsetWidth+6)+"px";V.style.height=(W.offsetHeight+1)+"px";}}function U(){this.element.appendChild(this._shadow);}function O(){C.addClass(this._shadow,"yui-menu-shadow-visible");}function N(){C.removeClass(this._shadow,"yui-menu-shadow-visible");}function T(){var W=this._shadow,V,X;if(!W){V=this.element;X=this;if(!G){G=document.createElement("div");G.className="yui-menu-shadow yui-menu-shadow-visible";}W=G.cloneNode(false);V.appendChild(W);this._shadow=W;this.beforeShowEvent.subscribe(O);this.beforeHideEvent.subscribe(N);if(H.ie){window.setTimeout(function(){S.call(X);X.syncIframe();},0);this.cfg.subscribeToConfigEvent("width",S);this.cfg.subscribeToConfigEvent("height",S);this.cfg.subscribeToConfigEvent("maxheight",S);this.changeContentEvent.subscribe(S);D.textResizeEvent.subscribe(S,X,true);this.destroyEvent.subscribe(function(){D.textResizeEvent.unsubscribe(S,X);});}this.cfg.subscribeToConfigEvent("maxheight",U);}}function P(){T.call(this);this.beforeShowEvent.unsubscribe(P);}if(this.cfg.getProperty("position")=="dynamic"){if(this.cfg.getProperty("visible")){T.call(this);}else{this.beforeShowEvent.subscribe(P);}}},initEvents:function(){F.superclass.initEvents.call(this);var N=L.LIST;this.mouseOverEvent=this.createEvent(A.MOUSE_OVER);this.mouseOverEvent.signature=N;this.mouseOutEvent=this.createEvent(A.MOUSE_OUT);this.mouseOutEvent.signature=N;this.mouseDownEvent=this.createEvent(A.MOUSE_DOWN);this.mouseDownEvent.signature=N;this.mouseUpEvent=this.createEvent(A.MOUSE_UP);this.mouseUpEvent.signature=N;this.clickEvent=this.createEvent(A.CLICK);this.clickEvent.signature=N;
this.keyPressEvent=this.createEvent(A.KEY_PRESS);this.keyPressEvent.signature=N;this.keyDownEvent=this.createEvent(A.KEY_DOWN);this.keyDownEvent.signature=N;this.keyUpEvent=this.createEvent(A.KEY_UP);this.keyUpEvent.signature=N;this.focusEvent=this.createEvent(A.FOCUS);this.focusEvent.signature=N;this.blurEvent=this.createEvent(A.BLUR);this.blurEvent.signature=N;this.itemAddedEvent=this.createEvent(A.ITEM_ADDED);this.itemAddedEvent.signature=N;this.itemRemovedEvent=this.createEvent(A.ITEM_REMOVED);this.itemRemovedEvent.signature=N;},positionOffScreen:function(){var O=this.iframe,N=this.OFF_SCREEN_POSITION;C.setXY(this.element,N);if(O){C.setXY(O,N);}},getRoot:function(){var O=this.parent,N;if(O){N=O.parent;return N?N.getRoot():this;}else{return this;}},toString:function(){var O="Menu",N=this.id;if(N){O+=(" "+N);}return O;},setItemGroupTitle:function(S,R){var Q,P,O,N;if(typeof S=="string"&&S.length>0){Q=typeof R=="number"?R:0;P=this._aGroupTitleElements[Q];if(P){P.innerHTML=S;}else{P=document.createElement(this.GROUP_TITLE_TAG_NAME);P.innerHTML=S;this._aGroupTitleElements[Q]=P;}O=this._aGroupTitleElements.length-1;do{if(this._aGroupTitleElements[O]){C.removeClass(this._aGroupTitleElements[O],"first-of-type");N=O;}}while(O--);if(N!==null){C.addClass(this._aGroupTitleElements[N],"first-of-type");}this.changeContentEvent.fire();}},addItem:function(N,O){if(N){return this._addItemToGroup(O,N);}},addItems:function(Q,P){var S,N,R,O;if(E.isArray(Q)){S=Q.length;N=[];for(O=0;O<S;O++){R=Q[O];if(R){if(E.isArray(R)){N[N.length]=this.addItems(R,O);}else{N[N.length]=this._addItemToGroup(P,R);}}}if(N.length){return N;}}},insertItem:function(N,O,P){if(N){return this._addItemToGroup(P,N,O);}},removeItem:function(N,O){var P;if(typeof N!="undefined"){if(N instanceof YAHOO.widget.MenuItem){P=this._removeItemFromGroupByValue(O,N);}else{if(typeof N=="number"){P=this._removeItemFromGroupByIndex(O,N);}}if(P){P.destroy();return P;}}},getItems:function(){var P=this._aItemGroups,O,N=[];if(E.isArray(P)){O=P.length;return((O==1)?P[0]:(Array.prototype.concat.apply(N,P)));}},getItemGroups:function(){return this._aItemGroups;},getItem:function(N,O){var P;if(typeof N=="number"){P=this._getItemGroup(O);if(P){return P[N];}}},getSubmenus:function(){var O=this.getItems(),S=O.length,N,P,R,Q;if(S>0){N=[];for(Q=0;Q<S;Q++){R=O[Q];if(R){P=R.cfg.getProperty("submenu");if(P){N[N.length]=P;}}}}return N;},clearContent:function(){var R=this.getItems(),O=R.length,P=this.element,Q=this.body,V=this.header,N=this.footer,U,T,S;if(O>0){S=O-1;do{U=R[S];if(U){T=U.cfg.getProperty("submenu");if(T){this.cfg.configChangedEvent.unsubscribe(this._onParentMenuConfigChange,T);this.renderEvent.unsubscribe(this._onParentMenuRender,T);}this.removeItem(U);}}while(S--);}if(V){M.purgeElement(V);P.removeChild(V);}if(N){M.purgeElement(N);P.removeChild(N);}if(Q){M.purgeElement(Q);Q.innerHTML="";}this.activeItem=null;this._aItemGroups=[];this._aListElements=[];this._aGroupTitleElements=[];this.cfg.setProperty("width",null);},destroy:function(){this.clearContent();this._aItemGroups=null;this._aListElements=null;this._aGroupTitleElements=null;F.superclass.destroy.call(this);},setInitialFocus:function(){var N=this._getFirstEnabledItem();if(N){N.focus();}},setInitialSelection:function(){var N=this._getFirstEnabledItem();if(N){N.cfg.setProperty("selected",true);}},clearActiveItem:function(P){if(this.cfg.getProperty("showdelay")>0){this._cancelShowDelay();}var N=this.activeItem,Q,O;if(N){Q=N.cfg;if(P){N.blur();}Q.setProperty("selected",false);O=Q.getProperty("submenu");if(O){O.hide();}this.activeItem=null;}},focus:function(){if(!this.hasFocus()){this.setInitialFocus();}},blur:function(){var N;if(this.hasFocus()){N=K.getFocusedMenuItem();if(N){N.blur();}}},hasFocus:function(){return(K.getFocusedMenu()==this.getRoot());},subscribe:function(){function Q(V,U,X){var Y=U[0],W=Y.cfg.getProperty("submenu");if(W){W.subscribe.apply(W,X);}}function T(V,U,X){var W=this.cfg.getProperty("submenu");if(W){W.subscribe.apply(W,X);}}F.superclass.subscribe.apply(this,arguments);F.superclass.subscribe.call(this,"itemAdded",Q,arguments);var N=this.getItems(),S,R,O,P;if(N){S=N.length;if(S>0){P=S-1;do{R=N[P];O=R.cfg.getProperty("submenu");if(O){O.subscribe.apply(O,arguments);}else{R.cfg.subscribeToConfigEvent("submenu",T,arguments);}}while(P--);}}},initDefaultConfig:function(){F.superclass.initDefaultConfig.call(this);var N=this.cfg;N.addProperty(J.VISIBLE.key,{handler:this.configVisible,value:J.VISIBLE.value,validator:J.VISIBLE.validator});N.addProperty(J.CONSTRAIN_TO_VIEWPORT.key,{handler:this.configConstrainToViewport,value:J.CONSTRAIN_TO_VIEWPORT.value,validator:J.CONSTRAIN_TO_VIEWPORT.validator,supercedes:J.CONSTRAIN_TO_VIEWPORT.supercedes});N.addProperty(J.POSITION.key,{handler:this.configPosition,value:J.POSITION.value,validator:J.POSITION.validator,supercedes:J.POSITION.supercedes});N.addProperty(J.SUBMENU_ALIGNMENT.key,{value:J.SUBMENU_ALIGNMENT.value,suppressEvent:J.SUBMENU_ALIGNMENT.suppressEvent});N.addProperty(J.AUTO_SUBMENU_DISPLAY.key,{value:J.AUTO_SUBMENU_DISPLAY.value,validator:J.AUTO_SUBMENU_DISPLAY.validator,suppressEvent:J.AUTO_SUBMENU_DISPLAY.suppressEvent});N.addProperty(J.SHOW_DELAY.key,{value:J.SHOW_DELAY.value,validator:J.SHOW_DELAY.validator,suppressEvent:J.SHOW_DELAY.suppressEvent});N.addProperty(J.HIDE_DELAY.key,{handler:this.configHideDelay,value:J.HIDE_DELAY.value,validator:J.HIDE_DELAY.validator,suppressEvent:J.HIDE_DELAY.suppressEvent});N.addProperty(J.SUBMENU_HIDE_DELAY.key,{value:J.SUBMENU_HIDE_DELAY.value,validator:J.SUBMENU_HIDE_DELAY.validator,suppressEvent:J.SUBMENU_HIDE_DELAY.suppressEvent});N.addProperty(J.CLICK_TO_HIDE.key,{value:J.CLICK_TO_HIDE.value,validator:J.CLICK_TO_HIDE.validator,suppressEvent:J.CLICK_TO_HIDE.suppressEvent});N.addProperty(J.CONTAINER.key,{handler:this.configContainer,value:document.body,suppressEvent:J.CONTAINER.suppressEvent});N.addProperty(J.SCROLL_INCREMENT.key,{value:J.SCROLL_INCREMENT.value,validator:J.SCROLL_INCREMENT.validator,supercedes:J.SCROLL_INCREMENT.supercedes,suppressEvent:J.SCROLL_INCREMENT.suppressEvent});
N.addProperty(J.MIN_SCROLL_HEIGHT.key,{value:J.MIN_SCROLL_HEIGHT.value,validator:J.MIN_SCROLL_HEIGHT.validator,supercedes:J.MIN_SCROLL_HEIGHT.supercedes,suppressEvent:J.MIN_SCROLL_HEIGHT.suppressEvent});N.addProperty(J.MAX_HEIGHT.key,{handler:this.configMaxHeight,value:J.MAX_HEIGHT.value,validator:J.MAX_HEIGHT.validator,suppressEvent:J.MAX_HEIGHT.suppressEvent,supercedes:J.MAX_HEIGHT.supercedes});N.addProperty(J.CLASS_NAME.key,{handler:this.configClassName,value:J.CLASS_NAME.value,validator:J.CLASS_NAME.validator,supercedes:J.CLASS_NAME.supercedes});N.addProperty(J.DISABLED.key,{handler:this.configDisabled,value:J.DISABLED.value,validator:J.DISABLED.validator,suppressEvent:J.DISABLED.suppressEvent});}});})();(function(){YAHOO.widget.MenuItem=function(K,J){if(K){if(J){this.parent=J.parent;this.value=J.value;this.id=J.id;}this.init(K,J);}};var B=YAHOO.util.Dom,C=YAHOO.widget.Module,E=YAHOO.widget.Menu,H=YAHOO.widget.MenuItem,I=YAHOO.util.CustomEvent,F=YAHOO.lang,D,A={"MOUSE_OVER":"mouseover","MOUSE_OUT":"mouseout","MOUSE_DOWN":"mousedown","MOUSE_UP":"mouseup","CLICK":"click","KEY_PRESS":"keypress","KEY_DOWN":"keydown","KEY_UP":"keyup","ITEM_ADDED":"itemAdded","ITEM_REMOVED":"itemRemoved","FOCUS":"focus","BLUR":"blur","DESTROY":"destroy"},G={"TEXT":{key:"text",value:"",validator:F.isString,suppressEvent:true},"HELP_TEXT":{key:"helptext",supercedes:["text"],suppressEvent:true},"URL":{key:"url",value:"#",suppressEvent:true},"TARGET":{key:"target",suppressEvent:true},"EMPHASIS":{key:"emphasis",value:false,validator:F.isBoolean,suppressEvent:true,supercedes:["text"]},"STRONG_EMPHASIS":{key:"strongemphasis",value:false,validator:F.isBoolean,suppressEvent:true,supercedes:["text"]},"CHECKED":{key:"checked",value:false,validator:F.isBoolean,suppressEvent:true,supercedes:["disabled","selected"]},"SUBMENU":{key:"submenu",suppressEvent:true,supercedes:["disabled","selected"]},"DISABLED":{key:"disabled",value:false,validator:F.isBoolean,suppressEvent:true,supercedes:["text","selected"]},"SELECTED":{key:"selected",value:false,validator:F.isBoolean,suppressEvent:true},"ONCLICK":{key:"onclick",suppressEvent:true},"CLASS_NAME":{key:"classname",value:null,validator:F.isString,suppressEvent:true}};H.prototype={CSS_CLASS_NAME:"yuimenuitem",CSS_LABEL_CLASS_NAME:"yuimenuitemlabel",SUBMENU_TYPE:null,_oAnchor:null,_oHelpTextEM:null,_oSubmenu:null,_oOnclickAttributeValue:null,_sClassName:null,constructor:H,index:null,groupIndex:null,parent:null,element:null,srcElement:null,value:null,browser:C.prototype.browser,id:null,destroyEvent:null,mouseOverEvent:null,mouseOutEvent:null,mouseDownEvent:null,mouseUpEvent:null,clickEvent:null,keyPressEvent:null,keyDownEvent:null,keyUpEvent:null,focusEvent:null,blurEvent:null,init:function(J,R){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=E;}this.cfg=new YAHOO.util.Config(this);this.initDefaultConfig();var O=I.LIST,N=this.cfg,P="#",Q,K,M,L;if(F.isString(J)){this._createRootNodeStructure();N.queueProperty("text",J);}else{if(J&&J.tagName){switch(J.tagName.toUpperCase()){case"OPTION":this._createRootNodeStructure();N.queueProperty("text",J.text);N.queueProperty("disabled",J.disabled);this.value=J.value;this.srcElement=J;break;case"OPTGROUP":this._createRootNodeStructure();N.queueProperty("text",J.label);N.queueProperty("disabled",J.disabled);this.srcElement=J;this._initSubTree();break;case"LI":Q=B.getFirstChild(J);if(Q){P=Q.getAttribute("href");K=Q.getAttribute("target");M=Q.innerHTML;}this.srcElement=J;this.element=J;this._oAnchor=Q;N.setProperty("text",M,true);N.setProperty("url",P,true);N.setProperty("target",K,true);this._initSubTree();break;}}}if(this.element){L=(this.srcElement||this.element).id;if(!L){L=this.id||B.generateId();this.element.id=L;}this.id=L;B.addClass(this.element,this.CSS_CLASS_NAME);B.addClass(this._oAnchor,this.CSS_LABEL_CLASS_NAME);this.mouseOverEvent=this.createEvent(A.MOUSE_OVER);this.mouseOverEvent.signature=O;this.mouseOutEvent=this.createEvent(A.MOUSE_OUT);this.mouseOutEvent.signature=O;this.mouseDownEvent=this.createEvent(A.MOUSE_DOWN);this.mouseDownEvent.signature=O;this.mouseUpEvent=this.createEvent(A.MOUSE_UP);this.mouseUpEvent.signature=O;this.clickEvent=this.createEvent(A.CLICK);this.clickEvent.signature=O;this.keyPressEvent=this.createEvent(A.KEY_PRESS);this.keyPressEvent.signature=O;this.keyDownEvent=this.createEvent(A.KEY_DOWN);this.keyDownEvent.signature=O;this.keyUpEvent=this.createEvent(A.KEY_UP);this.keyUpEvent.signature=O;this.focusEvent=this.createEvent(A.FOCUS);this.focusEvent.signature=O;this.blurEvent=this.createEvent(A.BLUR);this.blurEvent.signature=O;this.destroyEvent=this.createEvent(A.DESTROY);this.destroyEvent.signature=O;if(R){N.applyConfig(R);}N.fireQueue();}},_createRootNodeStructure:function(){var J,K;if(!D){D=document.createElement("li");D.innerHTML="<a href=\"#\"></a>";}J=D.cloneNode(true);J.className=this.CSS_CLASS_NAME;K=J.firstChild;K.className=this.CSS_LABEL_CLASS_NAME;this.element=J;this._oAnchor=K;},_initSubTree:function(){var P=this.srcElement,L=this.cfg,N,M,K,J,O;if(P.childNodes.length>0){if(this.parent.lazyLoad&&this.parent.srcElement&&this.parent.srcElement.tagName.toUpperCase()=="SELECT"){L.setProperty("submenu",{id:B.generateId(),itemdata:P.childNodes});}else{N=P.firstChild;M=[];do{if(N&&N.tagName){switch(N.tagName.toUpperCase()){case"DIV":L.setProperty("submenu",N);break;case"OPTION":M[M.length]=N;break;}}}while((N=N.nextSibling));K=M.length;if(K>0){J=new this.SUBMENU_TYPE(B.generateId());L.setProperty("submenu",J);for(O=0;O<K;O++){J.addItem((new J.ITEM_TYPE(M[O])));}}}}},configText:function(S,L,N){var K=L[0],M=this.cfg,Q=this._oAnchor,J=M.getProperty("helptext"),R="",O="",P="";if(K){if(J){R="<em class=\"helptext\">"+J+"</em>";}if(M.getProperty("emphasis")){O="<em>";P="</em>";}if(M.getProperty("strongemphasis")){O="<strong>";P="</strong>";}Q.innerHTML=(O+K+P+R);}},configHelpText:function(L,K,J){this.cfg.refireEvent("text");},configURL:function(L,K,J){var N=K[0];if(!N){N="#";}var M=this._oAnchor;if(YAHOO.env.ua.opera){M.removeAttribute("href");
}M.setAttribute("href",N);},configTarget:function(M,L,K){var J=L[0],N=this._oAnchor;if(J&&J.length>0){N.setAttribute("target",J);}else{N.removeAttribute("target");}},configEmphasis:function(L,K,J){var N=K[0],M=this.cfg;if(N&&M.getProperty("strongemphasis")){M.setProperty("strongemphasis",false);}M.refireEvent("text");},configStrongEmphasis:function(M,L,K){var J=L[0],N=this.cfg;if(J&&N.getProperty("emphasis")){N.setProperty("emphasis",false);}N.refireEvent("text");},configChecked:function(S,M,O){var R=M[0],K=this.element,Q=this._oAnchor,N=this.cfg,J="-checked",L=this.CSS_CLASS_NAME+J,P=this.CSS_LABEL_CLASS_NAME+J;if(R){B.addClass(K,L);B.addClass(Q,P);}else{B.removeClass(K,L);B.removeClass(Q,P);}N.refireEvent("text");if(N.getProperty("disabled")){N.refireEvent("disabled");}if(N.getProperty("selected")){N.refireEvent("selected");}},configDisabled:function(X,R,a){var Z=R[0],L=this.cfg,P=L.getProperty("submenu"),O=L.getProperty("checked"),S=this.element,V=this._oAnchor,U="-disabled",W="-checked"+U,Y="-hassubmenu"+U,M=this.CSS_CLASS_NAME+U,N=this.CSS_LABEL_CLASS_NAME+U,T=this.CSS_CLASS_NAME+W,Q=this.CSS_LABEL_CLASS_NAME+W,K=this.CSS_CLASS_NAME+Y,J=this.CSS_LABEL_CLASS_NAME+Y;if(Z){if(L.getProperty("selected")){L.setProperty("selected",false);}B.addClass(S,M);B.addClass(V,N);if(P){B.addClass(S,K);B.addClass(V,J);}if(O){B.addClass(S,T);B.addClass(V,Q);}}else{B.removeClass(S,M);B.removeClass(V,N);if(P){B.removeClass(S,K);B.removeClass(V,J);}if(O){B.removeClass(S,T);B.removeClass(V,Q);}}},configSelected:function(X,R,a){var L=this.cfg,Y=R[0],S=this.element,V=this._oAnchor,O=L.getProperty("checked"),P=L.getProperty("submenu"),U="-selected",W="-checked"+U,Z="-hassubmenu"+U,M=this.CSS_CLASS_NAME+U,N=this.CSS_LABEL_CLASS_NAME+U,T=this.CSS_CLASS_NAME+W,Q=this.CSS_LABEL_CLASS_NAME+W,K=this.CSS_CLASS_NAME+Z,J=this.CSS_LABEL_CLASS_NAME+Z;if(YAHOO.env.ua.opera){V.blur();}if(Y&&!L.getProperty("disabled")){B.addClass(S,M);B.addClass(V,N);if(P){B.addClass(S,K);B.addClass(V,J);}if(O){B.addClass(S,T);B.addClass(V,Q);}}else{B.removeClass(S,M);B.removeClass(V,N);if(P){B.removeClass(S,K);B.removeClass(V,J);}if(O){B.removeClass(S,T);B.removeClass(V,Q);}}if(this.hasFocus()&&YAHOO.env.ua.opera){V.focus();}},_onSubmenuBeforeHide:function(M,L){var N=this.parent,J;function K(){N._oAnchor.blur();J.beforeHideEvent.unsubscribe(K);}if(N.hasFocus()){J=N.parent;J.beforeHideEvent.subscribe(K);}},configSubmenu:function(V,O,R){var Q=O[0],P=this.cfg,K=this.element,T=this._oAnchor,N=this.parent&&this.parent.lazyLoad,J="-hassubmenu",L=this.CSS_CLASS_NAME+J,S=this.CSS_LABEL_CLASS_NAME+J,U,W,M;if(Q){if(Q instanceof E){U=Q;U.parent=this;U.lazyLoad=N;}else{if(typeof Q=="object"&&Q.id&&!Q.nodeType){W=Q.id;M=Q;M.lazyload=N;M.parent=this;U=new this.SUBMENU_TYPE(W,M);P.setProperty("submenu",U,true);}else{U=new this.SUBMENU_TYPE(Q,{lazyload:N,parent:this});P.setProperty("submenu",U,true);}}if(U){B.addClass(K,L);B.addClass(T,S);this._oSubmenu=U;if(YAHOO.env.ua.opera){U.beforeHideEvent.subscribe(this._onSubmenuBeforeHide);}}}else{B.removeClass(K,L);B.removeClass(T,S);if(this._oSubmenu){this._oSubmenu.destroy();}}if(P.getProperty("disabled")){P.refireEvent("disabled");}if(P.getProperty("selected")){P.refireEvent("selected");}},configOnClick:function(L,K,J){var M=K[0];if(this._oOnclickAttributeValue&&(this._oOnclickAttributeValue!=M)){this.clickEvent.unsubscribe(this._oOnclickAttributeValue.fn,this._oOnclickAttributeValue.obj);this._oOnclickAttributeValue=null;}if(!this._oOnclickAttributeValue&&typeof M=="object"&&typeof M.fn=="function"){this.clickEvent.subscribe(M.fn,((!YAHOO.lang.isUndefined(M.obj))?M.obj:this),M.scope);this._oOnclickAttributeValue=M;}},configClassName:function(M,L,K){var J=L[0];if(this._sClassName){B.removeClass(this.element,this._sClassName);}B.addClass(this.element,J);this._sClassName=J;},initDefaultConfig:function(){var J=this.cfg;J.addProperty(G.TEXT.key,{handler:this.configText,value:G.TEXT.value,validator:G.TEXT.validator,suppressEvent:G.TEXT.suppressEvent});J.addProperty(G.HELP_TEXT.key,{handler:this.configHelpText,supercedes:G.HELP_TEXT.supercedes,suppressEvent:G.HELP_TEXT.suppressEvent});J.addProperty(G.URL.key,{handler:this.configURL,value:G.URL.value,suppressEvent:G.URL.suppressEvent});J.addProperty(G.TARGET.key,{handler:this.configTarget,suppressEvent:G.TARGET.suppressEvent});J.addProperty(G.EMPHASIS.key,{handler:this.configEmphasis,value:G.EMPHASIS.value,validator:G.EMPHASIS.validator,suppressEvent:G.EMPHASIS.suppressEvent,supercedes:G.EMPHASIS.supercedes});J.addProperty(G.STRONG_EMPHASIS.key,{handler:this.configStrongEmphasis,value:G.STRONG_EMPHASIS.value,validator:G.STRONG_EMPHASIS.validator,suppressEvent:G.STRONG_EMPHASIS.suppressEvent,supercedes:G.STRONG_EMPHASIS.supercedes});J.addProperty(G.CHECKED.key,{handler:this.configChecked,value:G.CHECKED.value,validator:G.CHECKED.validator,suppressEvent:G.CHECKED.suppressEvent,supercedes:G.CHECKED.supercedes});J.addProperty(G.DISABLED.key,{handler:this.configDisabled,value:G.DISABLED.value,validator:G.DISABLED.validator,suppressEvent:G.DISABLED.suppressEvent});J.addProperty(G.SELECTED.key,{handler:this.configSelected,value:G.SELECTED.value,validator:G.SELECTED.validator,suppressEvent:G.SELECTED.suppressEvent});J.addProperty(G.SUBMENU.key,{handler:this.configSubmenu,supercedes:G.SUBMENU.supercedes,suppressEvent:G.SUBMENU.suppressEvent});J.addProperty(G.ONCLICK.key,{handler:this.configOnClick,suppressEvent:G.ONCLICK.suppressEvent});J.addProperty(G.CLASS_NAME.key,{handler:this.configClassName,value:G.CLASS_NAME.value,validator:G.CLASS_NAME.validator,suppressEvent:G.CLASS_NAME.suppressEvent});},getNextEnabledSibling:function(){var L,O,J,N,M;function K(P,Q){return P[Q]||K(P,(Q+1));}if(this.parent instanceof E){L=this.groupIndex;O=this.parent.getItemGroups();if(this.index<(O[L].length-1)){J=K(O[L],(this.index+1));}else{if(L<(O.length-1)){N=L+1;}else{N=0;}M=K(O,N);J=K(M,0);}return(J.cfg.getProperty("disabled")||J.element.style.display=="none")?J.getNextEnabledSibling():J;}},getPreviousEnabledSibling:function(){var N,P,K,J,M;
function O(Q,R){return Q[R]||O(Q,(R-1));}function L(Q,R){return Q[R]?R:L(Q,(R+1));}if(this.parent instanceof E){N=this.groupIndex;P=this.parent.getItemGroups();if(this.index>L(P[N],0)){K=O(P[N],(this.index-1));}else{if(N>L(P,0)){J=N-1;}else{J=P.length-1;}M=O(P,J);K=O(M,(M.length-1));}return(K.cfg.getProperty("disabled")||K.element.style.display=="none")?K.getPreviousEnabledSibling():K;}},focus:function(){var N=this.parent,M=this._oAnchor,J=N.activeItem,L=this;function K(){try{if(YAHOO.env.ua.ie&&!document.hasFocus()){return ;}if(J){J.blurEvent.fire();}M.focus();L.focusEvent.fire();}catch(O){}}if(!this.cfg.getProperty("disabled")&&N&&N.cfg.getProperty("visible")&&this.element.style.display!="none"){window.setTimeout(K,0);}},blur:function(){var K=this.parent;if(!this.cfg.getProperty("disabled")&&K&&K.cfg.getProperty("visible")){var J=this;window.setTimeout(function(){try{J._oAnchor.blur();J.blurEvent.fire();}catch(L){}},0);}},hasFocus:function(){return(YAHOO.widget.MenuManager.getFocusedMenuItem()==this);},destroy:function(){var L=this.element,K,J;if(L){K=this.cfg.getProperty("submenu");if(K){K.destroy();}this.mouseOverEvent.unsubscribeAll();this.mouseOutEvent.unsubscribeAll();this.mouseDownEvent.unsubscribeAll();this.mouseUpEvent.unsubscribeAll();this.clickEvent.unsubscribeAll();this.keyPressEvent.unsubscribeAll();this.keyDownEvent.unsubscribeAll();this.keyUpEvent.unsubscribeAll();this.focusEvent.unsubscribeAll();this.blurEvent.unsubscribeAll();this.cfg.configChangedEvent.unsubscribeAll();J=L.parentNode;if(J){J.removeChild(L);this.destroyEvent.fire();}this.destroyEvent.unsubscribeAll();}},toString:function(){var K="MenuItem",J=this.id;if(J){K+=(" "+J);}return K;}};F.augmentProto(H,YAHOO.util.EventProvider);})();(function(){YAHOO.widget.ContextMenu=function(G,F){YAHOO.widget.ContextMenu.superclass.constructor.call(this,G,F);};var B=YAHOO.util.Event,E=YAHOO.widget.ContextMenu,D={"TRIGGER_CONTEXT_MENU":"triggerContextMenu","CONTEXT_MENU":(YAHOO.env.ua.opera?"mousedown":"contextmenu"),"CLICK":"click"},C={"TRIGGER":{key:"trigger",suppressEvent:true}};function A(G,F,H){this.cfg.setProperty("xy",H);this.beforeShowEvent.unsubscribe(A,H);}YAHOO.lang.extend(E,YAHOO.widget.Menu,{_oTrigger:null,_bCancelled:false,contextEventTarget:null,triggerContextMenuEvent:null,init:function(G,F){E.superclass.init.call(this,G);this.beforeInitEvent.fire(E);if(F){this.cfg.applyConfig(F,true);}this.initEvent.fire(E);},initEvents:function(){E.superclass.initEvents.call(this);this.triggerContextMenuEvent=this.createEvent(D.TRIGGER_CONTEXT_MENU);this.triggerContextMenuEvent.signature=YAHOO.util.CustomEvent.LIST;},cancel:function(){this._bCancelled=true;},_removeEventHandlers:function(){var F=this._oTrigger;if(F){B.removeListener(F,D.CONTEXT_MENU,this._onTriggerContextMenu);if(YAHOO.env.ua.opera){B.removeListener(F,D.CLICK,this._onTriggerClick);}}},_onTriggerClick:function(G,F){if(G.ctrlKey){B.stopEvent(G);}},_onTriggerContextMenu:function(H,F){if(H.type=="mousedown"&&!H.ctrlKey){return ;}var G;B.stopEvent(H);this.contextEventTarget=B.getTarget(H);this.triggerContextMenuEvent.fire(H);YAHOO.widget.MenuManager.hideVisible();if(!this._bCancelled){G=B.getXY(H);if(!YAHOO.util.Dom.inDocument(this.element)){this.beforeShowEvent.subscribe(A,G);}else{this.cfg.setProperty("xy",G);}this.show();}this._bCancelled=false;},toString:function(){var G="ContextMenu",F=this.id;if(F){G+=(" "+F);}return G;},initDefaultConfig:function(){E.superclass.initDefaultConfig.call(this);this.cfg.addProperty(C.TRIGGER.key,{handler:this.configTrigger,suppressEvent:C.TRIGGER.suppressEvent});},destroy:function(){this._removeEventHandlers();E.superclass.destroy.call(this);},configTrigger:function(G,F,I){var H=F[0];if(H){if(this._oTrigger){this._removeEventHandlers();}this._oTrigger=H;B.on(H,D.CONTEXT_MENU,this._onTriggerContextMenu,this,true);if(YAHOO.env.ua.opera){B.on(H,D.CLICK,this._onTriggerClick,this,true);}}else{this._removeEventHandlers();}}});}());YAHOO.widget.ContextMenuItem=YAHOO.widget.MenuItem;(function(){YAHOO.widget.MenuBar=function(F,E){YAHOO.widget.MenuBar.superclass.constructor.call(this,F,E);};function D(E){if(typeof E=="string"){return("dynamic,static".indexOf((E.toLowerCase()))!=-1);}}var B=YAHOO.util.Event,A=YAHOO.widget.MenuBar,C={"POSITION":{key:"position",value:"static",validator:D,supercedes:["visible"]},"SUBMENU_ALIGNMENT":{key:"submenualignment",value:["tl","bl"],suppressEvent:true},"AUTO_SUBMENU_DISPLAY":{key:"autosubmenudisplay",value:false,validator:YAHOO.lang.isBoolean,suppressEvent:true}};YAHOO.lang.extend(A,YAHOO.widget.Menu,{init:function(F,E){if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuBarItem;}A.superclass.init.call(this,F);this.beforeInitEvent.fire(A);if(E){this.cfg.applyConfig(E,true);}this.initEvent.fire(A);},CSS_CLASS_NAME:"yuimenubar",_onKeyDown:function(G,F,K){var E=F[0],L=F[1],I,J,H;if(L&&!L.cfg.getProperty("disabled")){J=L.cfg;switch(E.keyCode){case 37:case 39:if(L==this.activeItem&&!J.getProperty("selected")){J.setProperty("selected",true);}else{H=(E.keyCode==37)?L.getPreviousEnabledSibling():L.getNextEnabledSibling();if(H){this.clearActiveItem();H.cfg.setProperty("selected",true);if(this.cfg.getProperty("autosubmenudisplay")){I=H.cfg.getProperty("submenu");if(I){I.show();}}H.focus();}}B.preventDefault(E);break;case 40:if(this.activeItem!=L){this.clearActiveItem();J.setProperty("selected",true);L.focus();}I=J.getProperty("submenu");if(I){if(I.cfg.getProperty("visible")){I.setInitialSelection();I.setInitialFocus();}else{I.show();}}B.preventDefault(E);break;}}if(E.keyCode==27&&this.activeItem){I=this.activeItem.cfg.getProperty("submenu");if(I&&I.cfg.getProperty("visible")){I.hide();this.activeItem.focus();}else{this.activeItem.cfg.setProperty("selected",false);this.activeItem.blur();}B.preventDefault(E);}},_onClick:function(L,G,J){A.superclass._onClick.call(this,L,G,J);var K=G[1],M,E,F,H,I;if(K&&!K.cfg.getProperty("disabled")){M=G[0];E=B.getTarget(M);F=this.activeItem;H=this.cfg;if(F&&F!=K){this.clearActiveItem();
}K.cfg.setProperty("selected",true);I=K.cfg.getProperty("submenu");if(I){if(I.cfg.getProperty("visible")){I.hide();}else{I.show();}}}},toString:function(){var F="MenuBar",E=this.id;if(E){F+=(" "+E);}return F;},initDefaultConfig:function(){A.superclass.initDefaultConfig.call(this);var E=this.cfg;E.addProperty(C.POSITION.key,{handler:this.configPosition,value:C.POSITION.value,validator:C.POSITION.validator,supercedes:C.POSITION.supercedes});E.addProperty(C.SUBMENU_ALIGNMENT.key,{value:C.SUBMENU_ALIGNMENT.value,suppressEvent:C.SUBMENU_ALIGNMENT.suppressEvent});E.addProperty(C.AUTO_SUBMENU_DISPLAY.key,{value:C.AUTO_SUBMENU_DISPLAY.value,validator:C.AUTO_SUBMENU_DISPLAY.validator,suppressEvent:C.AUTO_SUBMENU_DISPLAY.suppressEvent});}});}());YAHOO.widget.MenuBarItem=function(B,A){YAHOO.widget.MenuBarItem.superclass.constructor.call(this,B,A);};YAHOO.lang.extend(YAHOO.widget.MenuBarItem,YAHOO.widget.MenuItem,{init:function(B,A){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=YAHOO.widget.Menu;}YAHOO.widget.MenuBarItem.superclass.init.call(this,B);var C=this.cfg;if(A){C.applyConfig(A,true);}C.fireQueue();},CSS_CLASS_NAME:"yuimenubaritem",CSS_LABEL_CLASS_NAME:"yuimenubaritemlabel",toString:function(){var A="MenuBarItem";if(this.cfg&&this.cfg.getProperty("text")){A+=(": "+this.cfg.getProperty("text"));}return A;}});YAHOO.register("menu",YAHOO.widget.Menu,{version:"2.5.0",build:"895"});/*urlmanager.js*/

function URLManager() {
	this.Mode = "low";
	this.Extention = "#";
	this.HashArray = new Array();
	
	this.Display = function (mode) {
		this.Mode = mode;
	}
	
	this.GetVariable = function (key) {
		return this.HashArray[key];
	}

	this.AddVariable = function (key, value) {
		this.HashArray[key] = value;
	}

	this.FlushVariables = function () {
		this.HashArray = new Array();
	}
	
	this.RemoveVariable = function (key) {
		delete this.HashArray[key];
	}

	this.UpdateURL = function() 
	{
			
		Hash = this.HashArray;
		Extention = "#";
		for (key in Hash) {
			Extention += key + "=" + Hash[key] + ";";
		}
		
		if (this.Mode == "high") {
			SplitResult = document.location.href.split("#");
			document.location.href = SplitResult[0] + Extention;
			window.location.hash = Extention + "q=q;";
			this.Extention = Extention;
		}
		
		else if (this.Mode == "low") {
			this.Extention = Extention + "q=q";
		}
		
	}
	
	this.forceURL = function () {
		window.location.hash = this.Extention;
	}
	
	this.returnURL = function () {
		SplitResult = document.location.href.split("#");
		url = SplitResult[0] + this.Extention;
		return url;
	}
	
	this.GetLocationHash = function() {
		Hash = window.location.hash;
		//remove leading # from hash...
		Hash = Hash.replace(/^#/,'');
		splitResult = Hash.split(";");
		if (splitResult.length > 1) {
		ReturnArray = "{";
		for (i=0;i<splitResult.length-1;i++) {
			subsplit = splitResult[i].split("=");
			ReturnArray += "\"" + subsplit[0] + "\":\"" + subsplit[1] + "\",";
		}
		//remove trailing , from return array...
		ReturnArray = ReturnArray.replace(/,$/,"}");
		return ReturnArray;
		}

		else return "{\"results\":\"noresults\"}";
	}

}/*classes.js*/

		/*
		var	hex1=new	Array("0",	"1",	"2",	"3",	"4",	"5",	"6",	"7",	"8",	"9",	"A",	"B",	"C",	"D",	"E",	"F")
		var	hex2=new	Array("0",	"1",	"2",	"3",	"4",	"5",	"6",	"7",	"8",	"9",	"A",	"B",	"C",	"D",	"E",	"F")
		var	hex3=new	Array("0",	"1",	"2",	"3",	"4",	"5",	"6",	"7",	"8",	"9",	"A",	"B",	"C",	"D",	"E",	"F")
		var	hex4=new	Array("0",	"1",	"2",	"3",	"4",	"5",	"6",	"7",	"8",	"9",	"A",	"B",	"C",	"D",	"E",	"F")
		var	hex5=new	Array("0",	"1",	"2",	"3",	"4",	"5",	"6",	"7",	"8",	"9",	"A",	"B",	"C",	"D",	"E",	"F")
		var	hex6=new	Array("0",	"1",	"2",	"3",	"4",	"5",	"6",	"7",	"8",	"9",	"A",	"B",	"C",	"D",	"E",	"F")
		var	colors	=	['#68bf4c',	'#4a8cc1',	'#b449c2'];
		var	colorIndex	=	0;
		*/
		//var	dodebug	=	true;

		function	debug(string)
		{
			if(document.getElementById("debug_window"))
			{
	//			show_debug();
	//			var currentTime = new Date();
	//			var nowstring = '' + currentTime.getMinutes() + ':'+currentTime.getSeconds();
				var currentTime = "datum"
				var nowstring = 'tijd'
				if(dodebug == true)
				{
						add_to_debug('>'+nowstring+'>'+string+'<br>');
				}
			}
			
		}

		function timing_removeNullsFromArray(array, timeago,prevtime)
		{
				var now = (new	Date()).getTime();
				if(now > prevtime+ timeago)
				{
						return removeNullsFromArray(array);
				}
				else
				{
						return array;
				}
		}

		function removeNullsFromArray(array)
		{
				var old = array;
				var i;
				var antwoordarray = [];
				for(i in old)
				{
						if(old[i])
						{
								antwoordarray[i] = old[i];
						}
				}
				return antwoordarray;
		}
		//	==================================
		//	Function	to	get	random	colors	code
		//	==================================
		/*
		function	nextColor()
		{
		if	(colorIndex	>=	colors.length)	{
		return	"#"+hex1[Math.floor(Math.random()*hex1.length)]+hex2[Math.floor(Math.random()*hex2.length)]+hex3[Math.floor(Math.random()*hex3.length)]+hex4[Math.floor(Math.random()*hex4.length)]+hex5[Math.floor(Math.random()*hex5.length)]+hex6[Math.floor(Math.random()*hex6.length)]
		var	r	=	(d2h(Math.round(Math.random()	*	255))).substring(6);
		var	g	=	(d2h(Math.round(Math.random()	*	255))).substring(6);
		var	b	=	(d2h(Math.round(Math.random()	*	255))).substring(6);
		return	'#'	+	r	+	g	+	b;
		}
		else
		{
		return	colors[colorIndex++];
		}
		}
		*/

		function URLEncode (clearString)
		{
				if(clearString == '' || clearString == null || typeof(clearString) == 'undefined')
				{
						return '';
				}
				var output = '';
				var x = 0;
				clearString = clearString.toString();
				var regex = /(^[a-zA-Z0-9_.]*)/;
				while (x < clearString.length) {
						var match = regex.exec(clearString.substr(x));
						if (match != null && match.length > 1 && match[1] != '')
						{
								output += match[1];
								x += match[1].length;
						}
						else
						{
								if (clearString[x] == ' ')
								{
										output += '+';
								}
								else
								{
										var charCode = clearString.charCodeAt(x);
										var hexVal = charCode.toString(16);
										output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
								}
								x++;
						}
				}
				return output;
		}


		function	sortTponts(a,b)
		{
				if(a.datetime	<	b.datetime)
				{
						return	-1;
				}
				else	if(a.datetime	>	b.datetime)
				{
						return	1;
				}
				return	0;

		}

		function	sortChapters(a,b)
		{
		if(a.begin	<	b.begin){	return	-1;	}
		else	if(a.begin	>	b.begin){	return	1;}
				return	0;
		}

		var	messagecacher_instance	=	null;

		//	=========================================================================
		//	Constructor.
		//	=========================================================================
		function	CacherRemover(array,threshold,cleanup_time)
		{
				// caches objects and removes after certain time
				this.cache_array	=	array;

				// cache clean up funtions
				this.touched	=	[];
				if(cleanup_time) this.cleanup_time = cleanup_time;
				else this.cleanup_time = 1000 * 60 * 1 ;// time for schedule clean up every: 1 minute

				if(threshold) this.threshold	=	threshold;//1000	*	60	*	1	;// remove objects not touched:1	min
				else this.threshold = 1000	*	60	*	2	;// remove objects not touched:1	min
				this.last_remove_nulls = 0; // time of last cleanup of array

				this.last_remove_nulls_threshold = 1000* 10 * 4; // only clean up array every 2 min

				// schedule first clean
				this.__scheduleCleanCache();

		}


		CacherRemover.prototype.unCache=function(id)
		{
				/*
				this.cache_array[id] = null;
				this.cache_array[id] = null  ;
				*/
				this.cache_array.splice(id,1,null)
				this.touched.splice(id,1,null)
				//debug("un cache " + id);

		}

		CacherRemover.prototype.__cleanCache=function()
		{
				//debug("clean cache")
				var now = (new	Date()).getTime();
				var i;
				for(i	in	this.touched)
				{
						if(this.touched[i] && this.cache_array[i])
						{
								var x = this.touched[i]	+	this.threshold ;
								if(x	<	now)
								{
										this.unCache(i)  ;
								}
						}
				}

				/*
				if(this.last_remove_nulls_threshold + this.last_remove_nulls < now)
				{
				this.touched =  removeNullsFromArray(this.touched);
				this.cache_array=	removeNullsFromArray(this.cache_array);
				this.last_remove_nulls = now;
				}
				*/
				this.__scheduleCleanCache();
		}

		CacherRemover.prototype.__scheduleCleanCache=function()
		{
				//	debug("schedule clean cache")
				//	direct	(x sec)	na	run	nog	een	keer	om	te	kijken	of	er	nog	ergens	shit	zit	in	de	queueu
				var	callwrapper	=	new	CCallWrapper(this,	this.cleanup_time,	'__cleanCache');
				CCallWrapper.asyncExecute(callwrapper);
		}

		CacherRemover.prototype.touchedObject=function(id)
		{
				this.__touched(id);
		}

		CacherRemover.prototype.__touched=function(id)
		{
				this.touched[id]	=	(new	Date()).getTime();
		}



		//	=========================================================================
		//	Constructor.
		//	=========================================================================
		function	ApiSystem(tokensystem)
		{
				// login system
				this.tokensystem	=	tokensystem;

				// request max
				this.max_active_requests = 4;
				this.numberofrequests_active	=	0;
				this.cache_expiretime = 30*1000;

				this.cb_numactive = [];  // functions to call about # active
				/* this.requestqueue	=	[];

				// cache of requests
				this.requestcache	=	[];

				// callbacks about certain functions
				this.url_callbacks	=	[];
				*/
				this.request_stack = [];
				this.work_stack = [];

				// do and schedule a clean of the arrays
				//this.__cleanArrays();
				this.__run_handle_requests();
				this.__run_handle_server_requests();

		}

		// clean arrays
		ApiSystem.prototype.__cleanArrays	=	function()
		{
				// remove old elements from cache
				this.__cleanUpCache()

				// url_callback
				var new_array = [];
				for(i in this.url_callbacks)
				{
						if(this.url_callbacks[i])
						{
								new_array[i] = this.url_callbacks[i];
						}
				}
				this.url_callbacks	= new_array;

				// requestcache
				var new_array = [];
				for(i in this.requestcache)
				{
						if(this.requestcache[i])
						{
								new_array[i] = this.requestcache[i];
						}
				}
				this.requestcache	= new_array;


				// reschedule
				var	callwrapper	=	new	CCallWrapper(this,	1000*60,	'__cleanArrays');
				CCallWrapper.asyncExecute(callwrapper);
		}


		ApiSystem.prototype.__cleanUpCache	=	function()
		{
				var	minmilisecs	=	1000	*	15;
				var	now	=	(new	Date()).getTime();
				var url;
				for(url	in	this.requestcache)
				{
						if(this.requestcache[url])
						{
								var	cachetime	=	this.requestcache[url][0];
								if(now	-	cachetime	>	minmilisecs)
								{
										this.requestcache[url]	=	null;
								}
						}
				}
		}

		ApiSystem.prototype.__updatedNumberOfActiveRequests	=	function()
		{
				var i;
				for(i in this.cb_numactive)
				{
						this.cb_numactive[i](this.numberofrequests_active,this.max_active_requests);  // temp usage of this.max_active_requests....
				}
		}

		ApiSystem.prototype.registerActiveRequestCallback	=	function(callback)
		{
				this.cb_numactive[this.cb_numactive.length] = callback	;
		}
		/*
		ApiSystem.prototype.__runQueued	=	function()
		{
		if(this.requestqueue.length	>	0)
		{
		var	x	=	this.requestqueue.shift();
		var	command=x[0];
		var	options=x[1];
		var	callbacks	=x[2];
		this.command_callbacks(command,options,callbacks);
		}
		}

		ApiSystem.prototype.command_callbacks	=	function(command,options,callbacks,dontusecache)
		{
		// set cache usage
		if(dontusecache	||	dontusecache	==	true) {}
		else dontusecache	=	false;
		var	thisinstance	=	this;
		var	usecache	=	true;
		var i, option;

		// create url
		var	url	=	"jsonapi.php?command="+command;
		var token = this.tokensystem.getToken()
		if(	token	&&	token	!=	'')
		{
		url	=	url	+	"&token="+token;
		}
		for	(option	in	options)
		{
		url	=	url	+	"&"	+	option	+	"="	+	URLEncode(options[option]);
		}


		// if in cache and cache usage
		if(usecache	==	true	&&	dontusecache	==	false)
		{
		this.__cleanUpCache();
		if(this.requestcache[url])
		{
		if(thisinstance.requestcache[url]	&&	thisinstance.requestcache[url][1])
		{
		thisinstance.__callback_results(thisinstance.requestcache[url][1],thisinstance.url_callbacks[url]);
		thisinstance.url_callbacks[url]	=	null;
		thisinstance.__runQueued();
		return;
		}
		}
		}

		// if url is already requested
		if(url in	this.url_callbacks	&&	this.url_callbacks[url]	&&	dontusecache	==	false)
		{
		// vervoeg bij callbacks
		for(i	in	callbacks)
		{
		var	callback	=	callbacks[i];
		this.url_callbacks[url].push(callback);
		}
		return;
		}

		// if to much, go and queueu
		if(this.numberofrequests_active	>=	this.max_active_requests)
		{
		var	eencommand	=	[command,options,callbacks];
		this.requestqueue.push(eencommand);
		return;
		}



		// create new callback riddle
		this.url_callbacks[url]	=	[];
		for(i	in	callbacks)
		{
		var	callback	=	callbacks[i];
		this.url_callbacks[url].push(callback);
		}
		//}


		// this.requestcache[url]	=	null;

		this.tokensystem.checkLogin(function(loggedin)
		{
		thisinstance.numberofrequests_active++;
		thisinstance.__updatedNumberOfActiveRequests();

		GDownloadUrl(url,function(doc,responseCode)
		{
		if(responseCode == 200)
		{
		// OKE
		thisinstance.numberofrequests_active--;
		thisinstance.__updatedNumberOfActiveRequests();

		try
		{
		//var	jsonData = eval('('+doc+')');
		var jsonData =  YAHOO.lang.JSON.parse(doc);

		}
		catch(err)
		{

		var txt="There was an error while acquiring data from the server.\n\n";
		txt+="Error description: " + err.description + "\n";
		txt+="Url: " +url + "\n";
		txt+="server return: " +doc + "\n";
		txt+= doc;
		debug(txt);
		thisinstance.__runQueued();
		return;
		}

		if(jsonData.error)
		{
		var txt="There was an error while acquiring data from the server.\n\n";
		txt+="Error description: " + jsonData.error + "\n";
		debug(txt);
		}

		// cache
		thisinstance.requestcache[url]	=	[];
		thisinstance.requestcache[url][0]	=	(new Date()).getTime();
		thisinstance.requestcache[url][1]	=	jsonData;

		thisinstance.__callback_results(jsonData,thisinstance.url_callbacks[url]);
		thisinstance.url_callbacks[url]	=	null;

		thisinstance.__runQueued();

		}
		else if(responseCode == -1)
		{
		thisinstance.numberofrequests_active--;
		thisinstance.__updatedNumberOfActiveRequests();
		thisinstance.__runQueued();
		debug("Data request timed out. Please try later.");
		}
		else
		{
		thisinstance.numberofrequests_active--;
		thisinstance.__updatedNumberOfActiveRequests();
		thisinstance.__runQueued();
		debug("Request resulted in error. Check XML file is retrievable.");
		}
		});
		}
		);
		}

		ApiSystem.prototype.__callback_results	=	function(results,callbacks)
		{
		for(var	i	in	callbacks)
		{
		var	callback	=	callbacks[i];
		callback(results);
		}
		}

		*/
		ApiSystem.prototype.command	=	function(command,options,callback,dontusecache)
		{
				var	callbacks	=	[callback];
				//		this.command_callbacks(command,options,callbacks,dontusecache);
				this.commandtostack(command,options,callback,dontusecache)
		}



		// new command system: 1 entry function. stacking up all requests
		ApiSystem.prototype.commandtostack	=	function(command,options,callback,dontusecache)
		{
		var theissue = {}
				theissue.command = command;
				theissue.options = options;
				theissue.callback = callback;
				theissue.dontusecache = false
				if(dontusecache == true)theissue.dontusecache = true;
				// add to beginning
				this.request_stack.unshift(theissue);
		}

		ApiSystem.prototype.__run_handle_requests__runrequeststack	=	function()
		{
				var somethingdone = false
				var now = (new	Date()).getTime();
				// pak alles van stack (?lock??)
				var tehandelenrequests = this.request_stack;

				this.request_stack = []
				for(i in tehandelenrequests)
				{

						var theissue = tehandelenrequests[i];


						// maak url
						var	url	=	"jsonapi.php?command="+theissue.command;

						var token = this.tokensystem.getToken()
						//alert(token)
						var options = theissue.options
						if(	token	&&	token	!=	'')
						{
								url	=	url	+	"&token="+token;
						}
						for	(option	in	options)
						{
								url	=	url	+	"&"	+	option	+	"="	+	URLEncode(options[option]);
						}


						// bestaat deze al in work_stack?
						if(!this.work_stack[url])
						{
						this.work_stack[url] = {}
								this.work_stack[url].last_server_requesttime = false;
								this.work_stack[url].last_server_response = false;
								this.work_stack[url].requesting_server = false
								this.work_stack[url].requests = []
						}

						// verpak en update in work_stack (??lock??)
				var thework = {}
						thework.requesttime = now
						thework.responsetime = false
						thework.expire_threshold = this.cache_expiretime
						thework.result = false
						//thework.serverworking = false
						thework.calledback = false
						thework.callback = theissue.callback
						thework.nocache = theissue.dontusecache
						thework.url = url
						this.work_stack[url].requests.unshift(thework)
						somethingdone = true;
				}

				return somethingdone;
		}

		ApiSystem.prototype.__run_handle_requests__runworkingandcleaning	=	function()
		{
				var somethingdone = false
				var now = (new	Date()).getTime();
				// verwerk alles in workstack. callbacks + cleanup
				for(url in this.work_stack)
				{
						if(this.work_stack[url])
						{
								// voor elke request die bestaat met betrekking tot deze url
								var requests = this.work_stack[url].requests
								for(i in requests)
								{
										var thework = this.work_stack[url].requests[i]
										if(thework)
										{
												// indien calledback en responsetime + cachetime
												if(thework.calledback == true &&  thework.responsetime + thework.expire_threshold < now)
												{
														// verwijder deze
														this.work_stack[url].requests[i] = null // TODO verbeter
														somethingdone = true;
												}

												//	indien result && !calledback
												if(thework.calledback == false)
												{
														//alert(' never calledback');
														if(thework.result != false)
														{
																//			 alert(' have result');
																thework.callback(thework.result)
																thework.calledback = true
																somethingdone = true;
														}
												}
										}
								}
						}
				}

				// clean up work_stack
				for(url in this.work_stack)
				{
						// voor elke request die bestaat met betrekking tot deze url
						var dontremove = false
						if(this.work_stack[url])
						{
								var requests = this.work_stack[url].requests
								for(i in requests)
								{
										var thework = this.work_stack[url].requests[i]
										if(thework)
										{
												if(this.work_stack[url].requests[i])
												{
														dontremove = true
												}
										}
								}
								if(dontremove == false && this.work_stack[url].requesting_server == false)
								{
										// remove urls which are empty of requests....
										this.work_stack[url] = null
										somethingdone = true;
								}
						}
				}
				return somethingdone;
		}

		// one to "get them of this stack, place in right spot, callbacks, cleanup => 200ms/continue
		ApiSystem.prototype.__run_handle_requests	=	function()
		{
				// pak alles van stack (?lock??)
				var donesomething = this.__run_handle_requests__runrequeststack()

				// verwerk alles in workstack. callbacks + cleanup
				donesomething = donesomething || this.__run_handle_requests__runworkingandcleaning()

				// direct continue 0ms or 200ms TODO
				if(donesomething)
				{
						var	callwrapper	=	new	CCallWrapper(this,	0,	'__run_handle_requests');
						CCallWrapper.asyncExecute(callwrapper);
				}
				else
				{
						var	callwrapper	=	new	CCallWrapper(this,	50,	'__run_handle_requests');
						CCallWrapper.asyncExecute(callwrapper);
				}
		}

		ApiSystem.prototype.__run_handle_server_requests__handleonerequest	=	function(thework)
		{
				var thisinstance = this
				var now = (new	Date()).getTime();
				var url = thework.url
				// eerst check over cached mogelijkheden
				// TODO
				if(thework.nocache == false)
				{
						if(thisinstance.work_stack[url].last_server_requesttime > now - this.cache_expiretime)
						{
								// je mag de cache gebruiken
								//alert('je mag cache gebruiken')
								thework.result = thisinstance.work_stack[url].last_server_response
								thisinstance.work_stack[url].requesting_server = false
								return
						}
				}

				thisinstance.numberofrequests_active++;
				thisinstance.__updatedNumberOfActiveRequests();

				// pak url
				var url = thework.url
				GDownloadUrl(url,function(doc,responseCode)
				{
						if(responseCode == 200)
						{

								// OKE
								var now = (new	Date()).getTime();
								thework.responsetime = now

								try
								{
										var jsonData =  YAHOO.lang.JSON.parse(doc);
								}
								catch(err)
								{
										var txt="There was an error while acquiring data from the server.\n\n";
										txt+="Error description: " + err.description + "\n";
										txt+="Url: " +url + "\n";
										txt+="server return: " +doc + "\n";
										txt+= doc;
										debug(txt);
										// WHAT HERE TODO
										
										oops_an_error_alert()
										
										this.work_stack[url].requesting_server = false
										thisinstance.numberofrequests_active--;
										thisinstance.__updatedNumberOfActiveRequests();
										return;
								}

								if(jsonData.error)
								{
										var txt="There was an error while acquiring data from the server.\n\n";
										txt+="Error description: " + jsonData.error + "\n";
										debug(txt);
										
									oops_an_error_alert()
										// WHAT HERE TODO
								}

								thework.result = jsonData
								thisinstance.work_stack[url].requesting_server = false
								thisinstance.work_stack[url].last_server_requesttime = now;
								thisinstance.work_stack[url].last_server_response = jsonData;

								thisinstance.numberofrequests_active--;
								thisinstance.__updatedNumberOfActiveRequests();
								return;
						}
						else if(responseCode == -1)
						{
								thisinstance.numberofrequests_active--;
								thisinstance.__updatedNumberOfActiveRequests();
								this.work_stack[url].requesting_server = false
								debug("Data request timed out. Please try later.");

						}
						else
						{
								thisinstance.numberofrequests_active--;
								thisinstance.__updatedNumberOfActiveRequests();
								this.work_stack[url].requesting_server = false
								debug("Request resulted in error. Check XML file is retrievable.");
						}
				});
		}

		// one to handle max X requests => 200ms/continue
		ApiSystem.prototype.__run_handle_server_requests	=	function()
		{
				// if max request te hoog wacht
				if(this.numberofrequests_active	>=	this.max_active_requests)
				{
						var	callwrapper	=	new	CCallWrapper(this,	10,	'__run_handle_server_requests');
						CCallWrapper.asyncExecute(callwrapper);
						return;
				}

				var somethingdone = false
				var now = (new	Date()).getTime();

				// verwerk alles in workstack. callbacks + cleanup
				for(url in this.work_stack)
				{
						// indien niet al aan het requesten:
						if(this.work_stack[url] && this.work_stack[url].requesting_server == false)
						{
								for(i in this.work_stack[url].requests)
								{
										var thework = this.work_stack[url].requests[i]
										if(thework && thework.result == false)
										{
												// goed, we gaan deze pakken om mee te werken
												this.work_stack[url].requesting_server = true
												// go request server
												this.__run_handle_server_requests__handleonerequest(thework)
												// reschedule
												var	callwrapper	=	new	CCallWrapper(this,	0,	'__run_handle_server_requests');
												CCallWrapper.asyncExecute(callwrapper);
												// return (stop!)
												return
										}
								}
								// geen enkele is zonder resultaat...
						}
				}

				// if here: no work possible for now
				var	callwrapper	=	new	CCallWrapper(this,	50,	'__run_handle_server_requests');
				CCallWrapper.asyncExecute(callwrapper);
		}


		//	=========================================================================
		//	Constructor.
		//	=========================================================================
		function	TokenSystem(apisystem)
		{
				if(apisystem	==	null)
				{
						this.apisystem	=	new	ApiSystem(this);
				}
				else
				{
						this.apisystem	=	apisystem;
				}

				this.user	=	false;
				this.md5pass	=	false;
				this.token	=	false;
				this.id	=	false;
		}


		TokenSystem.prototype.lostPassword	=	function(email,callback)
		{
				options	=	[];
				options["email"]	=	email;

				this.apisystem.command("USER.LOGIN.LOSTPASS",options,	function	(jsonData)
				{
						if(callback)
						{
								callback(true);
						}
				}
				);
		}

		TokenSystem.prototype.lostActivation	=	function(email,callback)
		{
				options	=	[];
				options["email"]	=	email;

				this.apisystem.command("USER.LOGIN.LOSTACTIVATION",options,	function	(jsonData)
				{
						if(callback)
						{
								callback(true);
						}
				}
				);
		}



		TokenSystem.prototype.checkLogin		=	function(callback)
		{
				//	TODO	check	login
				callback(true);
		}

		TokenSystem.prototype.setUserMD5Pass	=	function(user,md5pass)
		{
				this.user	=	user;
				this.md5pass	=	md5pass;
		}

		TokenSystem.prototype.login	=	function(user,md5pass,callback)
		{
				this.loginJson(user,md5pass,callback);
		}

		TokenSystem.prototype.loginJson	=	function(user,md5pass,callback)
		{
				var	thisinstance	=this;
				//	TODO:	make	json
				if(user)
				{
						this.user	=	user;
				}
				if(md5pass)
				{
						this.md5pass	=	md5pass;
				}

				var options	=	[];
				options["username"]	=	this.user;
				options["md5password"]	=	this.md5pass;


				this.apisystem.command("LOGIN",options,	function	(jsonData)
				{

						var	usertje	=		jsonData.user;
						thisinstance.token	=	usertje.token;
						thisinstance.id	=	usertje.id;
						if(callback)
						{
								callback(thisinstance.token,thisinstance.id,usertje);
						}

				}
				);

				/*
				url	=		"api.php?command=LOGIN&username="+this.user+"&md5password="+this.md5pass;
				var	requester	=	GXmlHttp.create();

				requester.open("GET",	url,	true);
				var	thisinstance	=	this
				requester.onreadystatechange	=	function()
				{
				if	(requester.readyState	==	4)
				{
				var	xmlDoc	=	requester.responseXML;
				//	obtain	the	array	of	markers	and	loop	through	it
				var	user	=	xmlDoc.documentElement.getElementsByTagName("user")[0];
				thisinstance.token	=	user.getAttribute("token");
				thisinstance.id	=	user.getAttribute("unumber");
				if(callback)
				{
				callback(thisinstance.token,thisinstance.id)
				}
				}
				}
				requester.send(null);
				this.scheduleCheck()
				*/
		}


		TokenSystem.prototype.scheduleCheck	=	function()
		{
				//	TODO	check	and	reschele
		}

		TokenSystem.prototype.getToken	=	function()
		{
				return	this.token;
		}

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function Languages(apisystem,extraoptions)
		{
				this.apisystem	=	apisystem;

				this.languages =	[]	;
				this.__loadAll();
		}

		Languages.prototype.getAllLanguages=function(callback,extraoptions)
		{
				callback(this.languages);
		}

		Languages.prototype.getTranslationOf=function(name,langcode,callback,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[]	;
				options['langcode']=langcode
				options['name']=name
				this.apisystem.command("LANGUAGE.TRANS.GET_TRANSLATION",options,	function	(jsonData)
				{
						var translated = jsonData.translated;
						callback(translated);
				});
		}


		Languages.prototype.getLanguage=function(id,	callback,extraoptions)
		{
				var load_db = true;
				if(extraoptions && extraoptions.load_db) load_db = extraoptions.load_db;
				var reset = false;
				if(extraoptions && extraoptions.reset) reset = extraoptions.reset;

				if(this.languages[id] &&	reset	!=	true)
				{
						if(callback)	callback(	this.languages[id]);
				}
				else
				{
						var	thisinstance	=	this;
						var tmp = new	Language(id,load_db,this.apisystem,function(thelang)
						{
								thisinstance.languages[id]	=	thelang;
								if(callback)	callback(thelang);
						}
						);
				}

		}

		Languages.prototype.__loadAll=function(callback)
		{
				var	thisinstance	=	this;

				var	options	=	[];
				this.apisystem.command("LANGUAGE.INFO.GETALL",options,	function	(jsonData)
				{
						var languages = jsonData.languages;
						for(i in languages)
						{
								var load_db = languages[i];
								thisinstance.languages[load_db.id] = new	Language(load_db.id,load_db,thisinstance.apisystem,function(thelang)
								{
										thisinstance.languages[thelang.id]	=	thelang;

								}
								);
						}
						if(callback) callback(thisinstance);
				});


		}
		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	Language(id,load,apisystem,load_callback)
		{
				this.apisystem	=	apisystem;

				this.id	=	id;
				this.name	=	null;

				if(load	==	true)
				{
						this.__load(true,load_callback);
				}
				else	if(load	==	false)
				{
				}
				else
				{
						this.__load(load,load_callback);
				}
		}

		Language.prototype.__load=function(fromdb,load_callback)
		{
				var	thisinstance	=	this;
				if	(fromdb	==	true		||	fromdb	==	null)
				{
						var	options	=	[];
						options["language_id"]	=	this.id;
						this.apisystem.command("LANGUAGE",options,	function	(jsonData)
						{
								var	language	=	jsonData.language;

								thisinstance.name	=	language.name;

								if(load_callback)
								{
										load_callback(thisinstance);
								}
						});

				}
				else
				{
						thisinstance.name	=	fromdb.name;

						if(load_callback)
						{
								load_callback(this);
						}

				}
		}

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	TypeIcon(apisystem,type)
		{
				this.apisystem	=	apisystem;
		}

		TypeIcon.prototype.getIcon	=	function()
		{
				return	TypeIcon.msgicon;
		}
		TypeIcon.msgicon	=	new	GIcon();
		TypeIcon.msgicon.image	=	"images/postit_icon.png";
		TypeIcon.msgicon.iconSize	=	new	GSize(12,	16);
		TypeIcon.msgicon.iconAnchor	=	new	GPoint(6,	16);
		TypeIcon.msgicon.infoWindowAnchor	=	new	GPoint(5,	1);

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	TreelzSystem(apisystem,tokensystem)
		{

				if(tokensystem	==	null)
				{
						this.tokensystem	=	new	TokenSystem();
				}
				else
				{
						this.tokensystem	=	tokensystem;

				}

				if(apisystem	==	null)
				{
						this.apisystem	=	new	ApiSystem(this.tokensystem);
				}
				else
				{
						this.apisystem	=	apisystem;
				}

				this.treelersocial	=	null;
				this.users	=	new	Users(this.apisystem);
				this.buurtmap	=	null;
				this.treelersocial	=	null;

				this.locations	=	new	Locations(this.apisystem);
				this.treelz	=	new	Treelz(this.apisystem,this.users);
				this.tags = new	Tags(this.apisystem);
				this.languages = new	Languages(this.apisystem);
				this.mapsystems	=	[];
				this.domainsettings = [];
				createMessageCacher(this.apisystem);
				this.init();
		}

		TreelzSystem.prototype.nullify	=	function()
		{
				this.tokensystem	=		null;
				this.apisystem	=		null;
				this.treelersocial	=	null;
				this.users	=	null;
				this.buurtmap	=	null;
				this.treelersocial	=	null;
				this.locations	=		null;
				this.treelz	=		null;
				this.tags = 	null;
				this.languages = 	null;
				this.mapsystems	=		null;
				this.domainsettings = 	null;
		}

		TreelzSystem.prototype.getDomainSetting	=	function(domain,setting,callback)
		{
				if(this.domainsettings[domain])
				{
						callback(this.domainsettings[domain][setting]);
				}
				else
				{
						var thisinstance = this;
						var	options	=	[];
						options['domain']	=	domain;

						this.apisystem.command("USER.DOMAIN.SETTING_GET_ALL",options,	function	(jsonData)
						{
								thisinstance.domainsettings[domain] = jsonData.settings
								callback(thisinstance.domainsettings[domain][setting]);
						}
						,true);
				}
		}


		TreelzSystem.prototype.setDomainSetting	=	function(domain,setting,value,callback)
		{
				debug('setting' + domain + ' ' +setting + ' ' +value)
				if(this.domainsettings[domain])
				{
				}
				else
				{
						this.domainsettings[domain] = [];
				}
				this.domainsettings[domain][setting]	=	value;
				var	options	=	[];
				options['domain']	=	domain;
				options['setting']	=	setting;
				options['value']	=	value;

				this.apisystem.command("USER.DOMAIN.SETTING_SET",options,	function	(jsonData)
				{
						debug('wtf');
						if(callback) callback(value);
				}
				,true);
		}



		TreelzSystem.prototype.addMapSystem	=	function(mapsystem)
		{
				var	nieuwenr	=	this.mapsystems.length;
				this.mapsystems[this.mapsystems.length]	=	mapsystem;
				return	nieuwenr;
		}

		TreelzSystem.prototype.getMapSystem	=	function(nr)
		{
				return	this.mapsystems[nr];
		}

		TreelzSystem.prototype.createNewMapSystem	=	function(map)
		{
				var	mapsystem	=	new	BuurtMap(map,this.tokensystem,this.apisystem,this.users,this.locations,this.treelz);
				var	nieuwenr	=	this.mapsystems.length;
				this.mapsystems[this.mapsystems.length]	=	mapsystem;
				return	nieuwenr;
		}

		TreelzSystem.prototype.loginByToken	=	function(token)
		{
				this.tokensystem.token	=	token;	//	todo
		}

		TreelzSystem.prototype.login	=	function(user,md5pass,callback)
		{
				var	thisinstance	=	this;
				this.tokensystem.login(user,md5pass,function(token,uid)
				{
						thisinstance.treeler_uid	=	uid;
						thisinstance.treelersocial	=	new	TreelerSocial(thisinstance.treeler_uid,thisinstance.apisystem,thisinstance.users,function(tsocial)
						{
								callback(token,uid);
						}
						);
				}
				);

		}

		TreelzSystem.prototype.getTreelerSocial	=	function(callback)
		{
				callback(this.treelersocial);
				return	this.treelersocial;
		}

		TreelzSystem.prototype.init	=	function(callback)
		{
				//alert('into init')
				var	thisinstance	=	this;
				if(this.treeler_uid)
				{
						if(this.treelersocial	==	null)
						{
								this.treelersocial	=	new	TreelerSocial(this.treeler_uid,this.apisystem,this.users,function(ts)
								{
										//alert('finish 1')
										if(callback)	callback();
								}
								);

						}
						else
						{
								if(callback)	callback();
						}
				}
				else	if(this.tokensystem.id)
				{
						if(this.treelersocial	==	null)
						{
								this.treelersocial	=	new	TreelerSocial(this.tokensystem.id,this.apisystem,this.users,function(ts)
								{
										//			alert('finish 2')
										if(callback)	callback();
								}
								);

						}
						else
						{
								if(callback)	callback();
						}
				}
				else
				{
						//	alert('finish 3')
						if(callback)	callback();
				}
		}


		//	=========================================================================
		//	Constructor.	Extra	class	for	logged	in	user
		//	=========================================================================

		function	TreelerSocial(uid,apisystem,users,created_callback)
		{
				//	contains	user	and	more
				this.apisystem	=	apisystem;
				this.userid	=	uid;
				this.users	=	users;
				//				this.usergroups	=	null;
				this.settings	=	null;
				this.__init(created_callback);
		}

		/*
		TreelerSocial.prototype.getGroups	=	function(callback)
		{
		//	TODO	cache!!!

		var	thisinstance	=	this;
		if(thisinstance.usergroups		==	null)
		{
		options	=	[];
		options["userid"]	=	this.userid;
		this.apisystem.command("USER.INFO.GROUPING.OFUSER",options,	function	(jsonData)
		{
		thisinstance.usergroups	=	[];
		groups	=	jsonData.groups;
		for(nr	in	groups)
		{
		group	=	groups[nr];
		thisinstance.usergroups[group.id]	=	new	Group(group.id,group,thisinstance.apisystem,thisinstance.users,null);
		}
		callback(thisinstance.usergroups);
		}
		);
		}
		else
		{
		callback(thisinstance.usergroups);
		}
		}



		TreelerSocial.prototype.getUsersFromGroup	=	function()
		{
		alert("todo	getusersgromgroup");
		}

		TreelerSocial.prototype.createGroup	=	function(name,callback)
		{

		var	thisinstance	=	this;

		options	=	[];
		options["name"]	=	name;
		options["userid"]	=	this.userid;

		this.apisystem.command("USER.EDIT.GROUPING.ADDGROUP",options,	function	(jsonData)
		{
		group	=	jsonData.group;
		thisinstance.usergroups[group.id]	=	new	Group(group.id,group,thisinstance.apisystem,thisinstance.users,null);
		callback(group);
		}
		);
		}

		TreelerSocial.prototype.createAndAddGroup	=	function(name,userid,	callback)
		{
		var	thisinstance	=	this;

		var options	=	[];
		options["name"]	=	name;
		options["userid"]	=	this.userid;
		options["add_userid"]	=	userid;

		this.apisystem.command("USER_ADDGROUP",options,	function	(jsonData)
		{
		group	=	jsonData.group;
		thisinstance.usergroups[group.id]	=	new	Group(group.id,group,thisinstance.apisystem,thisinstance.users,null);
		callback(group);
		}
		);
		}

		TreelerSocial.prototype.removeUserFromGroup	=	function(groupid,userid,	callback)
		{
		var	thisinstance	=	this;

		var options	=	[];
		options["groupid"]	=	groupid;
		options["userid"]	=	userid;

		this.apisystem.command("USER.EDIT.GROUPING.REMOVEFROMGROUP",options,	function	(jsonData)
		{
		group	=	jsonData.group;
		thisinstance.usergroups[group.id]	=	new	Group(group.id,group,thisinstance.apisystem,thisinstance.users,null);
		callback(group);
		}
		);
		}
		*/
		TreelerSocial.prototype.reactToFriendRequest=function(userid,reaction,callback)
		{
				var	thisinstance	=	this;

				var options	=	[];
				//	this	should	be	0	or	1
				options["reaction"]	=	reaction;
				options["friendid"]	=	userid;

				this.apisystem.command("USER.EDIT.REACTFRIENDREQUEST",options,	function	(jsonData)
				{
						thisinstance.__init(function(x)
						{
								callback(thisinstance);
						}
						,true);
				}
				,true);
		}

		TreelerSocial.prototype.addFriend=function(userid,msg,callback)
		{
				var	thisinstance	=	this;

				var options	=	[];
				options["msg"]	=	msg;
				options["friendid"]	=	userid;

				this.apisystem.command("USER.EDIT.ADDFRIEND",options,	function	(jsonData)
				{
						//	TODO	reload	THIS	user	__loadLoggedInData
						thisinstance.users.getUser(userid,true,function(x)
						{
								//	reset	friend...
								thisinstance.__init(function(y)
								{
										callback(thisinstance);
								}
								,true);
						}
						,true);
				}
				);
		}


		TreelerSocial.prototype.isFriend=function(userid,callback)
		{
				this.user.getFriends(function(friends)
				{
						for(i	in	friends)
						{
								if(friends[i].id	==	userid)
								{
										callback(true);
										return;
								}
						}
						callback(false)
				}
				);
		}

		TreelerSocial.prototype.addAddUserToGroup	=	function(groupid,userid,	callback)
		{
				var	thisinstance	=	this;

				var options	=	[];
				options["groupid"]	=	groupid;
				options["userid"]	=	userid;

				this.apisystem.command("USER.EDIT.GROUPING.ADDTOGROUP",options,	function	(jsonData)
				{
						group	=	jsonData.group;
						thisinstance.usergroups[group.id]	=	new	Group(group.id,group,thisinstance.apisystem,thisinstance.users,null);
						callback(group);
				}
				);
		}

		TreelerSocial.prototype.getGroupUsersWithLatestMessages	=	function(aantal,limit,groupid,callback)
		{
				var	thisinstance	=	this;
				options	=	[] ;
				options["limit"] = limit;

				options["type"] = "T";
				options["number"]	=	aantal;
				if(groupid	!=	null	&&	groupid	!=	false)
				{
						options["groupid"]	=	groupid;
				}
				this.apisystem.command("USER.FIND.LATEST_USERSWITHMESSAGES",options,	function	(jsonData)
				{
						var	resultingusers	=	[];
						var usrs	=	jsonData.users;
						var rows	=	jsonData.users.rows;

						for(nr	in	usrs)
						{
								var usr	=	usrs[nr];
								resultingusers[nr]	=	thisinstance.users.getUser(usr.id,usr,null);
						}
						callback(resultingusers, rows);
				}
				);
		}

		TreelerSocial.prototype.getRequests	=	function(callback)
		{
				if(this.invites.friendrequests)
				{
						callback(this.invites.friendrequests);
				}
				else
				{
						alert('todo	getrequests');
				}
		}

		TreelerSocial.prototype.__init	=	function(created_callback,reset)
		{
				var	thisinstance	=	this;
				this.__loadLoggedInData(true,function(data)
				{
						thisinstance.users.getUser(thisinstance.userid,true,function(usr)
						{
								thisinstance.user	=	usr;
								if(created_callback)
								{
										created_callback(thisinstance);
								}
						}
						,reset);
				}
				,reset);
		}

		TreelerSocial.prototype.getSetting	=	function(setting,callback)
		{
				if(this.settings)
				{
						callback(this.settings[setting]);
				}
				else
				{
						this.__loadLoggedInData(true,function(thisinstance)
						{
								callback(thisinstance.settings[setting]);
						}
						);
				}
		}

		TreelerSocial.prototype.setSetting	=	function(setting,value,callback)
		{

				this.settings[setting]	=	value;

				var	options	=	[];
				options['setting']	=	setting;
				options['value']	=	value;
				this.apisystem.command("USER.EDIT.TREELERSOCIAL_SETTING_SET",options,	function	(jsonData)
				{
						callback(value);
				}
				,true);
		}

		TreelerSocial.prototype.recentReplies	=	function(load_callback,extraoptions)
		{
				var	options	=	[];
				var thisinstance = this;
				options['userid'] =this.userid

				if(extraoptions)
				{
						if(extraoptions.start) options['start']=extraoptions.start;
						if(extraoptions.amount) options['amount']=extraoptions.amount;
				}
				this.apisystem.command("USER.INFO.RECENT.REPLIES",options,	function	(jsonData)
				{
						var msgs = jsonData.messages;
						var antwoord = [];
						var msgcacher	=	getMessageCacher();


						for(messagenr	in	msgs)
						{
								//																debug('found'+ messagenr + ' ' +
								var message=msgs[messagenr];
								//													debug('found'+ messagenr + ' ' +message)
								if(message)
								{
										var theid	=	message.id;
										var themessageobj =	new	Message(theid,message,thisinstance.apisystem,null);
										msgcacher.registerMessage(themessageobj);
										antwoord[theid] = themessageobj;
								}
						}
						//debug(antwoord);
						load_callback(antwoord);
				}
				);
		}


		TreelerSocial.prototype.recentRepliedTo	=	function(load_callback,extraoptions)
		{
				var	options	=	[];
				var thisinstance = this;
				options['userid'] =this.userid

				if(extraoptions)
				{
						if(extraoptions.start) options['start']=extraoptions.start;
						if(extraoptions.amount) options['amount']=extraoptions.amount;
				}
				this.apisystem.command("USER.INFO.RECENT.REPLIEDTO",options,	function	(jsonData)
				{
						var msgs = jsonData.messages;
						var antwoord = [];
						var msgcacher	=	getMessageCacher();

						for(messagenr	in	msgs)
						{
								var message=msgs[messagenr];
								if(message)
								{
										var theid	=	message.id;
										var themessageobj =	new	Message(theid,message,thisinstance.apisystem,null);
										msgcacher.registerMessage(themessageobj);
										antwoord[theid] = themessageobj;
								}
						}
						load_callback(antwoord);
				}
				);
		}

		TreelerSocial.prototype.recentReplyToReply	=	function(load_callback,extraoptions)
		{
				var	options	=	[];
				var thisinstance = this;
				options['userid'] =this.userid

				if(extraoptions)
				{
						if(extraoptions.start) options['start']=extraoptions.start;
						if(extraoptions.amount) options['amount']=extraoptions.amount;
				}
				this.apisystem.command("USER.INFO.RECENT.REPLY_TO_REPLY",options,	function	(jsonData)
				{
						var msgs = jsonData.messages;
						var antwoord = [];
						var msgcacher	=	getMessageCacher();

						for(messagenr	in	msgs)
						{
								var message=msgs[messagenr];
								if(message)
								{
										var theid	=	message.id;
										var themessageobj =	new	Message(theid,message,thisinstance.apisystem,null);
										msgcacher.registerMessage(themessageobj);
										antwoord[theid] = themessageobj;
								}
						}
						load_callback(antwoord);
				}
				);
		}
		
		TreelerSocial.prototype.hasRequestOrInvites =	function(callback,extraoptions)
		{
		  if(this.requests_present > 0)
			{
			callback(true)
			}
			else
			{
			callback(false)
			}
		}
		//				USER.INFO.OPEN_REQUESTS.GROUPS
		TreelerSocial.prototype.groupsRequestsAndInvites =	function(load_callback,extraoptions)
		{
				var	options	=	[];
				var thisinstance = this;

				this.apisystem.command("USER.INFO.OPEN_REQUESTS.GROUPS",options,	function	(jsonData)
				{
						var invites_to_groups = jsonData.invites_to_groups;
						var open_group_requests= jsonData.open_group_requests;
						/*
						var antwoord = [];
						var msgcacher	=	getMessageCacher();

						for(messagenr	in	msgs)
						{
						var message=msgs[messagenr];
						if(message)
						{
						var theid	=	message.id;
						var themessageobj =	new	Message(theid,message,thisinstance.apisystem,null);
						msgcacher.registerMessage(themessageobj);
						antwoord[theid] = themessageobj;
						}
						}*/
						load_callback(open_group_requests,invites_to_groups);
				}
				,true);
		}

		TreelerSocial.prototype.__loadLoggedInData	=	function(fromdb,load_callback,reset)
		{
				var	thisinstance	=	this;
				if	(fromdb	==	true	||	fromdb	==	null	||	reset==true)
				{
						var	options	=	[];
						this.apisystem.command("USER.INFO.LOGGEDINDATA",options,	function	(jsonData)
						{
								var	loggedin_user	=		jsonData.loggedin_user;
						thisinstance.invites= {}

								thisinstance.invites.friendrequests	=	loggedin_user.friendrequests;
								//thisinstance.invites.outstanding_friend_requests	=		loggedin_user.outstanding_friend_requests;
								
								thisinstance.requests_present = loggedin_user.requests_present
								
								thisinstance.invites.invites_to_groups	=		loggedin_user.invites_to_groups;
								thisinstance.invites.open_group_requests	=		loggedin_user.open_group_requests;
								thisinstance.settings	=	loggedin_user.settings;
								thisinstance.basegroups = loggedin_user.base_groups;

								var msgcacher	=	getMessageCacher();

								//var recent = jsonData.recent;
								var messagenr;
								load_callback(thisinstance);
						}
						,reset);
				}
				else
				{
						load_callback(thisinstance);

				}
		}

		//getGroupUsersWithLatestMessages(5,groupid,function(usrs)

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	Users(apisystem)
		{
				this.apisystem	=	apisystem;
				this.usercache	=	[]	;//	uid	->user
		}


		Users.prototype.getMultiple=function(ids,callback)
		{
				if(ids.length == 0)
				{
						callback([]);
						return
				}
				var str = ''
				var antwoord=[];
				for(i in ids)
				{
						var theid = ids[i];
						if(this.usercache[theid])
						{
								antwoord[theid] = this.usercache[theid];
						}
						else
						{
								str = str + theid + ',';

						}
				}
				if(str == '')
				{
						callback(antwoord);
						return
				}

				var thisinstance = this
				// TODO optimize with local stored
				var options = [];
				options['userids'] = str;
				this.apisystem.command("USER.INFO.BASICS_OF_MULTIPLE",	options,	function(jsonData)
				{
						for(usernr	in	jsonData.users)
						{
								var user=jsonData.users[usernr];
								if(user)
								{
										var theid	=	user.id;
										var usr = thisinstance.getUser(theid,	user,null)
										antwoord[theid] = usr
								}
						}

						callback(antwoord);
				}
				);
		}

		Users.prototype.getUser=function(userid,load_db,callback,reset)
		{
				// if(userid == '' || userid <= 0) alert('err')
				var	thisinstance	=	this;
				if(this.usercache[userid]	&&	reset	!=	true)
				{
						//	in	cache
						if(callback	!=	null)
						{
								callback(this.usercache[userid]);
						}
						return	thisinstance.usercache[userid];	//	TODO	remove
				}
				else
				{
						var	x=	new	User(userid,load_db,this.apisystem,this,function(nieuweuser)
						{
								thisinstance.usercache[userid]	=	nieuweuser;
								if(callback	!=	null)
								{
										callback(nieuweuser);
								}
								//return	thisinstance.usercache[userid];	//	TODO	remove

						}
						,reset);

						return	x;	//	tODO	remove
				}
				return	'ERROR	Users.prototype.getUser'
				//return	this.usercache[userid]
		}

		Users.prototype.getUserIdByNickname=function(nickname,callback)
		{
				if(nickname == 'treelz' || nickname == 'www')
				{
						callback(-1)
						return
				}
				var	thisinstance	=	this;
				var options	=	[];
				options["username"]	=	nickname;

				//fsdfs()
				this.apisystem.command("USER.FIND.IDBY_USERNAME",options,	function	(jsonData)
				{
						var hetid =  jsonData.userid;
						var gid = 						  jsonData.groupid;
						callback(hetid,gid)
				}
				);
		}


		Users.prototype.getUsersWithLatestMessages	=	function(aantal, limit,type,callback)
		{
				debug('getUsersWithLatestMessages is an function just to get the users. if you want one msg per user one can get the message also directly. much faster!! see intro msg+pics show!!')
				var	thisinstance	=	this
				var options	=	[];
				options["number"]	=	aantal;
				options["limit"] = limit;
				options["type"] = type;
				options["all"]	=	1;
				this.apisystem.command("USER.FIND.LATEST_USERSWITHMESSAGES",options,	function	(jsonData)
				{
						var	resultingusers	=	[];
						var usrs	=	jsonData.users;
						var rows	=	jsonData.users.rows;

						for(nr	in	usrs)
						{
								var usr	=	usrs[nr];
								resultingusers[nr]	=	thisinstance.getUser(usr.id,usr,null);
						}
						callback(resultingusers, rows);
				}
				);
		}


		Users.prototype.getLatestUsers	=	function(aantal,start,callback)
		{
				var	thisinstance	=	this;
				var options	=	[];
				options["start"] = start;
				options["number"]	=	aantal;

				this.apisystem.command("USER.FIND.LATEST_USERS",options,	function	(jsonData)
				{
						var	resultingusers	=	[];
						var usrs	=	jsonData.users;
						var rows = jsonData.users.rows;
						for(nr	in	usrs)
						{
								usr	=	usrs[nr];
								resultingusers[nr]	=	thisinstance.getUser(usr.id,usr,null);
						}
						callback(resultingusers, rows)
				}
				);
		}

		Users.prototype.searchPerson	=	function(string,	callback,extraoptions)
		{
				var	thisinstance	=	this;
				var options	=	[];
				options["string"]	=	string;

				if(extraoptions && extraoptions.start)options['start'] = extraoptions.start
				if(extraoptions && extraoptions.amount)options['aantal'] = extraoptions.amount

				this.apisystem.command("USER.FIND.SEARCH_USER",options,	function	(jsonData)
				{
						var	resultingusers	=	[];
						var usrs	=	jsonData.users;
						var aantal = jsonData.aantal
						for(nr	in	usrs)
						{
								var usr	=	usrs[nr];
								resultingusers[nr]	=	thisinstance.getUser(usr.id,usr,null);
						}
						debug('found persons:'+aantal);
						callback(resultingusers,aantal);
				}
				);
				/*
				var	thisinstance	=	this;
				var options	=	[];
				options["string"]	=	string;

				//	TODO	something	with	string
				this.apisystem.command("USER.FIND.SEARCH_USER",options,	function	(jsonData)
				{
				var	resultingusers	=	[];
				var usrs	=	jsonData.users;

				for(nr	in	usrs)
				{
				var usr	=	usrs[nr];
				resultingusers[nr]	=	thisinstance.getUser(usr.id,usr,null);
				}

				callback(resultingusers);
				}
				);
				*/
		}


		/*
		Users.prototype.getUsersWithLatestMessages=function(number_of_users,callback)
		{
		var	thisinstance	=	this
		options	=	[]
		options["number"]	=	number_of_users
		//options["group"]	=	1
		this.apisystem.command("USER.FIND.LATEST_USERSWITHMESSAGES",options,	function	(jsonData)
		{
		var	resultingusers	=	[]
		usrs	=	jsonData.users

		for(nr	in	usrs)
		{
		usr	=	usrs[nr]
		resultingusers[nr]	=	thisinstance.getUser(usr.id,usr,null)

		}

		callback(resultingusers)
		}
		);
		}
		*/
		//	search
		//	etc.
		//
		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	Group(id,load,apisystem,users,load_callback)
		{
				this.id	=	id;
				this.users	=	users;

				this.apisystem	=	apisystem;

				if(load	==	true)
				{
						this.__load(true,load_callback);
				}
				else	if(load	==	false)
				{

				}
				else
				{
						//	now	we	already	have	DB	info	from	higher	class!!
						this.__load(load,load_callback);
				}

		}

		Group.prototype.__load=function(fromdb,load_callback)
		{
				var	thisinstance	=	this;
				if	(fromdb	==	true		||	fromdb	==	null)
				{
						alert("TODO	load	from	DB	group!!!");
						var	options	=	[];
						var options = []
						options["groupid"]	=	this.id;

						this.apisystem.command("GROUP",options,	function	(jsonData)
						{
								var group	=	jsonData.group;
								thisinstance.name	=	group.name;

								if(group.users_in_group)
								{
										thisinstance.users_in_group	=	[];
										var users_in_group	=	group.users_in_group;

										for(nr	in	users_in_group)
										{
												var user	=	users_in_group[nr];
												thisinstance.users_in_group[user.id]	=	thisinstance.users.getUser(user.id,user,null);
										}
								}

								if(load_callback)
								{
										load_callback(thisinstance);
								}
						});
				}
				else
				{
						var group	=	fromdb;
						thisinstance.name	=	group.name;

						if(group.users_in_group)
						{
								thisinstance.users_in_group	=	[];
								var users_in_group	=	group.users_in_group;

								for(nr	in	users_in_group)
								{
										var user	=	users_in_group[nr];
										thisinstance.users_in_group[user.id]	=	thisinstance.users.getUser(user.id,user,null);
								}
						}

						if(load_callback)
						{
								load_callback(thisinstance);
						}

				}
		}
		

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	User(id,load,apisystem,users,load_callback,reset)
		{


				this.id	=	id;
				this.users	=	users;

				this.apisystem	=	apisystem;

				if(load	==	true)
				{
						this.__load(true,load_callback,reset);
				}
				else	if(load	==	false)
				{

				}
				else
				{
						//	now	we	already	have	DB	info	from	higher	class!!
						this.__load(load,load_callback);
				}

				this.latestmessages	=	[];

				// TODO: remove
				this.latestmessages[1]	=	[];	//	array	met	aantal
				this.latestmessages[4]	=	[];	//	array	met	aantal

		}



		User.prototype.getMessagesByTags=function(callback,extraoptions)
		{
				var	thisinstance	=	this;


				var options	=	[];

				options["userid"]	=	this.id;

				this.apisystem.command("MESSAGE.FIND.USERMSGS_BY_TAG",options,	function	(jsonData)
				{
						var thetags	=	[];

						for(tagnr	in	jsonData.usertags)
						{
								var taggroup=jsonData.usertags[tagnr];

								if(taggroup)
								{
										var theid	=	taggroup.id;
										var thetag = taggroup.tag;
										var msg_ids = taggroup.message_ids;
								thetags[theid] = {};
										thetags[theid].id = theid;
										thetags[theid].tag = thetag;
										thetags[theid].message_ids = [];
										thetags[theid].num_msgs = 0;
										for(msgindex in msg_ids)
										{
												var msgid = msg_ids[msgindex];
												thetags[theid].message_ids[msgid] = msgid;
												thetags[theid].num_msgs++;
										}
								}
						}
						callback(thetags);
				}
				);
		}



		User.prototype.getLatestMessages=function(number,type,callback,notreply)
		{

				var	thisinstance	=	this;
				if(thisinstance.latestmessages[type][number])
				{
						callback(thisinstance.latestmessages[type][number]);
						return;
				}

				var options	=	[];
				if(notreply	!=	false)
				{
						options["notreply"]	=	true;
				}
				else
				{
						options["notreply"]	=	false;
				}
				options["type"]	=	type;
				options["userid"]	=		this.id;
				options["number"]	=	number;

				this.apisystem.command("USER.INFO.LATESTMESSAGES",options,	function	(jsonData)
				{
						var thelatestmessages	=	[];
						var msgcacher	=	getMessageCacher();
						for(messagenr	in	jsonData.messages)
						{
								var message=jsonData.messages[messagenr];
								if(message)
								{
										var theid	=	message.id;
										thelatestmessages[theid]	=	new	Message(theid,message,thisinstance.apisystem,null);


										msgcacher.registerMessage(thelatestmessages[theid]);
								}
						}
						thisinstance.latestmessages[type][number]	=	thelatestmessages;

						callback(thelatestmessages);
				}
				);

		}

		/*
		function getMessagesBetween added by Melle :) TODO: remove this or function above
		*/
		User.prototype.getMessagesBetween=function(start,stop,type,callback,notreply)
		{
				var	thisinstance	=	this;
				/*
				if(thisinstance.latestmessages[type][start])
				{
				callback(thisinstance.latestmessages[type][start])
				return
				}
				*/

				var options	=	[];
				if(notreply	!=	false)
				{
						options["notreply"]	=	true;
				}
				else
				{
						options["notreply"]	=	false;
				}

				//Determine the showlevels...
				if (this.id == loggedin_id) {
						options["private"] = "true";
				}
				else {
						options["private"] = "false";
				}

				options["type"]	=	type;
				options["userid"]	=		this.id;
				if (start == "0"||start=="")
				{
						start = "0";
				}
				options["start"]	=	start;
				options["amount"] = stop;

				this.apisystem.command("USER.INFO.MESSAGESBETWEEN",options,	function	(jsonData)
				{
						var thelatestmessages	=	[];
						var maxaantal = jsonData.maxamount;
						var msgcacher	=	getMessageCacher();
						for(messagenr	in	jsonData.messages)
						{
								var message=jsonData.messages[messagenr];
								if(message)
								{
										var theid	=	message.id;
										thelatestmessages[theid]	=	new	Message(theid,message,thisinstance.apisystem,null);


										msgcacher.registerMessage(thelatestmessages[theid]);
								}
						}
						//thisinstance.latestmessages[type][start]	=	thelatestmessages

						callback(thelatestmessages,maxaantal);
				}
				);
		}
		/* Einde proef van Melle :^) */


		User.prototype.getMessagesBetweenAmount=function(type,callback,notreply)
		{
				var	thisinstance	=	this;

				var options	=	[];
				if(notreply	!=	false)
				{
						options["notreply"]	=	true;
				}
				else
				{
						options["notreply"]	=	false;
				}


				//count with the right showlevels
				if (this.id == loggedin_id)
				{
						options["private"] = "true";
				}
				else
				{
						options["private"] = "false";
				}


				options["type"]	=	type;
				options["userid"]	=		this.id;

				this.apisystem.command("USER.INFO.MESSAGESBETWEEN_AMOUNT",options,	function	(jsonData)
				{
						var maxaantal = jsonData.maxamount	;
						callback(maxaantal);
				}
				);
		}


		User.prototype.getFirstName=function(callback)
		{
				if(this.firstname)
				{
						callback(this.firstname);
				}
				else
				{
						this.__load(true,function(loadeduser)
						{
								callback(loadeduser.firstname);
						}
						);
				}
		}

		User.prototype.getLastName=function(callback)
		{
				if(this.lastname)
				{
						callback(this.lastname);
				}
				else
				{
						this.__load(true,function(loadeduser)
						{
								callback(loadeduser.lastname);
						}
						);
				}
		}

		User.prototype.getFriends=function(callback)
		{
				// TODO optimize
				if(this.friends)
				{
						callback(this.friends);
				}
				else
				{
						this.__loadFriends(function(loadeduser)
						{
								callback(loadeduser.friends);
						}
						);
				}
		}

		User.prototype.getNumberOfMessageOfShowlevel=function(showlevel,callback)
		{
				// TODO optimize
				callback(0);
				return 0; // TODO!!!

				/* OLD:
				if(this.nummsgs)
				{
				if(this.nummsgs[showlevel]) callback(this.nummsgs[showlevel])
				else callback(0)
				}
				else
				{
				this.__load(true,function(loadeduser)
				{
				if(this.nummsgs[showlevel]) callback(this.nummsgs[showlevel])
				else callback(0)
				}
				);
				}
				*/
		}

		User.prototype.getName=function(callback)
		{
				if(this.lastname	&&	this.firstname)	callback(this.firstname	+	'	'	+	this.lastname);
				else
				{
						this.__load(true,function(loadeduser)
						{
								callback(loadeduser.firstname	+	'	'	+	loadeduser.lastname);
						}
						);
				}
		}

		User.prototype.getNickName=function(callback)
		{
				if(this.nickname)	callback(this.nickname);
				else
				{
						this.__load(true,function(loadeduser)
						{
								callback(loadeduser.nickname);
						}
						);
				}
		}

		User.prototype.getIconPictureId=function(callback)
		{
				if(this.picture_id)	callback(this.picture_id);
				else
				{
						this.__load(true,function(loadeduser)
						{
								callback(loadeduser.picture_id);
						}
						);
				}
		}

		User.prototype.getBirthday=function(callback)
		{
				if(this.birthday)	callback(this.birthday);
				else
				{
						this.__load(true,function(loadeduser)
						{
								callback(loadeduser.birthday);
						}
						);
				}
		}

		User.prototype.__load=function(fromdb,load_callback,reset)
		{
				var	thisinstance	=	this;
				if	(fromdb	==	true	||	fromdb==null)
				{

						var	options	=	[];
						options["userid"]	=	this.id;

						this.apisystem.command("USER.INFO.BASICS",options,	function	(jsonData)
						{
								thisinstance.__load(jsonData.user,load_callback)
								/*
								var user	=	jsonData.user;
								thisinstance.firstname	=	user.firstname;
								thisinstance.lastname	=	user.lastname;
								thisinstance.nickname	=	user.nickname;
								thisinstance.picture_id	=	user.picture_id;
								thisinstance.birthday	=	user.birthday;
								thisinstance.primary_language_id = user.primary_language_id;
								thisinstance.home	=	user.home;

								if(user.friends)
								{
								thisinstance.friends	=	[]
								friends	=	user.friends

								for(nr	in	friends)
								{
								friend	=	friends[nr]
								thisinstance.friends[friend.id]	=	thisinstance.users.getUser(friend.id,friend,null)
								}
								}

								if(user.nummsgs)
								{
								thisinstance.nummsgs = [];
								for(i in user.nummsgs)
								{
								var obj = user.nummsgs[i];
								thisinstance.nummsgs[obj.showlevel] = obj.aantal;
								}
								}
								if(load_callback)
								{
								load_callback(thisinstance);
								}
								*/
						}
						,reset);

				}
				else
				{
						var user	=	fromdb;
						thisinstance.home	=	user.home;
						thisinstance.firstname	=	user.firstname;
						thisinstance.lastname	=	user.lastname;
						thisinstance.nickname	=	user.nickname;
						thisinstance.picture_id	=	user.picture_id;
						thisinstance.birthday	=	user.birthday;
						thisinstance.primary_language_id = user.primary_language_id;

						thisinstance.b_grp =fromdb.b_grp

						/*
						if(user.nummsgs)
						{
						thisinstance.nummsgs = [];
						for(i in user.nummsgs)
						{
						var obj = user.nummsgs[i];
						thisinstance.nummsgs[obj.showlevel] = obj.aantal;
						}
						}

						*/

						if(load_callback)
						{
								load_callback(thisinstance);
						}

				}
		}

		User.prototype.__loadFriends=function(load_callback,reset)
		{
				var	thisinstance	=	this;

				var	options	=	[];
				options["userid"]	=	this.id;

				this.apisystem.command("USER.INFO.FRIENDS",options,	function	(jsonData)
				{
						thisinstance.friends	=	[];
						var friends	=	jsonData.userfriends;

						for(nr	in	friends)
						{
								var friend	=	friends[nr];
								thisinstance.friends[friend.id]	=	thisinstance.users.getUser(friend.id,friend,null);
						}

						if(load_callback)
						{
								load_callback(thisinstance);
						}
				}
				,reset);


		}

		User.prototype.GetIDforUsername = function (username, callback) {
				var options = [];
				options['username'] = username;;
				this.apisystem.command("USERNAME",options,	function	(jsonData)
				{
						var userid = jsonData.userid;
						callback(userid);
				}
				);
		}
		/*
		OLD:

		//	WHAT	TO	SHOW	VARIBALES
		var	T_BM_SHOW_NOTES	=	1;
		var	T_BM_SHOW_PHOTOS	=	2;
		var	T_BM_SHOW_TREELZ	=	3;
		var	T_BM_SHOW_TREELZ_POINTS	=	4;

		var T_BM_SHOW_WIKIPEDIA = 10;

		//	FILTERS
		var	T_BM_SHOW_PUBLIC	=	5;
		var	T_BM_SHOW_FRIENDS	=	6;
		var	T_BM_SHOW_PRIVATE	=	9;
		var	T_BM_SHOW_SPECIFIC_USER	=	7;
		*/

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	BuurtMap(map,tokensystem,apisystem,users,locations,treelz)
		{
				this.tempres	=	[];
				this.map	=	map;;

				this.basepath	=	'';
				//	temp	hier
				this.map.enableDoubleClickZoom();
				this.map.enableContinuousZoom();
				this.tokensystem	=	tokensystem;
				if(tokensystem	==	null)
				{
						this.tokensystem	=	new	TokenSystem();
				}

				this.apisystem	=	apisystem;
				if(apisystem	==	null)
				{
						this.apisystem	=	new	ApiSystem(this.tokensystem);
				}

				this.users	=	users;
				if(users	==	null)
				{
						this.users	=	new	Users(this.apisystem);
				}

				this.locations	=	locations;
				if(locations	==	null)
				{
						this.locations	=	new	Locations(this.apisystem);
				}

				this.treelz	=	treelz;
				if(treelz==null)
				{
						this.treelz	=	new	Treelz(this.apisystem,this.users);
				}


				msgcacher =createMessageCacher(this.apisystem);
				this.message_categories	=	msgcacher.messagecategories
				//new	MessageCategories(this.apisystem);

				//	geocoder	and	clusterer
				this.geocoder	=	new	GClientGeocoder();
				this.clusterer	=	new	Clusterer(map);
				this.clusterer.SetMaxVisibleMarkers(10);
				this.clusterer.SetMinMarkersPerCluster(4);
				this.clusterer.SetMaxLinesPerInfoBox(8)
				this.clusterer.SetGridSize(10)

				//	cacher
				this.latest_new_marker	=	null;
				this.mapmarkers	=	[];
				this.maptreelz	=	[];
				this.specifictreel	=	null;

				//	filters
				this.showtrails	=	false;
				this.show_specific_trails	=	[];

				this.maximum	=	200;
				this.maximum_mapmessages	=	200;

				this.changeviewalreadylaucned	=	false;
				this.changeviewalreadyqueued	=	false;
				this.changeviewqueue	=	[];

				//	======	set	up	marker	mouseover	tooltip	div	======
				this.tooltip	=	document.createElement("div");
				this.map.getPane(G_MAP_FLOAT_PANE).appendChild(this.tooltip);
				this.tooltip.style.visibility="hidden";
				this.tooltip_fix	=	false;

				//	the	register	shit	/	callbacks
				this.location_click_cbs	=	[];
				this.mapmessage_change_cbs	=	[];
				this.newlocation_click_cbs	=	[];

				this.tooltip_zoom_click_cb	=	false;
				this.tooltip_detail_click_cb	=	false;
				this.tooltip_messagedetail_click_cb	=	false;
				this.tooltip_add_message_click_cb	=	false;

				this.__show_addnewicon = true;


				// the new and improved selection sys incl. groups
		var options = {};
				options.mapsystem = this;
				this.points_manager = new MapPointsManagers(options);

				options.locations = this.locations								;
				this.globalfilter = new GlobalFilter(options);
				this.globalfilter.registerMapPointManager(this.points_manager);

				this.groups = new Groups(this.apisystem);
				//	init	system
				this.init();
		}

		BuurtMap.prototype.nullify	=	function()
		{
				this.tempres	=	null;
				this.map	=	null;
				this.basepath	=	null;
				this.tokensystem	=	null;
				this.apisystem	=	null;
				this.users	=	null;
				this.locations	=	null;
				this.treelz	=	null;
				this.message_categories	=	null;
				this.geocoder	=	null;
				this.clusterer	=	null;

				this.latest_new_marker	=	null;
				this.mapmarkers	=	null;
				this.maptreelz	=	null;
				this.specifictreel	=	null;

				this.showtrails	=	null;
				this.show_specific_trails	=	null;

				this.maximum	=	null;
				this.maximum_mapmessages	=	null;

				this.changeviewalreadylaucned	=	null;
				this.changeviewalreadyqueued	=	null;
				this.changeviewqueue	=	null;

				this.tooltip	=	null;
				this.tooltip_fix	=	null;

				//	the	register	shit	/	callbacks
				this.location_click_cbs	=	null;
				this.mapmessage_change_cbs	=	null;
				this.newlocation_click_cbs	=	null;

				this.tooltip_zoom_click_cb	=	null;
				this.tooltip_detail_click_cb	=	null;
				this.tooltip_messagedetail_click_cb	=	null;
				this.tooltip_add_message_click_cb	=	null;

				this.__show_addnewicon = null;

				this.points_manager = null;

				this.globalfilter = null;

				this.groups = null;
		}

		//	below	are	shown	no	matter	what	the	filters	say!!!
		BuurtMap.prototype.showSpecificTreel	=	function(tid,show)
		{
				//alert('showSpecificTreel'+tid	+	show)
				if(show==null)show=true;
				this.specific_treelz[tid]	=	show;
				if(show	==	false)
				{
						this.specific_treelz[tid]	=	null;
						this.specific_treelz.slice(tid,1);
				}
				this.__changedFilters();	//	TODO	kan	efficienter!
		}

		BuurtMap.prototype.__renewMapview	=	function(callback)
		{
				//debug(this.globalfilter.group_filters.toString())
				this.globalfilter.recheckFilter();
				callback(true);

		}

		// STEVEN: todo REMOVE?? these functions also?
		BuurtMap.prototype.requestTreel	=	function(treel)
		{
				if(this.treelz_view[treel.id]	==	null)
				{
						var	treelline	=	this.createMapTreel(treel);
						this.treelz_view[treel.id]	=	treelline;

						//	second	step:	create	points
						//	MarkerView_AddTreelPoint	MarkerView_RemoveTreelPoint
						if(this.what_show_filter[T_BM_SHOW_TREELZ_POINTS])
						{
								var	enkelepoints	=	treel.getLocations();
								for	(eenid	in	enkelepoints)
								{
										var	loc	=		enkelepoints[eenid];
										this.MarkerView_AddTreelPoint(treel.id,loc.id,loc);
								}
						}

						//	and	return	the	line
						return	treelline;
				}
				else
				{
						return	this.treelz_view[treel.id];
				}
		}


		BuurtMap.prototype.removedTreelFromView	=	function(tid)
		{
				if(this.treelz_general_view[tid]	==	null	&&	this.treelz_specific_view[tid]	==	null)
				{
						this.treelz_view[tid]	=	null;
						this.removeMapTreel(tid);

						//	second	step	remove	treelpoints
						this.MarkerView_RemoveTreelPoints(tid);
				}
		}

		//	===
		BuurtMap.prototype.getMessage	=	function(id,callback,reset)
		{
				var msgcacher	=	getMessageCacher();
				return	msgcacher.getMessage(id,callback,reset,reset);
		}

		/*
		BuurtMap.prototype.loginByToken	=	function(token)
		{
		this.tokensystem.token	=	token;	//	todo
		}

		BuurtMap.prototype.login	=	function(user,md5pass,callback)
		{
		this.tokensystem.login(user,md5pass,callback);
		}
		*/

		//	register	shit

		BuurtMap.prototype.registerNewLocationClickCallback	=	function(newlocationClicked,	reset)
		{
				if(reset	==	true)
				{
						this.newlocation_click_cbs	=	[];
				}
				this.newlocation_click_cbs[this.newlocation_click_cbs.length]	=	newlocationClicked;
		}

		BuurtMap.prototype.registerLocationClickCallback	=	function(locationClicked,	reset)
		{
				if(reset	==	true)
				{
						this.location_click_cbs	=	[];
				}
				this.location_click_cbs[this.location_click_cbs.length]	=	locationClicked;
		}

		BuurtMap.prototype.registerTooltipZoomCallback	=	function(locationClicked,	reset)
		{
				if(reset	==	true)
				{
						this.tooltip_zoom_click_cb	=	false;
				}
				this.tooltip_zoom_click_cb	=	locationClicked;
		}

		BuurtMap.prototype.registerAddMessageCallback	=	function(locationClicked,	reset)
		{
				if(reset	==	true)
				{
						this.tooltip_zoom_click_cb	=	false;
				}
				this.tooltip_add_message_click_cb	=	locationClicked;
		}


		BuurtMap.prototype.registerTooltipDetailCallback	=	function(locationClicked,	reset)
		{
				if(reset	==	true)
				{
						this.tooltip_detail_click_cb	=	false;
				}
				this.tooltip_detail_click_cb	=	locationClicked;
		}

		BuurtMap.prototype.registerTooltipMessageDetailCallback	=	function(locationClicked,	reset)
		{
				if(reset	==	true)
				{
						this.tooltip_messagedetail_click_cb	=	false;
				}
				this.tooltip_messagedetail_click_cb	=	locationClicked;
		}

		BuurtMap.prototype.zoomToIp	=	function()
		{
				var options = [];
				var thisinstance = this;
				this.apisystem.command("TOOLS.STARTUPDATA",options,function(data)
				{
						if(data.ip_location)
						{
								var ip_location = data.ip_location;
								if(ip_location.Latitude && ip_location.Longitude && ip_location.Latitude  != " " && ip_location.Latitude  != "" && ip_location.Longitude != " " && ip_location.Longitude != "")
								{
										var	point	=	new	GLatLng(ip_location.Latitude,ip_location.Longitude);
										thisinstance.map.setCenter(point);
								}
								else if(ip_location.Country && ip_location.City)
								{
										thisinstance.gotoPlace('',ip_location.City,ip_location.Country);
								}
								else if(ip_location.Country)
								{
										thisinstance.gotoPlace('','',ip_location.Country);
								}
						}
				}
				);
		}

		BuurtMap.prototype.registerMapZoomToLatLng	=	function(funcname,	reset)
		{

				this.clusterer.setZoomFunction(funcname);
		}

		BuurtMap.prototype.registerMapMessageChangeCallback	=	function(mapmessages,	reset)
		{

				if(reset	==	true)
				{
						this.mapmessage_change_cbs	=	[];
				}
				this.mapmessage_change_cbs[this.mapmessage_change_cbs.length]	=	mapmessages;
		}

		BuurtMap.prototype.init	=	function()
		{
				//	add	listeners
				var	thisinstance	=	this;

				GEvent.addListener(this.map,	"moveend",function()
				{

						thisinstance.changingView(false);
						//urls.AddVariable("mc", map.getCenter());

						ll = map.getCenter();

						urls.AddVariable("Cy",ll.y);
						urls.AddVariable("Cx",ll.x);
						urls.UpdateURL();
				});

				GEvent.addListener(this.map,	"zoomend",	function(a,b)
				{
						thisinstance.changingView(false);
						urls.AddVariable("mz", map.getZoom());
						urls.UpdateURL();
				});

				GEvent.addListener(this.map,	"click",	function(marker,	point)
				{
						if(marker)
						{
								if(marker == thisinstance.latest_new_marker)
								{

										if(thisinstance.tooltip_add_message_click_cb)
										{
												var streval = ''+thisinstance.tooltip_add_message_click_cb+'(null,'+marker.getPoint().lat()+','+marker.getPoint().lng()+')';
												eval(streval);	 // TODO: ik had eval
										}
								}
								else
								{

								}
						}
						else
						{
								var	pointzero=thisinstance.map.getCurrentMapType().getProjection().fromLatLngToPixel(thisinstance.map.fromDivPixelToLatLng(new	GPoint(0,0),true),thisinstance.map.getZoom());
								var	pointclick=thisinstance.map.getCurrentMapType().getProjection().fromLatLngToPixel(point,thisinstance.map.getZoom());
								var	t_x_lb	=	pointzero.x	+	thisinstance.tooltip.offsetLeft;
								var	t_y_lb	=	pointzero.y	+	thisinstance.tooltip.offsetTop;
								var	t_x_ro	=	t_x_lb	+	thisinstance.tooltip.clientWidth;
								var	t_y_ro	=	t_y_lb	+	thisinstance.tooltip.clientHeight;


								if(t_x_lb	<	pointclick.x	&&	pointclick.x	<	t_x_ro	&&	t_y_lb	<	pointclick.y	&&	pointclick.y	<	t_y_ro)
								{
								}
								else
								{
										//	niet	inside	een	tooltip
										var	marker	=	thisinstance.addNewIcon(point,point.lng()	+	'	'	+	point.lat());
								}
						}
				});
		}

		BuurtMap.prototype.showNewLocIconInCenter	=	function()
		{
				var	point	=	this.map.getCenter()	;
				this.addNewIcon(point,'');

		}

		BuurtMap.prototype.gotoPlace	=	function(street,city,country,callback_point,newlocshow,notshowerror)
		{
				var	thisinstance	=	this;
				var address	=	street	+	','	+	city		+	','	+	country;
				this.geocoder.getLocations(address,	function(response)
				{
						if	(!response	||	response.Status.code	!=	200)
						{
								//	alternative	search	TODO
								if(notshowerror)
								{
								}
								else
								{

										var	options	=	[];
										options["search"]	=	street;
										/*									options["street"]	=	street
										options["country"]	=	country TODO!!!*/
										thisinstance.apisystem.command("TOOLS.SEARCH.SEARCHCITY",options,	function	(jsonData)
										{
												var	possibles	=	jsonData.possibles;
												if(possibles.length > 0)
												{
														var	loc	=	possibles[0];

														var	point	=	new	GLatLng(loc.latitude,loc.longitude);
														if(newlocshow==true)
														{
																thisinstance.addNewIcon(point,loc.name);
														}
														thisinstance.map.setCenter(point);
														if(callback_point)
														{
																callback_point(point,loc.name);
														}

												}
												else
												{
														alert(getTrans.Translate("sorry_not_found_location"));
												}
										}
										);

								}
						}
						else
						{
								var	place	=	response.Placemark[0];
								var	point	=	new	GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
								//marker	=	new	GMarker(point);
								//	TODO	what	if	already	exists!!!	(this	exact	location)

								if(newlocshow==true)
								{
										thisinstance.addNewIcon(point,place.address);
								}
								thisinstance.map.setCenter(point);
								if(callback_point)
								{
										callback_point(point,place.address);
								}
						}

				}
				);
		}

		BuurtMap.prototype.__tooltip_fill_after_new=function(marker)
		{

				var	thisinstance	=	this;

				thisinstance.tooltip.innerHTML	=	'<div></div>';

				var	tooltip_div	=		document.createElement('div');
				tooltip_div.setAttribute('class',"tooltip_plaatsbericht");
				tooltip_div.setAttribute('className',"tooltip_plaatsbericht");
				thisinstance.tooltip.appendChild(tooltip_div);

				var	str	='<div	class="tooltip_messages_add_msg">';

				if(this.tooltip_add_message_click_cb)
				{
						str	=	str	+	'<a	id="new_msg_onmap"	href="javascript:'+this.tooltip_add_message_click_cb+'(null,'+marker.getPoint().lat()+','+marker.getPoint().lng()+')">	<img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="54"	height="48"		alt="">	</a><br	\>';
				}

				var	str	=	str	+'</div>';

				tooltip_div.innerHTML	=	str;
				document.getElementById("new_msg_onmap").title	=	getTrans.Translate("new_msg_onmap");
				this.__reposition_tooltip(marker);
		}
		BuurtMap.prototype.setShowNewIcon	=	function(yes,dontremoveicon)
		{
				this.__show_addnewicon = yes;
				if(yes == false && dontremoveicon != true)
				{
						this.removeAddNewIcon()	;
				}
		}

		BuurtMap.prototype.getShowNewIcon	=	function()
		{
				return this.__show_addnewicon;
		}

		BuurtMap.prototype.removeAddNewIcon	=	function()
		{
				if(this.latest_new_marker	!=	null)
				{
						this.unshow_marker_overlay(null);
						this.map.removeOverlay(this.latest_new_marker);
						this.latest_new_marker	=	null;
				}
		}

		BuurtMap.prototype.addNewIcon	=	function(point,txt)
		{
				if(this.__show_addnewicon != false)
				{
						var	thisinstance	=	this;
						if(thisinstance.latest_new_marker	!=	null)
						{
								thisinstance.map.removeOverlay(thisinstance.latest_new_marker);
								thisinstance.latest_new_marker	=	null;
						}


						if(this.addicon)
						{
						}
						else
						{
								this.addicon	=	new	GIcon();
								this.addicon.image	=	"images/knoppen-titels/add_msg_marker.png";
								this.addicon.iconSize	=	new	GSize(104,	82);
								this.addicon.iconAnchor	=	new	GPoint(25,	82);
								this.addicon.infoWindowAnchor	=	new	GPoint(5,	1);
						}

				var marker	=	new	GMarker(point,	{draggable:	true,icon:	this.addicon});
						thisinstance.latest_new_marker	=	marker;
						marker.enableDragging();
						lat	=	point.lat();
						lng	=	point.lng();
						for(i	in	thisinstance.newlocation_click_cbs)
						{
								cb_func	=	thisinstance.newlocation_click_cbs[i];
								cb_func(lat,lng,txt);
						}
						thisinstance.latestnewmarker	=	marker;
						thisinstance.map.addOverlay(marker);



						GEvent.addListener(marker,	"dragend",	function()
						{
								var	point	=	marker.getPoint()
								var lat	=	point.lat();
								var lng	=	point.lng();

								for(i	in	thisinstance.newlocation_click_cbs)
								{
										var cb_func	=	thisinstance.newlocation_click_cbs[i];
										cb_func(lat,lng,lat	+	'	'	+	lng);
								}
								//thisinstance.__reposition_tooltip(marker)
								//thisinstance.__tooltip_fill_after_new(marker)
						});

						//thisinstance.__tooltip_fill_after_new(marker)
						return	marker

				}
		}

		//	=========================================================================
		//	Private:	is	called	to	find	new	map	messages,	part	of	public	function	changingview()
		//
		//	=========================================================================
		BuurtMap.prototype.__runchangingView	=	function()
		{
				var	thisinstance	=	this;
				var	currentsize	=	this.changeviewqueue.length;

				//	first	update	locations	on	the	map	(whitin	view)
				this.__renewMapview(function(x)
				{


						//	Also	update	messages
						/*
						thisinstance.mapMessageChangedFindNew(function(messages)
						{
						}
						);
						*/

						//	nou	check	wether	more	requests	were	added:
						if(currentsize	==	thisinstance.changeviewqueue.length)
						{
								thisinstance.changeviewqueue.length	=	0	;//	empty	on	run
								thisinstance.changeviewqueue	=	[];	//	empty	on	run
						}
						//	direct	(1sec)	na	run	nog	een	keer	om	te	kijken	of	er	nog	ergens	shit	zit	in	de	queueu

						var	callwrapper	=	new	CCallWrapper(thisinstance,	1000,	'changingView',	'true');
						CCallWrapper.asyncExecute(callwrapper);
				}
				);
		}


		//	=========================================================================
		//	Public:	is	called	to	find	new	map	messages
		//
		//	=========================================================================
		BuurtMap.prototype.changingView	=	function(secondshot)
		{
				if(secondshot	==	true	||	secondshot	==	'true'	)
				{
						if(this.changeviewqueue.length	>	0)
						{
								//alert("go	run	second")
								this.__runchangingView();
						}
				}
				else
				{
						if(this.changeviewqueue.length	==	0)
						{
								//	queue	this	one
								this.changeviewqueue[this.changeviewqueue.length]	=	this.changeviewqueue.length;
								this.__runchangingView();
						}
						else
						{
								//	first	and	empty	queueu
								this.changeviewqueue[this.changeviewqueue.length]	=	this.changeviewqueue.length;
						}
				}
		}

		// TODO remove???
		BuurtMap.prototype.showOneSpecificTreel	=	function(specifictreel)
		{
				var locs	=	specifictreel.getLocations();
				this.templocs	=	locs;
				//	create	bounds	box	for	locs
				this.focusOnBoundsByLocs(locs);

				//	show	specific	treel
				this.showSpecificTreel(specifictreel.id);
		}

		BuurtMap.prototype.focusOnBoundsByLocs	=	function(locs)
		{
				var	bounds	=	new	GLatLngBounds();
				for(nr	in	locs)
				{
						var	loc	=	locs[nr];
						bounds.extend(new	GLatLng(loc["lat"],loc["long"]));
				}
				this.map.setCenter(bounds.getCenter(),this.map.getBoundsZoomLevel(bounds));
		}



		/*
		BuurtMap.prototype.readCurrentMapTreelz	=	function(callback)
		{
		var borders	=	this.getMapBordersString();
		var	thisinstance	=	this;
		//	T_BM_SHOW_PUBLIC	T_BM_SHOW_FRIENDS	T_BM_SHOW_SPECIFIC_USER
		//	T_BM_SHOW_NOTES		T_BM_SHOW_PHOTOS	T_BM_SHOW_TREELZ	T_BM_SHOW_TREELZ_POINTS
		var	maximum	=	100;

		var	showlevels	=	[];
		if(this.who_show_filter[T_BM_SHOW_PUBLIC])	showlevels[4]	=	4;
		if(this.who_show_filter[T_BM_SHOW_FRIENDS])	showlevels[1]	=	1;
		if(this.who_show_filter[T_BM_SHOW_PRIVATE])	showlevels[5]	=	5;

		var	thisinstance	=	this;
		var	users	=	[];
		for(uid	in	this.users_show_filter);
		{
		if(this.users_show_filter[uid])
		{
		users[uid]	=	uid;
		}
		}

		if(this.what_show_filter[T_BM_SHOW_TREELZ]	)
		{
		this.treelz.getTreelzInRange(borders["minlat"],borders["maxlat"],borders["minlong"],borders["maxlong"],showlevels,maximum,function(generaltreelz)
		{
		//thisinstance.newMapTreelz(treelz)

		thisinstance.treelz.getTreelzInRangeByUsers(borders["minlat"],borders["maxlat"],borders["minlong"],borders["maxlong"],users,maximum,function(userstreelz)
		{
		var	all_treelz	=	[];
		for(lid	in	userstreelz)
		{
		all_treelz[lid]	=	userstreelz[lid];
		//all_locs[lid].userloc	=	true
		}
		for(lid	in	generaltreelz)
		{
		all_treelz[lid]	=	generaltreelz[lid];
		}
		callback(all_treelz);
		}
		);
		});
		}
		else
		{
		callback([]);
		}



		}
		*/

		/*
		BuurtMap.prototype.readMapTreelz	=	function()
		{
		if(this.showtrails	==	true	||	this.show_specific_trails.length	!=	0)
		{
		//	read	ALL	trailz
		borders	=	this.getMapBordersString()
		var	thisinstance	=	this
		//alert("getting	locs");
		this.treelz.getTreelzInRange(borders["minlat"],borders["maxlat"],borders["minlong"],borders["maxlong"],this.showlevels,this.maximum,function(treelz)
		{
		thisinstance.newMapTreelz(treelz)
		});

		//	read	specific	treelz	TODO	remove	werkt	niet	hij	voegt	alleen	toe	(en	ook	punten	en	zo)
		specifictreelz	=	[]
		for(tid	in	this.show_specific_trails)
		{
		if(this.show_specific_trails[tid]	!=	null)
		{
		thisinstance.treelz.getTreel(tid,function(specifictreel)
		{
		//specifictreelz[tid]	=specifictreel
		thisinstance.showSpecificTreel(specifictreel)
		}
		);
		}
		}
		}
		else
		{
		for(hetid	in	this.maptreelz)
		{
		this.removeMapTreel(hetid);
		}
		}
		}
		*/

		/*

		BuurtMap.prototype.newMapTreelz	=	function(treelz)
		{
		//	look	for	this	to	remove
		removeableids	=	[]
		for(hetid	in	this.maptreelz)
		{
		if(treelz[hetid]==null)
		{
		//	no	longer
		removeableids[hetid]=	hetid
		}
		}

		addibleids	=	[]
		for(hetid	in	treelz)
		{
		addibleids[hetid]=	hetid
		}

		for(hetid	in	removeableids)
		{
		//	removeid	=	removeableids[hetid]
		this.removeMapTreel(hetid)
		}

		var	dezeinstantie	=	this
		for	(hetid	in	addibleids)
		{
		treel	=	dezeinstantie.treelz.getTreel(hetid,null)
		dezeinstantie.createMapTreel(treel)
		}
		}
		*/

		BuurtMap.prototype.removeMapTreel	=function(hetid)
		{
				//alert(hetid)
				if(this.maptreelz[hetid]	!=	null)
				{

						var maptreel	=	this.maptreelz[hetid];
						this.maptreelz[hetid]	=	null;
						this.maptreelz.slice(hetid,1);
						this.map.removeOverlay(maptreel);
				}
				else
				{
						//	bestaat	niet	eens	meer
				}
		}

		BuurtMap.prototype.createMapTreel	=function(treel,callback)
		{
				var	themap	=	this.map;
				var	treelline	=	null;
				var	hetid	=	treel.id;
				if(this.maptreelz[hetid]	==	null)
				{
						var	pts	=	[];
						var	enkelepoints	=	treel.getLocations();
						if(enkelepoints.length	==	0)
						{
								this.maptreelz[hetid]	=	new	GPolyline([]);
								return;
						}

						for	(eenid	in	enkelepoints)
						{
								var	loc	=	enkelepoints[eenid];
								var pt = new GLatLng(loc.lat,loc.lng)
								pts.push(pt);
								/*	pts.push(	{
								lat:	loc.lat,
								lon:	loc.lng,
								lev:	"unset"
								}	);*/
						}
						/*
						///setLevels(pts);
						this.temppoints	=	pts
						//var	result	=	createEncodings(pts);
						this.tempres[hetid]	=	result
						this.tempinclulevels	=	pts

						var	thelevels	=result.ZoomString
						var	thepoints	=	result.PointString
						var	color	=	nextColor()
						*/

						var verySmall = 0.00008;
						var numLevels=9;
						var zoomFactor=4;
						var polylineEncoder = new PolylineEncoder(numLevels, zoomFactor, verySmall);
						var line = polylineEncoder.dpEncodeToGPolyline(pts);

						// boundaryColor?, boundaryWeight?, boundaryOpacity?,  fillColor?, fillOpacity?, fill?, outline?)
						/*
						var	line	=		GPolyline.fromEncoded({color:	nextColor(),
						weight:	4,
						opacity:	0.8,
						points:		thepoints,
						levels:		thelevels,
						zoomFactor:	2,
						numLevels:	18})
						*/

						this.map.addOverlay(line);
						this.maptreelz[hetid]	=	line;
				}
				else
				{
						//	bestaat	al!
						//var	treelline	=	this.maptreelz[hetid]
				}
				if(callback) callback(this.maptreelz[hetid]);
				return	this.maptreelz[hetid];
		}
		/*
		*/


		BuurtMap.prototype.removeLocationMarker	=function(hetid,callback)
		{
				//alert("remove"+hetid)
				if(this.mapmarkers[hetid]	!=	null)
				{
						var	marker	=	this.mapmarkers[hetid];
						//62 this.map.removeOverlay(marker);
						this.clusterer.RemoveMarker(marker);

						this.mapmarkers[hetid]	=	null;
						this.mapmarkers.slice(hetid,1);
						if(callback) callback(true);
				}
				if(callback) callback(false);


		}

		BuurtMap.prototype.createLocationMarker	=function(loc,callback,dontcache)
		{
				var hetid	=	loc.id;
				var	thisinstance	=	this;
				if(this.mapmarkers[hetid]	==	null)
				{
						var	lng	=	loc.lng;
						var	lat	=	loc.lat;
						var	userid	=	loc.userid;

						var	types	=	loc.types;
						var	point	=	new	GLatLng(lat,	lng);

						var	primcat	=	loc.getPrimaryCategory();
						var primshowlevel = loc.getPrimaryShowlevel();
						this.message_categories.getCategory(primcat,function(msg_cat)
						{
						var extraoptions = {};
								extraoptions.showlevel = primshowlevel;
								extraoptions.friendmessages = loc.friendmessages;
								extraoptions.usermessages = loc.usermessages;
								if(loc.wiki) extraoptions.wiki = 1;
								var	icon	=	msg_cat.getIcon(extraoptions);
								
								var	marker	=	new	GMarker(point,icon);
								if(dontcache	!=	false)
								{
										thisinstance.mapmarkers[hetid]	=	marker;
								}
								marker.hetid	=	hetid;
								//marker.setHoverImage("http://www.capone.nl/img/CV.gif");

								GEvent.addListener(marker,	"click",	function()
								{

										thisinstance.marker_clicked(marker);
								});

								//		======		The	new	marker	"mouseover"	and	"mouseout"	listeners		======
								GEvent.addListener(marker,"mouseover",	function()
								{
										thisinstance.marker_mouseover(marker);
								});
								GEvent.addListener(marker,"mouseout",	function()
								{
										thisinstance.marker_mouseout(marker);
								});

								//62 thisinstance.map.addOverlay(marker)
								thisinstance.clusterer.AddMarker(	marker,'Locatie	lat:'+loc.lat	+	',Long:	'+loc.lng,loc		);
								callback(marker);
						}
						);
						/*
						var	icon	=	this.message_categories.getCategory(primcat).getIcon()

						var	marker	=	new	GMarker(point,icon);
						if(dontcache	!=	false)
						{
						thisinstance.mapmarkers[hetid]	=	marker
						}
						marker.hetid	=	hetid


						GEvent.addListener(marker,	"click",	function()
						{
						thisinstance.marker_clicked(marker);
						});

						//		======		The	new	marker	"mouseover"	and	"mouseout"	listeners		======
						GEvent.addListener(marker,"mouseover",	function()
						{
						thisinstance.marker_mouseover(marker);
						});
						GEvent.addListener(marker,"mouseout",	function()
						{
						thisinstance.marker_mouseout(marker);
						});


						thisinstance.clusterer.AddMarker(	marker,'Locatie	lat:'+loc.lat	+	',Long:	'+loc.lng,loc		)
						callback(marker)
						*/
				}
				else
				{
						var	marker	=	this.mapmarkers[hetid];
						callback(marker);
				}



		}


		BuurtMap.prototype.__tooltip_fill_after_click	=	function(marker)
		{
				var	str	='<div	class="tooltip_messages_footer"><center><div	class="tooltip_messages_footer_center">';

				if(this.tooltip_zoom_click_cb	!=	false)	str	=	str	+	'<a	class="iconstooltip_zoom"	title="'	+	getTrans.Translate("title_zoom_location")	+	'"	href="javascript:'+this.tooltip_zoom_click_cb+'('+marker.hetid+')"><img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="33"	height="38"alt=""></a>';

				if(this.tooltip_add_message_click_cb	!=	false)	str	=	str	+	'<a	class="iconstooltip_addmsg"	title="'	+	getTrans.Translate("title_add_message")	+	'"	href="javascript:'+this.tooltip_add_message_click_cb+'('+marker.hetid+',null,null)"><img	src="images/knoppen-titels/empty_icons/empty_1x1.gif"	width="33"	height="38"alt=""></a>';

				//if(this.tooltip_detail_click_cb	!=	false)	str	=	str		+	'	<a	href="javascript:'+this.tooltip_detail_click_cb+'('+marker.hetid+')">Details</a>'

				str	=	str	+	'</div></center></div>';
				this.tooltip_links_div.innerHTML	=	str;
				this.__reposition_tooltip();
		}





		BuurtMap.prototype.marker_clicked	=	function(marker)
		{
				//		debug("selected_marker-C): "+selected_marker)

						if (selected_marker != 0)
						{
							mapsystem.RestoreMarker (selected_marker);

							selected_marker = 0;
						}


						selected_marker = marker.hetid;
				//alert(selected_marker);
				//setImage
				//alert ("click");
				var	thisinstance	=	this;

				//	fix	tooltip
				thisinstance.tooltip_fix	=	marker.hetid;

				//alert (marker.hetid);

				//	call	callback	functions
				this.locations.getLocation(marker.hetid,	function(loc)
				{
						for(i	in	thisinstance.location_click_cbs)
						{

								cb_func	=	thisinstance.location_click_cbs[i];
								cb_func(loc);

						}
				}
				);

				thisinstance.__tooltip_fill_after_click(marker);

		}


		BuurtMap.prototype.marker_mouseout=	function(marker)
		{
				var locid = marker.hetid
		
		
				
				// voorbeeld:
				// timer_category_filters = setTimeout("hide_sub_cat_selection_on_timer('"+parent_cat_id+"')",global_timer);
				
				// vroeger:
				// if(!this.tooltip_fix)	this.unshow_marker_overlay(null);
				
				
				
				// poging 2:
				if(!this.tooltip_fix)	functie_timer_hide_tooltip()
				
				//alert("GMarker.prototype.setImage.call(this, a);");//MH
				icon_tmp = this.mapmarkers[locid].getIcon();
				//alert (icon_tmp.image);
				//alert (selected_marker);
				if (selected_marker != locid) {
						this.mapmarkers[locid].setImage(icon_tmp.image);
					}

		}

		BuurtMap.prototype.RestoreMarker = function (locid) {

				if (this.mapmarkers[locid]) {
						icon_tmp = this.mapmarkers[locid].getIcon();
						this.mapmarkers[locid].setImage(icon_tmp.image);
				}
		}

		BuurtMap.prototype.ColorMarker = function (locid, targetcolor) {

				if (this.mapmarkers[locid]) {
						var icon_tmp = this.mapmarkers[locid].getIcon();
						var hover_icon = icon_tmp.image.replace(/(white|blue|green|red)/g	, targetcolor);
						this.mapmarkers[locid].setImage(hover_icon);
				}
		}


		BuurtMap.prototype.unshow_marker_overlay=	function(locid)
		{
				this.tooltip.style.visibility="hidden";
		}

		BuurtMap.prototype.__reposition_tooltip=function(marker)
		{
				if(marker)
				{
				}
				else
				{
						if(this.latest_tooltip_marker)
						{
								marker	=	this.latest_tooltip_marker;
						}
						else
						{
								//	???	no	marker
								return;
						}
				}


				var	thisinstance	=	this;
				var	point=thisinstance.map.getCurrentMapType().getProjection().fromLatLngToPixel(thisinstance.map.fromDivPixelToLatLng(new	GPoint(0,0),true),thisinstance.map.getZoom());
				var	offset=thisinstance.map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),thisinstance.map.getZoom());
				var	anchor=marker.getIcon().iconAnchor;
				var	width=marker.getIcon().iconSize.width/2;
				var	height=thisinstance.tooltip.clientHeight	-	marker.getIcon().iconSize.height/2	;
				var	pos	=	new	GControlPosition(G_ANCHOR_TOP_LEFT,	new	GSize(offset.x	-	point.x	-	anchor.x	+	width	*2	,	offset.y	-	point.y	-anchor.y	-height));//
				pos.apply(thisinstance.tooltip);
				thisinstance.tooltip.style.visibility="inherit";
		}

		BuurtMap.prototype.show_marker_overlay=	function(locid)
		{
				this.tooltip_fix	=	false;

				if(this.mapmarkers[locid])
				{
						var	thisinstance	=	this;
						var marker	=	this.mapmarkers[locid];
						this.latest_tooltip_marker	=	marker;
						thisinstance.tooltip.innerHTML	=	'';






							var	corner_div_t_l	= createElement(thisinstance.tooltip,"corner_div_t_l","corner_div_t_l_tooltip",'div');
							var	corner_div_t_r	= createElement(thisinstance.tooltip,"corner_div_t_r","corner_div_t_r_tooltip",'div');
							var	corner_div_b_l	= createElement(thisinstance.tooltip,"corner_div_b_l","corner_div_b_l_tooltip",'div');
							var	corner_div_b_r	= createElement(thisinstance.tooltip,"corner_div_b_r","corner_div_b_r_tooltip",'div');
							var	corner_div_t_m	= createElement(thisinstance.tooltip,"corner_div_t_m","corner_div_t_m_tooltip",'div');
							var	corner_div_b_m	= createElement(thisinstance.tooltip,"corner_div_b_m","corner_div_b_m_tooltip",'div');

							set_background_image(corner_div_t_l, "images/1_knoppen/corner_div_t_l.png")
							set_background_image(corner_div_t_r, "images/1_knoppen/corner_div_t_r.png")
							set_background_image(corner_div_b_l, "images/1_knoppen/corner_div_b_l.png")
							set_background_image(corner_div_b_r, "images/1_knoppen/corner_div_b_r.png")
							
				//			if (BrowserDetect.browser == "Firefox")
				//			{
				//			}
							var	tooltip_div	= createElement(thisinstance.tooltip,"tooltip","tooltip",'div');

							if (BrowserDetect.browser == "Explorer")
							{
					//			alert("explorer")
								
									var str = "tooltip_div.setAttribute('onmouseover',function anonymous(){clear_timer_tooltip()})";
									eval(str)
									var	str2 = "tooltip_div.setAttribute('onmouseout',function anonymous(){functie_timer_hide_tooltip()})";
									eval(str2)
									
									corner_div_b_m.style.bottom = "-5px"
									corner_div_b_l.style.bottom = "-5px"
									corner_div_b_r.style.bottom = "-5px"
								
								if (BrowserDetect.version == "8")
								{
				//					alert("explorer 8")
										change_opacity_id("corner_div_t_m_tooltip", 80)
										change_opacity_id("corner_div_b_m_tooltip", 80)
								} 		
							}
							else
							{
				//				alert("no explorer")
								
								tooltip_div.setAttribute('onmouseover',"clear_timer_tooltip()")
								tooltip_div.setAttribute('onmouseout',"functie_timer_hide_tooltip()")
								
								change_opacity_id("corner_div_t_l_tooltip", 80)
								change_opacity_id("corner_div_t_r_tooltip", 80)
								change_opacity_id("corner_div_b_l_tooltip", 80)
								change_opacity_id("corner_div_b_r_tooltip", 80)
								change_opacity_id("corner_div_t_m_tooltip", 80)
								change_opacity_id("corner_div_b_m_tooltip", 80)
							}

						
						
						
						

						//		var	tooltip_load_div	= createElement(tooltip_div,"tooltip_load_div","tooltip_load_div",'div');
						//			tooltip_load_div.innerHTML = '<img	src="images/indicator.gif"	alt="">'


						
						var	tooltip_msg_div	= createElement(tooltip_div,"tooltip_msg_div","tooltip_msg_div",'div');
						tooltip_msg_div.innerHTML = '<img	src="images/indicator.gif"	alt="">';

						var	tooltip_foto_div = createElement(tooltip_div,"tooltip_foto_div","tooltip_foto_div",'div');

						var	tooltip_links_div = createElement(tooltip_div,"tooltip_links_div","tooltip_links_div",'div');

						add_close_button_tooltip("tooltip",	"javascript:hide_tooltip()")


						this.tooltip_links_div	=	tooltip_links_div;

						this.__reposition_tooltip();
						thisinstance.tooltip.style.visibility="inherit";

						this.locations.getLocation(marker.hetid,	function(loc)
						{
								loc.getMessages(function(msgs)
								{
										var	aantalmsgs	=	0;
										var	aantalfotos	=	0;
										var	aantalnotes	=	0;
										var	hightest_id	=	-1;
										var	secondhighest_id	=	-1;
										var	hightest_foto	=	0;

										var highest_wiki = 0;
										for(msgid	in	msgs)
										{
												aantalmsgs	=	aantalmsgs	+	1;
												var	msg	=	msgs[msgid];
												if(msg.type	==	4)
												{
														aantalfotos	=aantalfotos+1;
														if(	msgid	>	hightest_foto)
														{
																hightest_foto	=	msgid;
														}
												}
												if(msg.type	==	1)
												{
														aantalnotes	=	aantalnotes	+	1;
														if(msgid	>	hightest_id)
														{
																secondhighest_id	=	hightest_id;
																hightest_id	=	msgid;
														}

														if(msgid	<	hightest_id	&&	msgid	>	secondhighest_id)
														{
																secondhighest_id	=	msgid;
														}
												}
												if(msg.type == 9)
												{
														if(msgid>highest_wiki)highest_wiki=msgid
												}

										}

										var	str	='<div	class="tooltip_messages">';


										if(highest_wiki != 0)
										{
												str += 'Wiki artikel<br>';
												if(thisinstance.tooltip_messagedetail_click_cb)	str	=	str	+	'<div class="messages_in_tooltip" ><a	href="javascript:'+thisinstance.tooltip_messagedetail_click_cb+'('+highest_wiki+')">';
												str	=	str	+	msgs[highest_wiki].title;
												if(thisinstance.tooltip_messagedetail_click_cb)		str	=	str	+	'</a></div>';
										}


										if(loc.wiki)
										{
												if(loc.wiki.other_langs['nl']) str += '' + loc.wiki.other_langs['nl'] +'<br>';
												else if(loc.wiki.other_langs['en']) str += '' + loc.wiki.other_langs['en'] +'<br>';
												else str += '' + loc.wiki.titel +'<br>';
										}

										if(aantalnotes > 0 || aantalfotos > 0)
										{
												str	+=	'<div class="title_messages_tooltip"><b>'+aantalnotes	+'	'	+	getTrans.Translate("message(s)")	+	'</b></div>';

												if(hightest_id	!=	-1)
												{
														if(thisinstance.tooltip_messagedetail_click_cb)	str	=	str	+	'<div class="messages_in_tooltip" ><a	href="javascript:'+thisinstance.tooltip_messagedetail_click_cb+'('+hightest_id+')">';
														str	=	str	+	msgs[hightest_id].title;
														if(thisinstance.tooltip_messagedetail_click_cb)		str	=	str	+	'</a></div>';
												}

												if(secondhighest_id	!=	-1)
												{
														str	=	str	+	'<br>';
														if(thisinstance.tooltip_messagedetail_click_cb)	str	=	str	+	'<div class="messages_in_tooltip" ><a style="messages_in_tooltip"	href="javascript:'+thisinstance.tooltip_messagedetail_click_cb+'('+secondhighest_id+')">';
														str	=	str	+	msgs[secondhighest_id].title;
														if(thisinstance.tooltip_messagedetail_click_cb)		str	=	str	+	'</a></div>';
												}




												var	fotostr	=	'<div	class="tooltip_messages">';
												fotostr	=	fotostr	+	'<div class="title_messages_tooltip"><b>'+aantalfotos	+	'	'	+	getTrans.Translate("picture(s)")	+	'</b></div>';
												if(hightest_foto	!=	0)
												{
														var picid	=	msgs[hightest_foto].picture_id;
														fotostr	=	fotostr	+	'<br>';
														if(thisinstance.tooltip_messagedetail_click_cb)	fotostr	=	fotostr	+	'<a	href="javascript:'+thisinstance.tooltip_messagedetail_click_cb+'('+hightest_foto+')">';
														fotostr	=	fotostr	+	'	<img	border="0"	src="'+thisinstance.basepath+'imageshow.php?thumb=true&h=100&w=100&imageid='+picid+'">';
														if(thisinstance.tooltip_messagedetail_click_cb)		fotostr	=	fotostr	+	'</a>';
												}
												var	fotostr	=	fotostr	+	'</div>';

												tooltip_foto_div.innerHTML	=	fotostr;


										}


										//		tooltip_load_div.innerHTML	=	''
										tooltip_msg_div.innerHTML	=	str;



										thisinstance.__reposition_tooltip();
								}
								);
						}
						);
				}
		}

		BuurtMap.prototype.marker_mouseover=	function(marker)
		{
			clearTimeout(timer_hide_tooltip)
			
				var locid	=	marker.hetid;
				//alert(locid)

				//GMarker("50.843894508679","4.37309503555298").setImage("/DEVO3/images/indicator.gif");
				this.show_marker_overlay(locid);
				var icon_tmp = this.mapmarkers[locid].getIcon();
				//alert ("Current Icon is" + icon_tmp.image);
				//alert (icon_tmp.image);
				var hover_icon = icon_tmp.image.replace(/(white|blue|green|red)/g	, "green");
				//alert (hover_icon);

				this.mapmarkers[locid].setImage(hover_icon);
				//alert ("Marker hover in");
				//alert("GMarker.prototype.setImage.call(this, a);");//MH
				
				this.__tooltip_fill_after_click(marker);

		}

		/*
		BuurtMap.prototype.readMapLocations	=	function(callback)
		{
		//	check	wether	any	type	or	showlevel
		if(this.showlevels.length	==	0	||	this.types.length	==	0)
		{
		//	nothing	to	show	(delete	everything!!
		for(hetid	in	this.mapmarkers)
		{
		//	TEMP2		this.removeLocationMarker(hetid)
		}

		if(callback	!=	null)
		{
		callback([])
		}
		}
		else
		{

		borders	=	this.getMapBordersString()
		var	thisinstance	=	this
		//alert("getting	locs");
		this.locations.getLocationsInRange(borders["minlat"],borders["maxlat"],borders["minlong"],borders["maxlong"],this.showlevels,this.types,this.maximum,function(locations)
		{
		//	DO	SOMETHING	WITH	THE	LOCS	(BUT	ARE	ALL!!!<	SO	FILTER!!)
		//alert("Got	the	new	locs");
		thisinstance.newMapLocations(locations)


		if(callback	!=	null)
		{
		callback(locations)
		}
		});
		}
		}
		*/

		/*
		BuurtMap.prototype.readCurrentMapLocations	=	function(callback)
		{


		var borders	=	this.getMapBordersString();
		var	thisinstance	=	this;

		//	T_BM_SHOW_PUBLIC	T_BM_SHOW_FRIENDS	T_BM_SHOW_SPECIFIC_USER
		//	T_BM_SHOW_NOTES		T_BM_SHOW_PHOTOS	T_BM_SHOW_TREELZ	T_BM_SHOW_TREELZ_POINTS
		var	maximum	=	this.maximum;
		var	types	=	[];
		if(this.what_show_filter[T_BM_SHOW_NOTES])	types[1]	=	1;
		if(this.what_show_filter[T_BM_SHOW_PHOTOS])	types[4]	=	4;

		var	showlevels	=	[]
		if(this.who_show_filter[T_BM_SHOW_PUBLIC])	showlevels[4]	=	4;
		if(this.who_show_filter[T_BM_SHOW_FRIENDS])	showlevels[1]	=	1;
		if(this.who_show_filter[T_BM_SHOW_PRIVATE])	showlevels[5]	=	5;
		var	thisinstance	=	this
		var	users	=	[]
		for(uid	in	this.users_show_filter)
		{
		if(this.users_show_filter[uid])
		{
		users[uid]	=	uid
		}
		}
		//	TODO	tzt	moet	dit	ff	1	functio	woren
		var extraoptions = {}
		if(this.what_show_filter[T_BM_SHOW_WIKIPEDIA]  && this.map.getZoom() >= 14) extraoptions.include_wikipedia = true;
		this.locations.getLocationsInRange(borders["minlat"],borders["maxlat"],borders["minlong"],borders["maxlong"],showlevels,types,maximum,function(locationsinrange)
		{
		//
		thisinstance.locations.getLocationsInRangeByUsers(borders["minlat"],borders["maxlat"],borders["minlong"],borders["maxlong"],users,types,maximum,function(userslocs)
		{
		var	all_locs	=	[]
		for(lid	in	userslocs)
		{
		all_locs[lid]	=	userslocs[lid]
		//all_locs[lid].userloc	=	true
		}
		for(lid	in	locationsinrange)
		{
		all_locs[lid]	=	locationsinrange[lid]
		}
		callback(all_locs)
		}
		);
		}
		,null,extraoptions);



		}
		*/


		/*
		BuurtMap.prototype.mapMessageChangedFindNew=function(callback,usecache)
		{
		usecache	=	true
		var	thisinstance	=	this

		if(thisinstance.mapmessage_change_cbs.length	==	0)
		{
		callback([]);
		return
		}
		var	borders	=	this.getMapBordersString()


		var	types=[]
		types[1]=1
		types[2]=2
		types[3]=3
		types[4]=4

		var	showlevels	=	[]
		if(this.who_show_filter[T_BM_SHOW_PUBLIC])	showlevels[4]	=	4;
		if(this.who_show_filter[T_BM_SHOW_FRIENDS])	showlevels[1]	=	1;
		if(this.who_show_filter[T_BM_SHOW_PRIVATE])	showlevels[5]	=	5;



		//alert('net	er	voor')
		thisinstance.locations.getLatestMessagesInRange(borders["minlat"],borders["maxlat"],borders["minlong"],borders["maxlong"],showlevels,types,thisinstance.maximum_mapmessages,function(messages)
		{
		//alert(messages)
		var	sortedmsgs	=	[]
		sortedmsgs[1]	=	[]
		sortedmsgs[2]	=	[]
		sortedmsgs[3]	=	[]
		sortedmsgs[4]	=	[]

		//	sort
		for(var	mid	in	messages)
		{
		var	msg	=	messages[mid]
		var	type	=	msg.type
		if(msg.id)
		{
		sortedmsgs[type][mid]	=	msg
		}

		}

		//		messages
		for(var	i	in	thisinstance.mapmessage_change_cbs)
		{
		var	cb_func	=	thisinstance.mapmessage_change_cbs[i]
		cb_func(1,sortedmsgs[1])
		cb_func(2,sortedmsgs[2])
		cb_func(3,sortedmsgs[3])
		cb_func(4,sortedmsgs[4])
		}

		callback(messages)
		});


		}
		*/


		BuurtMap.prototype.centerOnLocation=function(locid)
		{
				var	thisinstance	=	this;
				this.locations.getLocation(locid,function(gevondenlocation)
				{
						var lat	=	gevondenlocation.lat;
						var lng	=	gevondenlocation.lng;
						//alert(lat+lng)

						thisinstance.map.setCenter(new	GLatLng(lat,lng));
						/*comment	arjen:	panTo	is	te	traag	op	de	meeste	comouters*/
						//thisinstance.map.panTo(new	GLatLng(lat,lng));
						thisinstance.__reposition_tooltip();
				});
		}

		BuurtMap.prototype.getMapBordersString	=	function()
		{
				var	borders	=	[];
				var	bounds	=	this.map.getBounds();
				var	southWest	=	bounds.getSouthWest();
				var	northEast	=	bounds.getNorthEast();
				var	ne_lat	=	northEast.lat();
				var	ne_long	=	northEast.lng();
				var	sw_lat	=southWest.lat();
				var	sw_long	=southWest.lng();
				borders["minlat"]=	sw_lat;
				borders["maxlat"]=	ne_lat;
				borders["minlong"]=	sw_long;
				borders["maxlong"]=	ne_long;

				return	borders;
		}

		/* Get all the treelz points sorted from JSON */
		//		
		// @ Melle: ik zag dat deze functies worden aangeroepen in buurtmap class. moet dat niet vanuit treelz class??
		BuurtMap.prototype.getTreelMessages = function(treelid, sorting, callback)
		{
				var thisinstance = this;
				var options = [];
				options["treelid"] = treelid;
				options["sorting"] = sorting; //prevnext/date/order/messageid//
				this.apisystem.command("TREELXYS", options, function(jsonData)
				{
						//alert("In the class" + jsonData[66].trail_id);

						var linedata = jsonData.line;
						/*var nieuwedata = []
						//STEVEN:debug('running TREELXYS')
						for(i in linedata)
						{
						//STEVEN:debug('found in XYs:'+i)
						nieuwedata[i] = linedata[i]
						}*/

						callback(linedata);
				});
		}

		// @ Melle: ik zag dat deze functies worden aangeroepen in buurtmap class. moet dat niet vanuit treelz class??
		BuurtMap.prototype.StoreOrderTreel = function(orderlist, callback)
		{
				var thisinstance = this;
				var options = [];
				options["orderlist"] = orderlist;

				this.apisystem.command("STOREORDERTREEL", options, function(jsonData){
						callback(jsonData);
				});
		}

		/* -------- */

		BuurtMap.prototype.EmailLink = function (link, message, to, callback) {
				//MH
				var thisinstance = this;
				var options = [];
				options["link"] = link;
				options["message"] = message;
				options["to"] = to;
				this.apisystem.command("TOOLS.MAILLINK", options, function(jsonData)
				{

						callback(jsonData.result);
				});
		}













		//	=========================================================================
		//	Constructor.
		//	=========================================================================
		function Locations(apisystem)
		{
				this.apisystem	=	apisystem;
				this.locations	=	[];	//	loc	id	->	location	instance

				this.cleaner = new CacherRemover(this.locations)
				// cache clean up funtions
				/*
				this.touched	=	[];
				this.threshold	=	1000	*	60	*	3	;//	3	min
				this.last_remove_nulls = 0;
				this.last_remove_nulls_threshold = 1000* 10 ;// 10 sec
				this.__scheduleCleanCache();
				*/
		}

		Locations.prototype.__cleanCache=function()
		{
				var now = (new	Date()).getTime();
				var i;
				for(i	in	this.touched)
				{
						if(this.touched[i] && this.locations[i])
						{
								var x = this.touched[i]	+	this.threshold
								if(x	<	now)
								{

										this.touched[i] = null;
										this.locations[i] = null  ;
								}
						}
				}

				//if(this.last_remove_nulls_threshold + this.last_remove_nulls
				this.touched =  removeNullsFromArray(this.touched);
				this.locations=	removeNullsFromArray(this.locations);

				this.__scheduleCleanCache();

		}

		Locations.prototype.__scheduleCleanCache=function()
		{
				//	direct	(60 sec)	na	run	nog	een	keer	om	te	kijken	of	er	nog	ergens	shit	zit	in	de	queueu
				var	callwrapper	=	new	CCallWrapper(this,	1000*60,	'__cleanCache');
				CCallWrapper.asyncExecute(callwrapper);
		}

		Locations.prototype.__touched=function(id)
		{
				// this.touched[id]	=	(new	Date()).getTime();
				this.cleaner.touchedObject(id);
		}

		/* OLD!!!
		//	-------------------------------------------------------------------------
		//	function	to	create	create	message	on	a	new	location
		Locations.prototype.saveNewLocation=function(lng,lat,title,privacy,comment,finish_cb,category,extraoptions)
		{
		var	thisinstance	=	this;
		var	options	=	[];
		options["lng"]	=	lng;
		options["lat"]	=	lat;
		options["privacy"]=privacy;
		options["comment"]=comment;
		options["title"]=title;
		options['category']=category;

		if(extraoptions.traveltreel) options['traveltreel'] = extraoptions.traveltreel;
		if(extraoptions.tags) options['tags'] = extraoptions.tags;
		if(extraoptions.language) options['language'] = extraoptions.language;
		//			alert(options['traveltreel'])
		this.apisystem.command("MESSAGE.EDIT.ADDNEWLOC_MESSAGE",options,	function	(jsonData)
		{
		//	themessage
		var locationid	=	jsonData.location.id;
		var newmessageid	=	jsonData.newmessage.id;

		thisinstance.getLocation(locationid,function(loc)
		{
		finish_cb(loc,newmessageid);
		}
		);
		}
		);
		}
		*/

		//	-------------------------------------------------------------------------
		//	function	to	create	create	a	new	location
		Locations.prototype.createNewLocation=function(lng,lat,finish_cb,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["lng"]	=	lng;
				options["lat"]	=	lat;

				this.apisystem.command("LOCATION.CREATE.GET_LOC_ID",options,	function	(jsonData)
				{
						//	// TODO dit kan natuurlijk efficienter als je de loc al hebt...
						var locationid	=	jsonData.location.id;
						thisinstance.getLocation(locationid,function(loc)
						{
								finish_cb(loc);
						}
						);
				}
				);
		}
		//	-------------------------------------------------------------------------
		//		function	to	get	locations	with	specific	IDs
		//	-------------------------------------------------------------------------
		Locations.prototype.getSpecificLocations	=	function(ids,load_cb,allelocs)
		{
				if(allelocs	==	null)
				{
						var	allelocs	=	[];
				}
				//
				var	thisinstance	=	this;
				if(ids.length>0)
				{
						//alert(ids.length)
						var	gadoor	=	true;
						var	eenid=	null;
						while(	gadoor	&&	ids.length	>	0)
						{
								eenid	=	ids.pop();
								if(eenid)	gadoor	=	false;
						}
						if(gadoor)
						{
								load_cb(allelocs);
								return;
						}
						//alert(eenid)
						this.getLocation(eenid,function(theloc)
						{
								allelocs[eenid]	=	theloc;
								thisinstance.getSpecificLocations(ids,load_cb,allelocs);
						}
						)
				}
				else
				{
						load_cb(allelocs);
						return;
				}
		}

		//	-------------------------------------------------------------------------
		//	get	a	location
		//	-------------------------------------------------------------------------
		Locations.prototype.getLocation=function(id,load_cb,reset,extraoptions)
		{
				this.__touched(id);
				var	thisinstance	=	this;
				if(this.locations[id]	&&	reset	!=	true)
				{
						//	cached!
						load_cb(	this.locations[id]);
				}
				else
				{
						new	Location(id,true,this.apisystem,function(theloc)
						{
								thisinstance.locations[id]	=	theloc;
								load_cb(theloc);
						}
						);
				}

				/*
				}
				*/

		}

		Locations.prototype.getLatestMessagesInRange	=	function(minlat,maxlat,minlng,maxlng,showlevels,types,maximum,notifycallback,usecache)
		{
				if(showlevels.length	==	0	||	types.length	==	0)
				{
						notifycallback([]);
						return;
				}

				var options	=	[];

				options["max"]=maximum;
				for(type	in	types)
				{
						options["types["+type+"]"]	=	type;
				}

				for(showlevel	in	showlevels)
				{
						options["showlevels["+showlevel+"]"]	=	showlevel;
				}
				options["minlat"]	=	minlat;
				options["maxlat"]	=	maxlat;
				options["minlong"]	=	minlng;
				options["maxlong"]	=	maxlng;

				var	thisinstance	=	this;

				this.apisystem.command("MESSAGE.FIND.LATESTMESSAGES_BOUNDARIES",options,	function	(jsonData)
				{
						var msgcacher	=	getMessageCacher();
						var returnmsgs	=	[];
						for(messageid	in	jsonData.messages)
						{
								var message=jsonData.messages[messageid];
								var theid	=	message.id;
								returnmsgs[theid]	=	new	Message(theid,message,thisinstance.apisystem,null);



								msgcacher.registerMessage(returnmsgs[theid]);
						}

						notifycallback(returnmsgs);
				});

		}


		Locations.prototype.getLocationsInRangeByUsers	=	function(minlat,maxlat,minlng,maxlng,users,types,maximum,notifycallback)
		{
				if(users	==	null	||	users.length	==	0)
				{
						notifycallback([]);
						return;
				}
				//alert(users.length)
				var options	=	[];

				options["max"]=maximum;
				for(type	in	types)
				{
						options["types["+type+"]"]	=	type;
				}

				for(userid	in	users)
				{
						options["users["+userid+"]"]	=	userid;
				}
				options["minlat"]	=	minlat;
				options["maxlat"]	=	maxlat;
				options["minlong"]	=	minlng;
				options["maxlong"]	=	maxlng;

				var	ditinstance	=	this;

				this.apisystem.command("LOCATION.SELECT.BYUSERS",options,	function	(jsonData)
				{
						var returndata	=	[];
						if(jsonData.locations	==	null)
						{
								notifycallback(returndata);
						}
						else
						{
								for	(i	in	jsonData.locations)
								{
										var loc	=	jsonData.locations[i];
										var hetid	=	loc.id;
										ditinstance.__touched(hetid);
										if	(ditinstance.locations[hetid])
										{
												//	TODO:	ditinstance.locations[hetid].setinfo(loc)
												returndata[hetid]	=	ditinstance.locations[hetid];
										}
										else
										{
												ditinstance.locations[hetid]	=	new	Location(hetid,loc,ditinstance.apisystem,null);
												returndata[hetid]	=	ditinstance.locations[hetid];
												//ditinstance.locations[hetid].setinfo(loc)
										}
								}
								notifycallback(returndata);
						}




				});
		}

		Locations.prototype.getWikisInRange	=	function(minlat,maxlat,minlng,maxlng,showlevels,types,maximum,notifycallback,usecache,extraoptions)
		{
				//http://treelz.nl/DEVO3/jsonapi.php?command=EXTERNAL&type=wikipedia_boundary&max=50&maxlong=50&minlong=48&minlat=4&maxlat=5
				var options = [];
				options["type"]="wikipedia_boundary";
				options["minlat"]	=	minlat;
				options["maxlat"]	=	maxlat;
				options["minlong"]	=	minlng;
				options["maxlong"]	=	maxlng;
				options["max"]=maximum;
				var	ditinstance	=	this;

				this.apisystem.command("EXTERNAL.EXTERNALCOMMAND",options,	function	(jsonData)
				{
						var returndata	=	[];
						for	(i	in	jsonData)
						{
								var wiki_loc	=	jsonData[i];
								var loc_id = wiki_loc.location_id;
								returndata[loc_id]= new WikiLocation(loc_id,ditinstance.apisystem,ditinstance);
								returndata[loc_id].setDataByGeonames(wiki_loc);
						}

						notifycallback(returndata);

				});

		}

		/*
		Locations.prototype.getLocationsInRange	=	function(minlat,maxlat,minlng,maxlng,showlevels,types,maximum,notifycallback,usecache,extraoptions)
		{
		var	ditinstance	=	this;

		if(showlevels.length	==	0	||	types.length	==	0)
		{
		notifycallback([]);
		return;
		}

		var	options	=	[];

		options["max"]=maximum;
		for(type	in	types)
		{
		options["types["+type+"]"]	=	type;
		}

		for(showlevel	in	showlevels)
		{
		options["showlevels["+showlevel+"]"]	=	showlevel;
		}

		options["minlat"]	=	minlat;
		options["maxlat"]	=	maxlat;
		options["minlong"]	=	minlng;
		options["maxlong"]	=	maxlng;
		if(extraoptions && extraoptions.include_wikipedia)
		{
		options["include_wikipedia"]	=	1;
		options["include_wikipedia_max"]	=	1000;

		}

		this.apisystem.command("LOCATIONS",options,	function	(jsonData)
		{
		//alert(jsonData.locations)
		var returndata	=	[];
		//for	(var	i=0;	i<jsonData.locations.length;	i++)
		if(jsonData.locations	==	null)
		{
		notifycallback(returndata);
		}
		else
		{
		for	(i	in	jsonData.locations)
		{
		var loc	=	jsonData.locations[i];
		var hetid	=	loc.id;
		ditinstance.__touched(hetid);
		if	(ditinstance.locations[hetid])
		{
		//	TODO:	ditinstance.locations[hetid].setinfo(loc)
		returndata[hetid]	=	ditinstance.locations[hetid];
		}
		else
		{
		ditinstance.locations[hetid]	=	new	Location(hetid,loc,ditinstance.apisystem,null);
		returndata[hetid]	=	ditinstance.locations[hetid];
		}
		}

		notifycallback(returndata);
		}
		});
		}
		*/
		// NEW
		Locations.prototype.getLocationsInRangeByFilter	=	function(borders,maximum,notifycallback,extraoptions)
		{
				var	ditinstance	=	this;
				var	options	=	[];

				options["max"]=maximum;

				// languages (MAIN SELECTION)

				if(extraoptions.groups)
				{
						options["groups"]="";
						for(group	in	extraoptions.groups)
						{
								if(options["groups"] != "") options["groups"] = options["groups"] +	",";
								options["groups"] = options["groups"] +	group;
						}
				}

				// Categories
				if(extraoptions.cats)
				{
					options["cats"]="";
						for(cat	in	extraoptions.cats)
						{
								if(options["cats"] != "") options["cats"] = options["cats"] +	",";
								options["cats"] = options["cats"] +	cat;
						}

				}

				// languages
				if(extraoptions.langs)
				{
						options["langs"]="";
						for(lang	in	extraoptions.langs)
						{
								if(options["langs"] != "") options["langs"] = options["langs"] + ",";

								options["langs"] = options["langs"] +	lang;
						}
				}

				options["minlat"]	=	borders["minlat"];
				options["maxlat"]	=	borders["maxlat"];
				options["minlong"]	=	borders["minlong"];
				options["maxlong"]	=	borders["maxlong"];

				this.apisystem.command("LOCATION.SELECT.FILTER",options,	function	(jsonData)
				{
						//alert(jsonData.locations)
						var returndata	=	[];
						//for	(var	i=0;	i<jsonData.locations.length;	i++)
						if(jsonData.locations	==	null)
						{
								notifycallback(returndata,0);
						}
						else
						{
								var aantalmax = jsonData.max_locs;
								for	(i	in	jsonData.locations)
								{
										var loc	=	jsonData.locations[i];
										var hetid	=	loc.id;
										ditinstance.__touched(hetid);
										if	(ditinstance.locations[hetid])
										{
												//	TODO:	ditinstance.locations[hetid].setinfo(loc)
												returndata[hetid]	=	ditinstance.locations[hetid];
										}
										else
										{
												ditinstance.locations[hetid]	=	new	Location(hetid,loc,ditinstance.apisystem,null);
												returndata[hetid]	=	ditinstance.locations[hetid];
										}
								}

								notifycallback(returndata, aantalmax);
						}
						//alert (selected_marker);
						try {
								mapsystem.ColorMarker(selected_marker, "green");
						}
						catch (e) {
								//alert(e);
						}

				});
				//alert("Loading locations...");
		}

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	WikiLocation(loc_id,apisystem,locations)
		{
				this.apisystem	=	apisystem;
				this.locations = locations;
				this.id	=	loc_id;
				this.lng	=	null;
				this.lat	=	null		;
		}

		WikiLocation.prototype.setDataByGeonames=	function(wiki_loc,callback)
		{
				/*
				[summary] => Brunei, (IPA: ) officially the State of Brunei, Abode of Peace (, Jawi: ???? ????????? ), is a country located on the island of Borneo, in Southeast Asia. Apart from its coastline with the South China Sea it is completely surrounded by the state of Sarawak, East Malaysia (...)
				[title] => Brunei
				[wikipediaUrl] => en.wikipedia.org/wiki/Brunei
				[elevation] => 0
				[lng] => 114.566666667
				[feature] =>
				[thumbnailImg] => http://www.geonames.org/img/wikipedia/54000/thumb-53473-100.jpg
				[lang] => en
				[lat] => 4.4
				[population] => 0
				[location_id] => 5761
				*/
				this.summary = wiki_loc.summary;
				this.lat = wiki_loc.lat;
				this.lng = wiki_loc.lng;
				this.title = wiki_loc.title;
				this.link = wiki_loc.wikipediaUrl		;
				this.thumb = wiki_loc.thumbnailImg;



				if(callback) callback(this);
		}

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	Location(id,load,apisystem,load_cb)
		{
				//this.lat	=	lat
				//this.lng	=	lng
				this.messages	=	null;
				this.apisystem	=	apisystem;

				this.id	=	id;
				this.lng	=	null;
				this.lat	=	null;
				this.userid	=	null;
				this.types	=	[];

				this.standard_cat = 1101;
				
				if(load	==	true)
				{
						this.__load(true,load_cb);
				}
				else	if(load	==	false)
				{

				}
				else
				{
						this.__load(load,load_cb);
				}
				
				
		}

		Location.prototype.saveNewInfo=	function(title,comment,group_ids,finish_cb,category,extraoptions)
		{
				//  comment = comment.replace("\n","<br")
				//	comment = comment.replace("\r","<br>")
				var	thisinstance	=	this;
				var	options	=	[];
				options["locationid"]	=	this.id;

				var i;
				var str = '';
				for(i in group_ids)
				{
						str = str + i + ',';
				}
				options['group_ids'] = str;
				//options["privacy"]=privacy;
				options["comment"]=comment;
				options["title"]=title;
				options['category']=category;

//hier doet ie het nog kan je checken met:
//alert(options['category'])


				if(extraoptions.traveltreel) options['traveltreel'] = extraoptions.traveltreel;
				if(extraoptions.tags) options['tags'] = extraoptions.tags;
				if(extraoptions.language) options['language'] = extraoptions.language;
				this.apisystem.command("MESSAGE.EDIT.CREATE_NEW_ADDNEWINFO",options,	function	(jsonData)
				{
						//	themessage
						var themessageid	=	jsonData.message.id;
						thisinstance.__load(true,function(loc)
						{
								finish_cb(loc,themessageid);
						}
						);
				}
				);
		}

		Location.prototype.getMessages	=	function(callback)
		{
				if(this.messages	==	null)
				{
						this.__loadMessages(callback);
				}
				else
				{
						callback(this.messages);
				}
		}

		Location.prototype.__loadMessages=function(callback)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["locationid"]	=	this.id;
				var msgcacher	=	getMessageCacher();
				this.apisystem.command("MESSAGE.INFO.MESSAGEONLOCATION",options,	function	(jsonData)
				{
						if	(this.messages	==	null)
						{
								thisinstance.messages	=	[];
						}
						for(message	in	jsonData.messages)
						{
								var message=jsonData.messages[message];
								var theid	=	message.id;
								thisinstance.messages[theid]	=	new	Message(theid,message,thisinstance.apisystem,null);


								msgcacher.registerMessage(thisinstance.messages[theid]);

						}
						if(callback	!=	null)
						{
								callback(thisinstance.messages);
						}
				});
		}



		Location.prototype.getLng=function(callback)
		{
				if(this.lng)	callback(this.lng);
				else
				{
						this.__load(true,function(loadloc)
						{
								callback(loadloc.lng);
						}
						);
				}
		}

		Location.prototype.getLat=function(callback)
		{
				if(this.lat)	callback(this.lat);
				else
				{
						this.__load(true,function(loadloc)
						{
								callback(loadloc.lat);
						}
						);
				}
		}

		Location.prototype.getName=function(callback)
		{
				if(this.name)	callback(this.name);
				else
				{
						this.__load(true,function(loadloc)
						{
								callback(loadloc.name);
						}
						);
				}
		}

		Location.prototype.getNumberOfType=function(type)
		{
				if(this.types[type])
				{
						return	this.types[type];
				}
				return	0;
		}
		Location.prototype.getPrimaryCategory=function()
		{
				var	maxi=0;
				var	cat	=0;
				
				for(i	in	this.categories)
				{
						if(i != 1 && this.categories[i]	>=	maxi)
						{
								maxi	= this.categories[i];
								cat	=	i;
						}
				}

				if(cat == 0)
				{
	
						if(this.wiki && this.wiki.style_to_category != 0)
						{
								return this.wiki.style_to_category;
						}
						return this.standard_cat// standard
				}


return	cat;
		}

		Location.prototype.getPrimaryShowlevel=function()
		{
				// TODO fix this showlevel shit
				return 0;
				/*
				var	maxi=0;
				var	cat	=	0;
				for(i	in	this.showlevels)
				{
				if(i != 1 && this.showlevels[i]	>=	maxi)
				{
				maxi	= this.showlevels[i]
				cat	=	i
				}
				}

				if(cat == 0)
				{
				return 4 // standard
				}

				return	cat
				*/
				// word bepaald als volgt:
				// 5 prive, 1 vrienden, 4 (public)
				/*
				if(this.showlevels[5]) return 5;
				else if(this.showlevels[1]) return 1;
				else if(this.showlevels[4]) return 4;
				return 0;
				*/
		}


		Location.prototype.__load=function(fromdb,load_cb)
		{
				var	thisinstance	=	this;
				if	(fromdb	==	true		||	fromdb	==	null)
				{

						var	options	=	[];
						options["locationid"]	=	this.id;

						//
						thisinstance.message = null
						thisinstance.types=[];
						// TODO wikipedia
						this.apisystem.command("LOCATION.INFO.BASICS",options,	function	(jsonData)
						{
								var location = jsonData.location;
								thisinstance.__load(location,load_cb);
						});
						/*
						thisinstance.lng	=	jsonData.location.longitude;
						thisinstance.lat	=	jsonData.location.latitude;
						thisinstance.userid	=	jsonData.location.userid;
						thisinstance.name	=	jsonData.location.name;
						if(jsonData.location.showlevels)
						{
						thisinstance.showlevels=[];
						for(i	in	jsonData.location.showlevels)
						{
						var	thelevel	=	jsonData.location.showlevels[i];
						thisinstance.showlevels[thelevel.id]	=	thelevel.aantal;
						}
						}
						if(jsonData.location.types)
						{
						thisinstance.types=[];
						for(i	in	jsonData.location.types)
						{
						var	thetype	=	jsonData.location.types[i];
						thisinstance.types[thetype.id]	=	thetype.aantal;
						}
						//	thisinstance.types	=	jsonData.location.types
						}


						thisinstance.friendmessages =jsonData.location.friendmessages;
						thisinstance.usermessages =jsonData.location.usermessages;

						if(jsonData.location.categories)
						{
						thisinstance.categories=[];
						//thisinstance.categories	=	jsonData.location.categories
						for(i	in	jsonData.location.categories)
						{
						var	thecat	=	jsonData.location.categories[i];
						thisinstance.categories[thecat.id]	=	thecat.aantal;
						}
						}
						var msgcacher	=	getMessageCacher();
						for(message	in	jsonData.messages)
						{
						var message=jsonData.messages[message];
						var theid	=	message.id;
						thisinstance.messages[theid]	=	new	Message(theid,message,thisinstance.apisystem,null);
						thisinstance.types[message.type]	=	message.type;


						msgcacher.registerMessage(thisinstance.messages[theid]);
						}

						if(jsonData.location.wiki)
						{
						thisinstance.wiki = jsonData.location.wiki		;
						}

						thisinstance.g_c_l = jsonData.location.g_c_l;
						if(load_cb	!=	null)
						{
						load_cb(thisinstance);
						}
						*/

				}
				else
				{

						this.lng	=	fromdb.longitude;
						this.lat	=	fromdb.latitude;
						//	this.userid	=	fromdb.userid;
						/*
						this.types=[];
						for(i	in	fromdb.types)
						{
						var	thetype	=	fromdb.types[i];
						this.types[thetype.id]	=	thetype.aantal;
						}
						*/
						//this.categories=fromdb.categories
						this.categories=[];
						for(i	in	fromdb.categories)
						{
								var	thecat	=	fromdb.categories[i];
								this.categories[thecat.id]	=	thecat.aantal;
						}

						/*
						if(fromdb.showlevels)
						{
						this.showlevels=[];
						for(i	in	fromdb.showlevels)
						{
						var	thelevel	=	fromdb.showlevels[i];
						this.showlevels[thelevel.id]	=	thelevel.aantal;
						}
						}
						*/
						if(fromdb.wiki)
						{
								this.wiki = fromdb.wiki;
						}

						this.friendmessages =fromdb.friendmessages;
						this.usermessages =fromdb.usermessages;

						this.g_c_l = fromdb.g_c_l;
						this.name	=	fromdb.name;

						if(fromdb.messages)
						{
								var msgcacher	=	getMessageCacher();
								for(message	in	fromdb.messages)
								{
										var message=fromdb.messages[message];
										var theid	=	message.id;
										thisinstance.messages[theid]	=	new	Message(theid,message,thisinstance.apisystem,null);
										msgcacher.registerMessage(thisinstance.messages[theid]);
								}
						}
						// TODO msgs this.messages	=	[];
						if(load_cb	!=	null)
						{
								load_cb(this);
						}

				}
		}

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function Tags(apisystem)
		{
				this.apisystem	=	apisystem;

				this.tags	=	[]		;
		}


		Tags.prototype.getTag=function(id,	callback,extraoptions)
		{
				var load_db = true;
				if(extraoptions && extraoptions.load_db) load_db = extraoptions.load_db;
				var reset = false;
				if(extraoptions && extraoptions.reset) reset = extraoptions.reset;

				if(this.tags[id] &&	reset	!=	true)
				{
						if(callback)	callback(	this.tags[id])						;
				}
				else
				{
						var	thisinstance	=	this;
						new	Tag(id,load_db,this.apisystem,function(thetag)
						{
								thisinstance.tags[id]	=	thetag;
								if(callback)	callback(thetag);
						}
						);
				}

		}

		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	Tag(id,load,apisystem,load_callback)
		{
				this.apisystem	=	apisystem;

				this.id	=	id;
				this.tag	=	null;

				if(load	==	true)
				{
						this.__load(true,load_callback);
				}
				else	if(load	==	false)
				{

				}
				else
				{
						this.__load(load,load_callback);
				}
		}

		Tag.prototype.__load=function(fromdb,load_callback)
		{
				var	thisinstance	=	this;
				if	(fromdb	==	true		||	fromdb	==	null)
				{
						var	options	=	[];
						options["tag_id"]	=	this.id;
						this.apisystem.command("TAG.INFO.BASIC.BYID",options,	function	(jsonData)
						{
								var	tag	=	jsonData.tag;

								thisinstance.tag	=	tag.tag;

								if(load_callback)
								{
										load_callback(thisinstance);
								}
						});

				}
				else
				{
						thisinstance.tag	=	fromdb.tag;

						if(load_callback)
						{
								load_callback(this);
						}

				}
		}



		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	MessageCacher(apisystem,extraoptions)
		{
				this.apisystem	=	apisystem;

				this.messagecategories =	new	MessageCategories(this.apisystem,extraoptions);

				this.msgs	=	[]	;//	msgs	id	->	message	instance

				this.touched	=	[]	;//	grp_id	->	epoch	last	touch
				this.threshold	=	60	*	1000	*	60	*	3;	//	3	min

				this.__scheduleCleanCache();
		}


		MessageCacher.prototype.__cleanCache=function()
		{
				var now = (new	Date()).getTime();
				var i;
				for(i	in	this.touched)
				{
						if(this.touched[i] && this.msgs[i])
						{
								var x = this.touched[i]	+	this.threshold ;
								if(x	<	now)
								{
										//debug('removed cache msg '+ i);
										this.touched[i] = null;
										this.msgs[i] = null   ;
								}
						}
				}
				this.touched =removeNullsFromArray(this.touched);
				this.msgs=				removeNullsFromArray(this.msgs);
				//debug("cleaned cached msgs");
				this.__scheduleCleanCache();

		}

		MessageCacher.prototype.__scheduleCleanCache=function()
		{
				//	direct	(60 sec)	na	run	nog	een	keer	om	te	kijken	of	er	nog	ergens	shit	zit	in	de	queueu
				var	callwrapper	=	new	CCallWrapper(this,	1000*60,	'__cleanCache');
				CCallWrapper.asyncExecute(callwrapper);
				//	debug("schedule clean cached msgs");
		}

		MessageCacher.prototype.__touched=function(id)
		{
				this.touched[id]	=	(new	Date()).getTime();
		}

		MessageCacher.prototype.messageIsRegistered=function(msg)
		{
				if(this.msgs[msg.id])
				{
						return true;
				}
				return false
		}

		MessageCacher.prototype.getMultiple=function(ids,callback)
		{
				if(ids.length == 0)
				{
						callback([]);
						return
				}
				var str = ''
				var antwoord=[];
				for(i in ids)
				{
						var theid = ids[i];
						if(this.msgs[theid])
						{
								antwoord[theid] = this.msgs[theid];
						}
						else
						{
								str = str + theid + ',';

						}
				}
				//debug('getmultiple STR:' + str + ' ANTWOORD:' + antwoord.length)
				if(str == '')
				{
						callback(antwoord);
						return
				}

				var thisinstance = this
				// TODO optimize with local stored
				var options = [];
				options['messageids'] = str;
				this.apisystem.command("MESSAGE.INFO.BASICS_OF_MULTIPLE",	options,	function(jsonData)
				{
						for(messagenr	in	jsonData.messages)
						{
								var message=jsonData.messages[messagenr];
								if(message)
								{
										var theid	=	message.id;
										//thisinstance.__touched(theid);
										var msg = thisinstance.getMessage(theid,	null,message)
										antwoord[theid] = msg
										/*
										var msg	=	new	Message(theid,message,thisinstance.apisystem,null);
										antwoord[theid] = msg
										thisinstance.registerMessage(msg);
										*/
								}
						}

						//debug('loaded multiple');
						callback(antwoord);
				}
				);
		}

		MessageCacher.prototype.registerMessage=function(msg)
		{
				if(msg	!=	null	&&	msg.user	&&	msg.userid)
				{
						this.msgs[msg.id]	=	msg;
						this.__touched(msg.id);
				}
		}

		MessageCacher.prototype.getLatestMessagesOnePerUser=function(start,aantal,type,callback)
		{
				var antwoord=[];

				var thisinstance = this

				var options = [];
				options['start'] = start;
				options['amount'] = aantal;
				options['type'] = type;
				this.apisystem.command("USER.FIND.LATEST_MESSAGES_PERONEUSER",	options,	function(jsonData)
				{
						for(messagenr	in	jsonData.messages)
						{
								var message=jsonData.messages[messagenr];
								if(message)
								{
										var theid	=	message.id;
										var msg = thisinstance.getMessage(theid,	null,message)
										antwoord[theid] = msg
								}
						}

						callback(antwoord);
				}
				);
		}
		MessageCacher.prototype.registerMessageJson=function(msg_json,callback)
		{
				if(msg_json	!=	null)
				{
						this.__touched(msg_json.id);
						this.msgs[msg_json.id]	=	new	Message(msg_json.id,msg_json,this.apisystem,callback);
						return this.msgs[msg_json.id];

				}
		}

		MessageCacher.prototype.getWikiText=function(title,lang,callback)
		{
				var thisinstance = this

				var options = [];
				options['article'] = title;
				options['lang'] = lang;


				this.apisystem.command("EXTERNAL.FETCH_WIKI_ARTICLE",	options,	function(jsonData)
				{
						callback(jsonData.wiki);
				}
				);
		}

		MessageCacher.prototype.resetMessage=function(msgid)
		{
				this.msgs[msgid]	=	null;
		}

		MessageCacher.prototype.getLatestMessage=function(number,type,	callback,langs)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["number"]	=	number;
				options["type"]	=	type;

				for(i	in	langs)
				{
						options["lang["+i+"]"]	=	i;
				}

				GiveMe.apisystem.command("MESSAGE.FIND.LATEST_MESSAGES",	options,	function(jsonData)
				{
						var thelatestmessages	=	[];
						var msgcacher	=	getMessageCacher();
						for(messagenr	in	jsonData.messages)
						{
								var message=jsonData.messages[messagenr];
								if(message)
								{
										var theid	=	message.id;
										thisinstance.__touched(theid);
										thelatestmessages[theid]	=	new	Message(theid,message,thisinstance.apisystem,null);


										msgcacher.registerMessage(thelatestmessages[theid]);
								}

						}

						callback(thelatestmessages);
				}
				);
		}

		MessageCacher.prototype.getMessage=function(msgid,	callback,load_db,reset)
		{
				if(reset == true)
				{
						this.msgs[msgid] = null
				}

				if(load_db	==	null)
				{
						load_db	=	true;
				}
				var thisinstance = this
				this.__touched(msgid)

				if(callback	==	null)
				{
						if(this.msgs[msgid]	!=	null	&&	reset	!=	true)
						{
								return	this.msgs[msgid];
						}
						else
						{
								this.msgs[msgid]	=	new	Message(msgid,load_db,this.apisystem,callback);
								return	this.msgs[msgid];
						}
				}
				else
				{
						if(this.msgs[msgid]	!=	null	&&	reset	!=	true)
						{
								callback(	this.msgs[msgid]);
						}
						else
						{
								new	Message(msgid,load_db,this.apisystem,function(msg)
								{
										thisinstance.msgs[msgid]	= msg
										callback(msg)
								}
								);
						}
				}
				return	this.msgs[msgid];
		}

		
		function	createMessageCacher(apisystem)
		{
				if(messagecacher_instance	==	null)
				{
				    var extraoptions = {}
						extraoptions.language_id = language_chosen_id
						messagecacher_instance	=	new	MessageCacher(apisystem,extraoptions);
						return messagecacher_instance;
				}
				return messagecacher_instance;
		}

		function	getMessageCacher()
		{
				return	messagecacher_instance;
		}


		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	MessageCategories(apisystem,extraoptions)
		{
				this.apisystem	=	apisystem;

				// TODO remove old cats???
				this.categories	=	[];

				this.pid_to_cid = []
				this.cid_to_pid = []

				if(extraoptions && extraoptions.language_id) this.language_id = extraoptions.language_id
				
				this.categories_parents	=	null;
				this.__loadAllParents();
		}

		MessageCategories.prototype.getParentCategories=function(callback)
		{
				var thisinstance = this;
				if(this.categories_parents==null)
				{
						this.__loadAllParents(function(x)
						{
								//debug("extra load" );
								callback(thisinstance.categories_parents);
						}
						);
				}
				else
				{
						//debug("none load");
						callback(this.categories_parents);
				}

		}

		MessageCategories.prototype.getCategory=function(id,	callback,load_db,reset)
		{
				if(load_db	==	null)
				{
						load_db	=	true;
				}

				var	found	=	false;
				/*
				TODO:	rewrite	deze	functie	ivm	children
				for(catid	in	this.categories)
				{
				if(this.categories[catid]	!=	null	&&	reset	!=	true)
				{
				this.categories[catid]
				if(callback)	callback(	this.categories[catid])
				return	this.categories[catid]	//HELP	DIT	MOET	NIET
				}
				}
				*/
				if(this.categories[id]	!=	null	&&	reset	!=	true)
				{
						if(callback)	callback(	this.categories[id]);
						return	this.categories[id]	;//HELP	DIT	MOET	NIET
				}
				else
				{
						var	thisinstance	=	this;
						new	MessageCategory(id,load_db,this.apisystem,function(thegroup)
						{
								thisinstance.categories[id]	=	thegroup;
								if(callback)	callback(thegroup);
						}
						);
				}

		}

		MessageCategories.prototype.setLanguageId =function(langid)
		{
		this.language_id = langid
		this.__loadAllParents()
		}
		
		MessageCategories.prototype.__loadAllParents=function(callback)
		{
				var	thisinstance	=	this;

				var	options	=	[];

				options["parameter"]	=	'cats';
				options["num_of_levels"]	=	'10';
				if(this.language_id)	options['language_id']= this.language_id;
					
				this.apisystem.command("MESSAGE.CATEGORY.CATEGORIES",options,	function	(jsonData)
				{
						var	categories	=	jsonData.categories;
						thisinstance.categories_parents = []
						for(i	in	categories)
						{
								var	eencat	=	categories[i];

								thisinstance.categories[eencat.id] = new	MessageCategory(eencat.id,eencat,thisinstance.apisystem,function(thegroup)
								{
										thisinstance.pid_to_cid[thegroup.id] = []
										thisinstance.categories[thegroup.id]	=	thegroup;
										thisinstance.categories_parents[thegroup.id]	=	thegroup;
										if(thegroup.children)
										{
												thisinstance.__cacheChidren(thegroup.children);
												for(i in thegroup.children)
												{
														var cid = thegroup.children[i].id
														thisinstance.pid_to_cid[thegroup.id][cid]=cid
														thisinstance.cid_to_pid[cid] = thegroup.id
												}
										}

								}
								)



						}
						if(callback) callback(true)
				}
				);

		}

		MessageCategories.prototype.__cacheChidren=function(childs)
		{
				for(i	in	childs)
				{
						var	child	=	childs[i];
						this.categories[child.id]	=	child;
				}
		}



		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	MessageCategory(id,load,apisystem,load_callback)
		{
				this.apisystem	=	apisystem;

				this.id	=	id;
				this.name	=	null;
				this.icon_url	=	null;

				this.icon	=	[];
				if(load	==	true)
				{
						this.__load(true,load_callback);
				}
				else	if(load	==	false)
				{

				}
				else
				{
						this.__load(load,load_callback);
				}
		}

		MessageCategory.prototype.getChilds=function(callback)
		{
				if(this.children)
				{
						callback(this.children);
				}
				else
				{
						alert('todo	message	cat	get	childs');
				}
		}

		MessageCategory.prototype.getIcon=function(extraoptions)
		{
				var showlevel = 0;
				var friendmessage = 0;
				var color = 'white';

				if(extraoptions)
				{
					
						/*if(extraoptions.showlevel)
						{
						if(extraoptions.showlevel == 1) color =	'red'				;
						if(extraoptions.showlevel == 4) color =	'white'					;
						if(extraoptions.showlevel == 5) color =	'blue'					;
						}*/

						if(extraoptions.friendmessages && extraoptions.friendmessages==1)
						{
								color =	'red'; // OVERRULED because FRIENDS!!!!
						}

						if(extraoptions.usermessages && extraoptions.usermessages==1)
						{
								color =	'blue'; // OVERRULED because personal!!
						}

						if(extraoptions.wiki)
						{
								color ='green';
						}
				}


				var iconurl= this.icon_url;
				try
				{
				var ext = iconurl.indexOf('.png');
				}
				catch(e)
				{
				return
				}

				if(ext != -1)
				{
						var path = iconurl.substring(0,ext);

						var posoflastslash = path.lastIndexOf('/');
						var first = path.substring(0,posoflastslash);
						var last = path.substring(posoflastslash);
							iconurl = first + '/' + 	color + last + '_' + color + '.png';
				
				
				}

				if(this.icon[color]	==	null)
				{
					
										
						this.icon[color]	=	new	GIcon();
						this.icon[color].image	=	iconurl; //"showicon.php?catid="+this.id +"&showlevel="+showlevel+"&color="+color
						this.icon[color].shadow	=	'images/icons_on_map/icon_shadow.png';
						this.icon[color].iconSize	=	new	GSize(this.icon_width,	this.icon_height);
						this.icon[color].iconAnchor	=	new	GPoint(14,	41);
						this.icon[color].infoWindowAnchor	=	new	GPoint(5,	1);
				}

				return	this.icon[color];
		}

		MessageCategory.prototype.__load=function(fromdb,load_callback)
		{
				var	thisinstance	=	this;
				if	(fromdb	==	true		||	fromdb	==	null)
				{
						var	options	=	[];
						options["category_id"]	=	this.id;
						this.apisystem.command("MESSAGE.CATEGORY.BASICS",options,	function	(jsonData)
						{
								var	category	=	jsonData.category;

								thisinstance.name	=	category.name;
								thisinstance.icon_url	=	category.icon_url;

								thisinstance.icon_width	=	category.icon_width;
								thisinstance.icon_height	=	category.icon_height;
								thisinstance.parent_category_id =category.parent_category_id
								if(category.children)
								{
										thisinstance.children	=	[];
										for(i	in	category.children)
										{
												var	child	=		category.children[i];
												new	MessageCategory(child.id,child,thisinstance.apisystem,function(thegroup)
												{
														thisinstance.children[thegroup.id]	=	thegroup;
												}
												);
										}
								}

								if(load_callback)
								{
										load_callback(thisinstance);
								}
						});

				}
				else
				{
						thisinstance.name	=	fromdb.name;
						thisinstance.icon_url	=	fromdb.icon_url;
						thisinstance.icon_width	=	fromdb.icon_width;
						thisinstance.icon_height	=	fromdb.icon_height;
						thisinstance.parent_category_id =fromdb.parent_category_id
						if(fromdb.children)
						{
								thisinstance.children	=	[];
								for(i	in	fromdb.children)
								{
										var	child	=		fromdb.children[i];
										new	MessageCategory(child.id,child,thisinstance.apisystem,function(thegroup)
										{
												thisinstance.children[thegroup.id]	=	thegroup;
										}
										);
								}
						}

						if(load_callback)
						{
								load_callback(this);
						}

				}
		}
		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	Message(id,load,apisystem,load_callback)
		{
				this.apisystem	=	apisystem;

				this.id	=	id;
				this.category	=	null;
				//				this.childs	=	null;
				this.child_ids = null;
				this.attached_messages_ids=	null;

				if(load	==	true)
				{
						this.__load(true,load_callback);
				}
				else	if(load	==	false)
				{

				}
				else
				{
						this.__load(load,load_callback);
				}
		}

var updatedmsg
		Message.prototype.updateMessage=function(title,comment,datetime,	callback,category,extraoptions)
		{
				if(title)	this.title	=	title;
				if(comment)	this.text	=	comment;
				if(datetime)	this.date	=	datetime;
				if(category)	this.category	=	category;
				if(privacy)	this.showlevel	=	privacy;
				var	options	=	[];

				options['messageid']	=	this.id;
				options['title']	=	this.title;
				options['text']	=	this.text;
				options['date']	=	this.date;
				options['category']	=	this.category;
				//debug("update message showlevel")
				//options['showlevel']	=	this.showlevel;
				var	thisinstance	=	this;

				if(extraoptions.traveltreel) options['traveltreel'] = extraoptions.traveltreel;
				if(extraoptions.tags) options['tags'] = extraoptions.tags;
				if(extraoptions.language) options['language'] = extraoptions.language;
				this.apisystem.command("MESSAGE.EDIT.MESSAGE_UPDATE",options,	function	(jsonData)
				{
				  // updatedmsg = jsonData
						var	load	=	jsonData.message;
						thisinstance.__load(load,callback);
				}
				);
		}

		Message.prototype.addToFavorites=function(type,	callback)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["messageid"]	=	this.id;
				options['type']	=	type;
				this.apisystem.command("MESSAGE.EDIT.ADDTOFAVORITES",options,	function	(jsonData)
				{
						callback(thisinstance);
				}
				);
		}

		Message.prototype.attachMessage	=	function(msg,callback)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["messageid"]	=	this.id;
				options['attaching_messageid']	=	msg.id;
				this.apisystem.command("MESSAGE.EDIT.ATTACH_MSG",options,	function	(jsonData)
				{
						//callback(thisinstance);
						thisinstance.__load(jsonData.message,callback);
				}
				);
		}


		Message.prototype.getNumberOfAttached=function(callback)
		{
				var	teller	=	0;
				var thisinstance = this;

				for(attid	in	this.attached_messages_ids)
				{
						teller	=	teller	+	1;
				}
				if(callback)	callback(teller);
		}

		Message.prototype.getNumberOfReplies=function(callback)
		{
				this.getChildren(function(childs)
				{
						var	teller	=	0;
						for(childid	in	childs)
						{
								teller	=	teller	+	1;
						}
						if(callback)	callback(teller);
				}
				);
				return	'USE	CALLBACK	IN	#	REPLIES!!';
		}

		//	NOW	ALL	THE	GET	FUNCTIONS	FOR	VARIABLES
		Message.prototype.getText	=	function(callback)
		{
				if(this.text)	callback(this.text);
				else
				{
						this.__load(true,function(loadmsg)
						{
								callback(loadmsg.text);
						}
						);
				}
		}


		Message.prototype.getCategoryId	=	function(callback)
		{
				if(this.category)	callback(this.category);
				else
				{
						this.__load(true,function(loadmsg)
						{
								callback(loadmsg.category);
						}
						);
				}
		}
		Message.prototype.getTitle	=	function(callback)
		{
				if(this.title)	callback(this.title);
				else
				{
						this.__load(true,function(loadmsg)
						{
								callback(loadmsg.title);
						}
						);
				}
		}

		Message.prototype.getDate	=	function(callback)
		{
				if(this.date)	callback(this.date);
				else
				{
						this.__load(true,function(loadmsg)
						{
								callback(loadmsg.date);
						}
						);
				}
		}

		Message.prototype.getChildren	=	function(callback)
		{
				/*
				if(this.childs)	callback(this.childs);
				else
				{
				this.__load(true,function(loadmsg)

				{
				callback(loadmsg.childs);
				}
				);
				}

				return
				*/
				debug("__loadChildren");
				this.__loadChildren(function(child_messages)
				{
						callback(child_messages);
				}
				);
		}

		Message.prototype.getAttachedMessages	=	function(callback)
		{
				/*this.__loadAttached(function(attached_messages)
				{
				debug('loaded attached' + attached_messages);
				callback(attached_messages);
				}
				);
				*/
				this.__loadAttached(callback);

		}


		Message.prototype.getType	=	function(callback)
		{
				if(this.type)	callback(this.type);
				else
				{
						this.__load(true,function(loadmsg)
						{
								callback(loadmsg.type);
						}
						);
				}
		}

		Message.prototype.removeThisMessae=function(sure,callback,include_attached)
		{
				if(sure	==	true)
				{
						var	options	=	[];
						options['messageid']	=	this.id;
						if(include_attached	==	true)	options['remove_attached']	=	1;

						var	thisinstance	=	this;
						this.apisystem.command("MESSAGE.EDIT.MESSAGE_DELETE",options,	function	(jsonData)
						{
								thisinstance	=	null;
								callback(null);
						}
						);
				}
		}

		Message.prototype.removeTag=function(tagid,load_callback)
		{
				var	options	=	[];
				options["messageid"]	=	this.id;
				options["tagid"]	=	tagid;
				var thisinstance = this;
				this.apisystem.command("TAG.EDIT.MESSAGE_REMOVETAGE",options,	function	(jsonData)
				{
						thisinstance.__load(jsonData.message,load_callback);
				}
				,true);
		}


		Message.prototype.getTreelzIdsOfMessage=function(load_callback)
		{
				var	options	=	[];
				options["messageid"]	=	this.id;

				this.apisystem.command("TREEL.FIND.TREELZ_OF_MESSAGE",options,	function	(jsonData)
				{
						var theids = jsonData.treel_ids;
						var returnarray = [];
						for(i in theids)
						{
								var tid = theids[i];
								returnarray[tid] = tid;
						}

						load_callback(returnarray);
				}
				,true);
		}

		Message.prototype.__loadAttached=function(load_callback)
		{
				var msgcacher	=	getMessageCacher();
				msgcacher.getMultiple(this.attached_messages_ids,function(x)
				{
						//debug('__loadedAttached' + load_callback)
						load_callback(x);
				}
				);
		}

		Message.prototype.__loadChildren=function(load_callback)
		{
				//debug("load children");
				var msgcacher	=	getMessageCacher();
				msgcacher.getMultiple(this.child_ids,load_callback);
		}


		Message.prototype.__load=function(fromdb,load_callback)
		{
				if	(fromdb	==	true		||	fromdb	==	null)
				{
						var	thisinstance	=	this;
						var	options	=	[];
						options["messageid"]	=	this.id;
						this.apisystem.command("MESSAGE.INFO.BASICS",options,	function	(jsonData)
						{
								var message	=	jsonData.message;
								thisinstance.__load(message,load_callback)
								
						},true);

				}
				else
				{
						this.location_id	=	fromdb.location_id;
						this.title	=	fromdb.title;
						this.parent_id	=	fromdb.parent_id;
						this.date	=	fromdb.date;
						this.userid	=	fromdb.userid;
						this.epoch	=	fromdb.epoch;
						this.type	=	fromdb.type;
						this.showlevel	=	fromdb.showlevel;
						//this.user	=	fromdb.user;
						this.text	=	fromdb.text;
						this.category	=	fromdb.category;
						this.language_id	=	fromdb.language_id;
						if(this.type	==	4)
						{
								this.picture_id	=	fromdb.pictureid;
						}

						var		msgcacher	=	getMessageCacher()
						// TODO: remove
						/*
						this.childs=[];
						for(childnr	in	fromdb.childs)
						{
						var child	=	fromdb.childs[childnr];
						var childid	=	child.id;
						this.childs[childid]	=	new	Message(childid,child,this.apisystem,null);
						msgcacher.registerMessage(this.childs[childid]);
						}
						*/
						this.child_ids=[];
						for(childnr	in	fromdb.child_ids)
						{
								var child_id	=	fromdb.child_ids[childnr];
								this.child_ids[child_id]	=child_id;
						}

						this.attached_messages_ids = [];
						for(childnr	in	fromdb.attached_messages_ids)
						{
								var att_id	=	fromdb.attached_messages_ids[childnr];
								this.attached_messages_ids[att_id]	=	att_id
						}
						/*
						this.attached_messages=[];
						for(childnr	in	fromdb.attached_messages)
						{
						var child	=	fromdb.attached_messages[childnr];
						var childid	=	child.id;
						this.attached_messages[childid]	=	new	Message(childid,child,this.apisystem,null);

						msgcacher.registerMessage(this.attached_messages[childid]);
						}
						*/

						this.attached_to_messages_ids=[];
						for(childnr	in	fromdb.attached_to_messages)
						{
								var id	=	fromdb.attached_to_messages[childnr];
								this.attached_to_messages_ids[id]	=	id;
								//	alert(id)
						}

						this.traveltreelz_ids = [];
						for(i in fromdb.traveltreelz_ids)
						{
								var theidoft = fromdb.traveltreelz_ids[i];
								this.traveltreelz_ids[theidoft]=theidoft;
						}

						this.tag_ids=[];
						for(childnr	in	fromdb.tag_ids)
						{
								var id	= 	fromdb.tag_ids[childnr];
								this.tag_ids[id] =	id;
						}

						this.group_ids = []
						for(gnr	in	fromdb.group_ids)
						{
								var id	= 	fromdb.group_ids[gnr];
								this.group_ids[id] =	id;
						}

						if(load_callback)
						{
								load_callback(this);
						}

				}
		}

		Message.prototype.saveReply=function(privacy,comment,title,finish_cb)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["messageid"]	=	this.id;
				options["privacy"]	=	privacy;
				options["comment"]	=	comment;
				options["title"]	=	title;
				options['category']=this.category;
				this.apisystem.command("MESSAGE.EDIT.ADDNEWREPLY",options,	function	(jsonData)
				{
						var message	=	jsonData.message;
						thisinstance.__load(message,function(thecoolmsg)
						{
								finish_cb(thecoolmsg);
						}
						);

				}
				);


		}




		//	=========================================================================
		//	Constructor.
		//	=========================================================================
		function	Treelz(apisystem,users)
		{
				this.users	=	users;
				this.apisystem	=	apisystem;
				this.treelz	=	[]	;//	treel	id	->	treel	instance
		}

		Treelz.prototype.addNewTrail=function(finish_cb,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["showlevel"]	=	extraoptions.showlevel;
				options["title"]= extraoptions.name;

				this.apisystem.command("TREEL.EDIT.NEWTREEL",options,	function(jsonData)
				{
						var treelid	=	jsonData.treel.id;
						//this.treelz[treelid]	=
						new	Treel(treelid,jsonData.treel,thisinstance.apisystem,function(nieuwetreel)
						{
								thisinstance.treelz[treelid]	=	nieuwetreel;
								finish_cb(thisinstance.treelz[treelid]);
						}
						);
						/*
						//	TODO	can	direct	cache	hier!!
						thisinstance.getTreel(treelid,function(treel)
						{
						finish_cb(treel)
						}
						);
						*/
				}
				);
		}



		Treelz.prototype.deleteTreel	=	function(treelid,finish_cb,	extraoptions)
		{
				var options	=	[];
				options["treelid"]	=	treelid;
				var	ditinstance	=	this;
				this.apisystem.command("TREEL.EDIT.DELETETREEL",options,	function	(jsonData)
				{

						ditinstance[treelid]=null;
						finish_cb(true) ;
						// TODO goed verwerken
				}
				);
		}

		Treelz.prototype.getTreel	=	function(treelid,finish_cb,	extraoptions)
		{
				var	thisinstance	=	this;

				if(this.treelz[treelid]	!=	null	|| (extraoptions && extraoptions.reset	!=	true))
				{
						finish_cb(	this.treelz[treelid]);
				}
				else
				{
						new	Treel(treelid,true,this.apisystem,function(nieuwetreel)
						{
								thisinstance.treelz[treelid]	=	nieuwetreel;
								finish_cb(nieuwetreel);
						}
						);
				}
		}

		/*
		Treelz.prototype.searchPersonTreelz	=	function(personstring,callback)
		{
		var	thisinstance	=	this
		var	options	=	[];
		options["string"]	=	personstring
		var	ditinstance	=	this
		this.apisystem.command("TREEL.FIND.SEARCH_TREELZ_USER",options,	function	(jsonData)
		{
		var	users	=	[]
		var	treelzforusers	=	[]
		for(nr	in	jsonData.users_treelz)
		{
		var	user	=	jsonData.users_treelz[nr]
		//var	user	=	user
		users[user.id]	=	thisinstance.users.getUser(user.id,user,null)
		treelzforusers[user.id]	=	[]
		for(tnr	in	user.treelz)
		{
		var	treel	=	user.treelz[tnr]
		thisinstance.treelz[treel.id]	=	new	Treel(treel.id,treel,thisinstance.apisystem,null)
		treelzforusers[user.id][treel.id]	=	thisinstance.treelz[treel.id]
		}
		}
		//	returns	thus	users	with	some	treelz........	callback	receives	two	back,	first	users,	second	treelz	(keys	are	userids)
		callback(users,treelzforusers);
		}
		);
		}

		Treelz.prototype.searchKeyWordTreelz	=	function(string,callback)
		{
		//alert("TODO	person	treel	serach");

		var	thisinstance	=	this
		options	=	[];
		options["string"]	=	string
		var	ditinstance	=	this
		this.apisystem.command("TREEL.FIND.SEARCH_TREELZ_KEYWORD",options,	function	(jsonData)
		{
		var	treelz	=	[]
		for(nr	in	jsonData.treelz)
		{
		var	treel		=	jsonData.treelz[nr]
		thisinstance.treelz[treel.id]	=	new	Treel(treel.id,treel,thisinstance.apisystem,null)
		treelz[treel.id]	=	thisinstance.treelz[treel.id]
		}
		callback(treelz);
		}
		);

		}
		*/

		Treelz.prototype.getTreelzFromUser	=	function(userid,notifycallback)
		{
				var options	=	[];
				options["userid"]	=	userid;
				var	ditinstance	=	this;
				this.apisystem.command("USER.INFO.USERSTREELZ",options,	function	(jsonData)
				{
						var returndata	=	[];

						if(jsonData.treelz	==	null)
						{
								notifycallback(returndata);
						}
						else
						{
								for	(i	in	jsonData.treelz)
								{
										var	treel	=	jsonData.treelz[i];
										var	hetid	=	treel.id;
										if	(ditinstance.treelz[hetid])
										{
												returndata[hetid]	=	ditinstance.treelz[hetid];
												ditinstance.treelz[hetid].__load(treel,null);
										}
										else
										{
												ditinstance.treelz[hetid]	=	new	Treel(hetid,treel,ditinstance.apisystem,null);
												returndata[hetid]	=	ditinstance.treelz[hetid];
										}
								}
								notifycallback(returndata);
						}
				});

		}

		Treelz.prototype.getSpecificTreelz	=	function(ids,load_cb,alletreelz)
		{
				if(alletreelz	==	null)
				{
						var	alletreelz	=	[];
				}
				//
				var	thisinstance	=	this;
				if(ids.length>0)
				{
						//alert(ids.length)
						var	gadoor	=	true;
						var	eenid=	null;
						while(	gadoor	&&	ids.length	>	0)
						{
								eenid	=	ids.pop();
								if(eenid)	gadoor	=	false;
						}
						if(gadoor)
						{
								load_cb(alletreelz);
								return;
						}
						//alert(eenid)

						this.getTreel(eenid,function(thetreel)
						{
								alletreelz[eenid]	=	thetreel;
								thisinstance.getSpecificTreelz(ids,load_cb,alletreelz);
						}
						)
				}
				else
				{
						load_cb(alletreelz);
						return;
				}
		}


		Treelz.prototype.getTreelzInRangeByUsers	=	function(minlat,maxlat,minlng,maxlng,users,maximum,notifycallback)
		{
				if(users	==	null	||	users.length	==	0)
				{
						notifycallback([]);
						return;
				}
				var options	=	[];
				options["max"]=maximum;
				for(userid	in	users)
				{
						options["users["+userid+"]"]	=	userid;
				}
				options["minlat"]	=	minlat;
				options["maxlat"]	=	maxlat;
				options["minlong"]	=	minlng;
				options["maxlong"]	=	maxlng;

				var	ditinstance	=	this;

				this.apisystem.command("TREEL.FIND.TREELZ_OF_USERS_INRANGE",options,	function	(jsonData)
				{
						var returndata	=	[];

						if(jsonData.treelz	==	null)
						{
								notifycallback(returndata);
						}
						else
						{
								for	(i	in	jsonData.treelz)
								{
										var	treel	=	jsonData.treelz[i];
										var	hetid	=	treel.id;
										if	(ditinstance.treelz[hetid])
										{
												returndata[hetid]	=	ditinstance.treelz[hetid];
												ditinstance.treelz[hetid].__load(treel,null);
										}
										else
										{
												ditinstance.treelz[hetid]	=	new	Treel(hetid,treel,ditinstance.apisystem,null);
												returndata[hetid]	=	ditinstance.treelz[hetid];
										}
								}
								notifycallback(returndata);
						}
				});


		}



		Treelz.prototype.getTreelzInRange	=	function(minlat,maxlat,minlng,maxlng,showlevels,maximum,notifycallback)
		{
				if(showlevels.length	==	0)
				{
						return;
				}
				var options	=	[];
				options["max"]=maximum;
				for(showlevel	in	showlevels)
				{
						options["showlevels["+showlevel+"]"]	=	showlevel;
				}
				options["minlat"]	=	minlat;
				options["maxlat"]	=	maxlat;
				options["minlong"]	=	minlng;
				options["maxlong"]	=	maxlng;

				var	ditinstance	=	this;

				this.apisystem.command("TREEL.FIND.TREELZINRANGE",options,	function	(jsonData)
				{

						var returndata	=	[];

						if(jsonData.treelz	==	null)
						{
								notifycallback(returndata);
						}
						else
						{
								for	(i	in	jsonData.treelz)
								{
										var	treel	=	jsonData.treelz[i];
										var	hetid	=	treel.id;
										if	(ditinstance.treelz[hetid])
										{
												returndata[hetid]	=	ditinstance.treelz[hetid];
												ditinstance.treelz[hetid].__load(treel,null);
										}
										else
										{
												ditinstance.treelz[hetid]	=	new	Treel(hetid,treel,ditinstance.apisystem,null);
												returndata[hetid]	=	ditinstance.treelz[hetid];
										}
								}
								notifycallback(returndata);
						}
				});
		}


		Treelz.prototype.GetLatLong = function (locationid, callback){
				var thisinstance = this;
				var options = [];
				var lat = 0;
				var long = 0;
				options["locationid"] = locationid;
				thisinstance.apisystem.command("LOCATION.INFO.BASICS",options,function (jsonData)
				{
						lat = jsonData.location.latitiude;
						long = jsonData.location.longitude;
				}
				);
				callback(lat, long);

		}


		//Prefs
		Treel.prototype.StorePrefs = function (treelid, preferences) {
			var thisinstance = this;
			var options = preferences;
			options["treel_id"] = treelid;
			
			this.apisystem.command("TREEL.PREFS.UPDATE",options,	function	(jsonData) {
				
			});	
		}
		
		Treel.prototype.GetPrefs = function (groupid, callback) {
			var thisinstance = this;
			var options = [];
			options["treel_id"] = groupid;
			
			this.apisystem.command("TREEL.PREFS.GET",options,	function	(jsonData) {
				callback(jsonData);
			});	
		}





		//	=========================================================================
		//	Constructor.
		//	=========================================================================

		function	Treel(id,load,apisystem,load_callback)
		{
				this.apisystem	=	apisystem;

				this.id	=	id;

				this.tpoints	=	null;
				this.name	=	null;
				this.userid	=	null;
				this.chapters	=	null;

				this.username	=	null;
				if(load	==	true)
				{
						this.__load(true,load_callback);
				}
				else	if(load	==	false)
				{
				}
				else
				{
						this.__load(load,load_callback);
				}
		}



		Treel.prototype.updateTitel	=	function(titel,	finish_cb)
		{
				var	thisinstance	=	this;
				var	options	=	[]
				options["treelid"]	=	this.id;
				options["titel"]	=	titel;

				this.apisystem.command("TREEL.EDIT.UPDATETITEL",options,	function	(jsonData)
				{
						var treel	=	jsonData.treel;
						thisinstance.__load(treel,finish_cb);
				}
				);


		}

		Treel.prototype.updateDescription	=	function(desc,	finish_cb)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["treelid"]	=	this.id;
				options["description"]	=	desc;

				this.apisystem.command("TREEL.EDIT.UPDATEDESCRIPTION",options,	function	(jsonData)
				{
						var treel	=	jsonData.treel;
						thisinstance.__load(treel,finish_cb);
				}
				);


		}

		Treel.prototype.deleteChapter	=	function(chapter_id,callback)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["treelid"]	=	this.id;
				options["chapterid"]	=	chapter_id;

				this.apisystem.command("TREEL.EDIT.CHAPTER.REMOVE",options,	function	(jsonData)
				{
						thisinstance.__load(jsonData.treel,callback);
				}
				);

		}

		Treel.prototype.addChapter	=	function(name,	begin,end,finish_cb)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["treelid"]	=	this.id;
				options["begin"]	=	begin;
				options["end"]	=	end;
				options["name"]	=	name;

				this.apisystem.command("TREEL.EDIT.CHAPTER.ADD",options,	function	(jsonData)
				{
						var treel	=	jsonData.treel;
						thisinstance.__load(treel,finish_cb);
				}
				);
		}

		Treel.prototype.updateChapter	=	function(chapterid,name,	begin,end,finish_cb)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["treelid"]	=	this.id;
				options["chapterid"]	=	chapterid;
				options["begin"]	=	begin;
				options["end"]	=	end;
				options["name"]	=	name;

				this.apisystem.command("TREEL.EDIT.CHAPTER.UPDATE",options,	function	(jsonData)
				{
						var treel	=	jsonData.treel;
						thisinstance.__load(treel,finish_cb);
				}
				);

		}

		Treel.prototype.getAllTpointsAtLocation	=	function(locationid,	finish_cb)
		{
				var tpoints	=[];
				for(nr	in	this.tpoints)
				{
						var tp	=	this.tpoints[nr];
						if(tp.thelocation.id	==	locationid)
						{
								tpoints[nr]	=	tp;
						}
				}
				finish_cb(tpoints);
		}
		//		(locationid,function(tpoints)
		Treel.prototype.addMessage	=	function(msg,	datetime,finish_cb)
		{
				var	thisinstance	=	this;
				var	options	=	[];
				options["treelid"]	=	this.id;
				options["messageid"]	=	msg.id;
				options["datetime"]	=	datetime;

				this.apisystem.command("TREEL.EDIT.ADDMESSAGE",options,	function	(jsonData)
				{
						var treel	=	jsonData.treel;
						thisinstance.__load(treel,finish_cb);
				}
				);
		}

		Treel.prototype.getTpointsWithoutChapter=	function(finish_cb)
		{
				//thechapter	=	this.chapters[chapterid]
				//begin	=	thechapter.begin
				//end	=	thechapter.end
				var	temp_returns	=	[];
				var	thisinstance	=		this;

				for(nummer	in	this.tpoints)
				{
						var tpoint	=	this.tpoints[nummer];
						//alert(tpoint.themessage	+	'	'	+	tpoint.datetime)
						temp_returns[temp_returns.length]	=	tpoint;
				}
				//	alert(temp_returns)
				for(chapterid	in	thisinstance.chapters)
				{
						var	thechapter	=	this.chapters[chapterid];
						var	begin	=	thechapter.begin;
						var	end	=	thechapter.end;


						for(nummer	in	temp_returns)
						{
								if(temp_returns[nummer]	!=	null)
								{
										var datetime	=	temp_returns[nummer].datetime;
										//				alert(begin	+		'	'	+end	+	'	'	+datetime	+		'	'	+	temp_returns)
										if(begin	<=	datetime	&&	datetime	<=	end)
										{
												temp_returns[nummer]	=	null;
										}
								}
						}
				}
				//
				var	returns	=	[];
				for(nummer	in	temp_returns)
				{
						if(temp_returns[nummer]	!=	null)
						{
								returns[returns.length]	=	temp_returns[nummer];
						}

				}
				//	now	go	over	every	chapter
				finish_cb(returns);

		}
		Treel.prototype.getMessagesInChapter	=	function(chapterid,finish_cb)
		{
				var thechapter	=	this.chapters[chapterid];
				var begin	=	thechapter.begin;
				var end	=	thechapter.end;
				var	returns	=	[];
				var	thisinstance	=		this;

				for(nummer	in	thisinstance.tpoints)
				{

						var datetime	=	thisinstance.tpoints[nummer].datetime;
						var msg	=		thisinstance.tpoints[nummer].themessage;
						//alert	(begin		+	'||'+	end		+	'||'+datetime	+	'||'+msg)
						if(begin	<=	datetime	&&	datetime	<=	end)
						{
								var msgid	=	msg.id;
								returns[msgid]	=	msg;
						}
				}
				if(	finish_cb	==	null)
				{
						return	returns;
				}
				finish_cb(returns);
		}

		Treel.prototype.getTpointsInChapter	=	function(chapterid,finish_cb)
		{

				var thechapter	=	this.chapters[chapterid];
				var begin	=	thechapter.begin;
				var end	=	thechapter.end;
				var	returns	=	[];
				var	thisinstance	=		this;

				for(nummer	in	thisinstance.tpoints)
				{
						var datetime	=	thisinstance.tpoints[nummer].datetime;
						//alert	(begin		+	'||'+	end		+	'||'+datetime	+	'||'+msg)
						if(begin	<=	datetime	&&	datetime	<=	end)
						{
								returns[nummer]	=	thisinstance.tpoints[nummer];
						}
				}
				if(	finish_cb	==	null)
				{
						return	returns;
				}
				finish_cb(returns);
		}



		Treel.prototype.getLocations	=	function(withids)
		{
				var theresult	=	[];
				for(eenid	in	this.tpoints)
				{
						var thelocation	=	this.tpoints[eenid].thelocation;
						if(withids	==	true)
						{
								theresult[thelocation.id]	=	thelocation;
						}
						else
						{
								theresult[theresult.length]	=	thelocation;
						}
				}
				return	theresult;
		}


		Treel.prototype.getFirstDate	=	function()
		{
				var	firstdate	=	null;
				for(msgid	in	this.tpoints)
				{
						var datetime	=			this.tpoints[msgid].datetime;
						if(firstdate	==	null)
						{
								firstdate	=	datetime;
						}
						if(datetime	<	firstdate)
						{
								firstdate=datetime;
						}
				}
				return	firstdate;
		}

		Treel.prototype.getLastDate	=	function()
		{
				var	lastdate	=	'0000-00-00	00:00:00';
				for(msgid	in	this.tpoints)
				{
						var datetime	=			this.tpoints[msgid].datetime;

						if(datetime	>	lastdate)
						{
								lastdate=datetime;
						}
				}
				return	lastdate;
		}
		Treel.prototype.getSortedChapter	=	function()
		{
				var	chapters	=	[];
				for(nr	in	this.chapters)
				{
						chapters[nr]	=	this.chapters[nr];
				}
				chapters.sort(sortChapters);
				return	chapters;
		}

		Treel.prototype.getAllMessagesOfType	=	function(gekozentype)
		{
				var theresult	=	[];
				for(eenid	in	this.tpoints)
				{
						var themessage	=	this.tpoints[eenid].themessage;
						if(themessage.type	==	gekozentype)
						{
								theresult[themessage.id]	=	themessage;
						}

				}

				return	theresult;
		}

		Treel.prototype.__load=function(fromdb,load_cb)
		{

				if	(fromdb	==	true	||	fromdb	==	null)
				{
						//	alert("from	db");
						var	thisinstance	=	this;
						var	options	=	[]
						options["treelid"]	=	this.id

						this.apisystem.command("TREEL.INFO.BASICS",options,	function	(jsonData)
						{
								var	treel	=	jsonData.treel

								thisinstance.__load(treel,load_cb);
								/*
								thisinstance.name	=	treel.name
								thisinstance.userid	=	treel.userid

								thisinstance.description	=	treel.description
								thisinstance.username	=	treel.username
								var	chapters	=	treel.chapters
								var	tpoints	=	treel.treelpoints

								thisinstance.tpoints	=	[]
								//thisinstance.tlocations	=	[]
								for(tpointnr	in	tpoints)
								{
								var	tpoint	=	tpoints[tpointnr]
								var	msgid	=	tpoint.message_id
								var	datetime	=	tpoint.datetime
								var	msg_db	=	tpoint.message
								var	delocation	=	tpoint.location
								var	locationid	=	delocation.id;
								thisinstance.tpoints[msgid]	=	[]
								thisinstance.tpoints[msgid].datetime	=	datetime


								thisinstance.tpoints[msgid].themessage	=	msgid //new	Message(msgid,msg_db,thisinstance.apisystem,null)
								//thisinstance.tpoints[msgid].thelocation	=	new	Location(locationid,delocation,thisinstance.apisystem,null)
								thisinstance.tpoints[msgid].thelocation = {}
								thisinstance.tpoints[msgid].thelocation.id	=	delocation.id
								thisinstance.tpoints[msgid].thelocation.lat	=	delocation.longitude
								thisinstance.tpoints[msgid].thelocation.lng	=	delocation.latitude

								msgcacher	=	getMessageCacher()
								msgcacher.registerMessage(thisinstance.tpoints[msgid].themessage)
								}

								thisinstance.tpoints.sort(sortTponts)



								thisinstance.chapters	=	[]
								for(chapternr	in	chapters)
								{
								chapter	=	chapters[chapternr]
								chapter_id	=	chapter.chapter_id
								begin	=	chapter.begin
								end	=	chapter.end
								title	=	chapter.title
								thisinstance.chapters[chapter_id]	=	[]
								thisinstance.chapters[chapter_id].begin	=	begin
								thisinstance.chapters[chapter_id].id	=	chapter_id
								thisinstance.chapters[chapter_id].end	=	end
								thisinstance.chapters[chapter_id].title	=	title
								}

								if(load_cb)
								{
								//alert("load");
								load_cb(thisinstance)
								}

								*/
						});
				}
				else
				{
						//alert("load	los");
						var thisinstance	=	this;
						var treel	=	fromdb;
						thisinstance.name	=	treel.name;
						thisinstance.userid	=	treel.userid;
						thisinstance.description	=	treel.description;
						var chapters	=	treel.chapters;
						var tpoints	=	treel.treelpoints;
						thisinstance.username	=	treel.username;
						thisinstance.tpoints	=	[];
						//thisinstance.tlocations	=	[]
						var msgcacher	=	getMessageCacher();

						for(tpointnr	in	tpoints)
						{
								var	tpoint	=	tpoints[tpointnr];
								var	msgid	=	tpoint.message_id;
								var	datetime	=	tpoint.datetime;
								var	msg_db	=	tpoint.message;
								var	delocation	=	tpoint.location;
								var	locationid	=	delocation.id;
								thisinstance.tpoints[msgid]	=	[];

								thisinstance.tpoints[msgid].datetime	=	datetime;
								thisinstance.tpoints[msgid].themessage	=	msgid ;//new	Message(msgid,msg_db,thisinstance.apisystem,null)
						thisinstance.tpoints[msgid].thelocation = {};
								thisinstance.tpoints[msgid].thelocation.id	=	delocation.id;
								thisinstance.tpoints[msgid].thelocation.lat	=	delocation.longitude;
								thisinstance.tpoints[msgid].thelocation.lng	=	delocation.latitude;
								//					thisinstance.tpoints[msgid].thelocation	=	locationid //new	Location(locationid,delocation,thisinstance.apisystem,null)

								//								thisinstance.tpoints[msgid].themessage	=	new	Message(msgid,msg_db,thisinstance.apisystem,null)
								//thisinstance.tpoints[msgid].thelocation	=	new	Location(locationid,delocation,thisinstance.apisystem,null)


								msgcacher.registerMessage(thisinstance.tpoints[msgid].themessage);
						}

						thisinstance.tpoints.sort(sortTponts);

						thisinstance.chapters	=	[];
						for(chapternr	in	chapters)
						{
								var chapter	=	chapters[chapternr];
								var chapter_id	=	chapter.chapter_id;
								var begin	=	chapter.begin;
								var end	=	chapter.end;
								var title	=	chapter.title;
								thisinstance.chapters[chapter_id]	=	[];
								thisinstance.chapters[chapter_id].begin	=	begin;
								thisinstance.chapters[chapter_id].end	=	end;
								thisinstance.chapters[chapter_id].id	=	chapter_id;

								thisinstance.chapters[chapter_id].title	=	title;//	=	[begin,end,title]
						}

						if(load_cb)
						{
								load_cb(this);
						}
				}
		}


		function	getNewTreelzSystem()
		{
				var	t	=	new	TreelzSystem();
				return	t;
		}/*class.apilang.js*/

/*
	Attempt II: :);
	

*/

function APIlanguage () 
{
	
	this.dictionary = loadAPIlanguage();

	this.Translate = function (phrase, parameters) {
		variable = this.dictionary[phrase];

		if (typeof parameters != "undefined") {
			splitResult = parameters.split(";");
			for (i = 0; i < splitResult.length; i++) {
				subsplit = splitResult[i].split("=");
				variable = variable.replace(subsplit[0], subsplit[1]);
			}
		}
		return variable;
	}




}

getTrans = new APIlanguage();/*class.scrollerv5.js*/

		/*
		Scroller functie
		Version 0.4 Beta


*/
	
function UniversalScroller (object, target, scroller, dothis, start, amount,maxamountfunction,scrollleft, scrollright, parent)
		{
				this.executefunction = dothis;
								
				this.parent = parent;
				this.ParentFunc = null;
				this.Object = object;
				this.Start = start;
				this.Amount = amount;
				this.pointer = start;
				this.Maxima = null;
				this.MaxAmountFunc = maxamountfunction;
				this.ScrollLeftButton = document.getElementById(scrollleft);
				this.ScrollLeftButton.innerHTML = '';
				this.ScrollRightButton = document.getElementById(scrollright);
				this.ScrollRightButton.innerHTML = '';
				this.TargetDiv = document.getElementById(target);
				this.TargetDiv.innerHTML = '';
				this.scrollarrow = document.getElementById(scroller);
				this.scrollarrow.innerHTML = '';
				this.pages = 0;
				this.Currentpage = 1;
	

				

				
				this.GetScrollElements = function ()
				{
							var thisinstance = this;
							thisinstance.TargetDiv.innerHTML = '<img src=\'images/indicator.gif\'>';
							this.executefunction(this.Object, this.pointer,this.Amount,function(elements, maxima)
							{
								if(maxima) thisinstance.Maxima = parseInt(maxima);
								thisinstance.TargetDiv.innerHTML = '';
								for (i in elements) {
									thisinstance.TargetDiv.appendChild(elements[i]);
								}
							}
							);
				}
		
	
				this.Scroll = function(direction) {
					
					if (direction == "LEFT") {
						//alert(this.pages);
						if (this.pages == 0) { this.ScrollRightButton.innerHTML = ""; }
						if (this.pages == 1) { this.ScrollRightButton.innerHTML = ""; }
						else if (this.pages > 1) {
							this.ScrollRightButton.innerHTML = "<a class=\"scroll_right_a_bg\"></a><a class=\"scroll_right_a\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif' width=\"17\" height=\"16\" onClick='" +  this.parent + ".Scroll(\"RIGHT\")'></a>";
						}
						
						if (this.pointer <= 0) {
							this.pointer = 0;
							this.ScrollLeftButton.innerHTML = "";
						}
						else {
							this.pointer = this.pointer - this.Amount;
							this.ScrollLeftButton.innerHTML = "<a class=\"scroll_left_a_bg\"></a><a class=\"scroll_left_a\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif' width=\"17\" height=\"16\" onClick='" +  this.parent + ".Scroll(\"LEFT\")'></a>";
							this.Currentpage--;
							thisinstance.scrollarrow.innerHTML = this.Currentpage+ " / " +this.pages;
							if (this.Currentpage == 1) {
								this.ScrollLeftButton.innerHTML = "";
							}
						}
						this.GetScrollElements();
					}
					
					else if (direction == "RIGHT") {
				
						
							this.pointer = this.pointer + this.Amount;
							this.GetScrollElements();
							this.ScrollLeftButton.innerHTML = "<a class=\"scroll_left_a_bg\"></a><a class=\"scroll_left_a\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif' width=\"17\" height=\"16\" onClick='" +  this.parent + ".Scroll(\"LEFT\")'></a>";
							this.ScrollRightButton.innerHTML = "<a class=\"scroll_right_a_bg\"></a><a class=\"scroll_right_a\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif' width=\"17\" height=\"16\" onClick='" +  this.parent + ".Scroll(\"RIGHT\")'></a>";
							this.Currentpage++;
							if (this.Currentpage == this.pages) {
								this.ScrollRightButton.innerHTML = "";
							}
							thisinstance.scrollarrow.innerHTML = this.Currentpage+ " / " +this.pages;
							
						
					}
				
				}

				this.BuildScrollbar = function (parent) {
					this.parent = parent;
					this.ScrollLeftButton.innerHTML = "<a class=\"scroll_left_a_bg\"></a><a class=\"scroll_left_a\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif' width=\"17\" height=\"16\" onClick='" +  this.parent + ".Scroll(\"LEFT\")'></a>";
					this.ScrollRightButton.innerHTML = "<a class=\"scroll_right_a_bg\"></a><a class=\"scroll_right_a\"><img src='images/knoppen-titels/empty_icons/empty_1x1.gif' width=\"17\" height=\"16\" onClick='" +  this.parent + ".Scroll(\"RIGHT\")'></a>";				
					
				}
				
				this.Init = function(parent) {
					/*this.ParentFunc = parent;
					if (this.pages == 0) {this.TargetDiv.innerHTML="<img src=\'images/indicator.gif\'>";}
					else {
						this.BuildScrollbar(parent);
						this.Scroll("LEFT");
						
					}*/
				}
				
								var thisinstance = this;
				this.MaxAmountFunc(this.Object,function(am)
				{
					thisinstance.Maxima 	= am;
					thisinstance.pages = Math.ceil(am/thisinstance.Amount);
					if (am > 0) {
						thisinstance.scrollarrow.innerHTML = "1 / " + thisinstance.pages;
						thisinstance.Scroll("LEFT");
						//alert('Treelz and tags vertikken het :(');
						
					}										
				} 				
				);
				
				

		}

/*class.treelz.js*/

function DrawTreelz() {
	
	this.Treelz = [];
	this.Colour = [];
	this.Width = [];
	this.Polylines = [];
	this.Visible = [];
	this.Centerpool = [];
	this.Undo = [];
	this.route = 0;
	
	this.AddTreel = function (treel, colour, width) {
		this.Colour[treel] = colour; //Hexcode e.g. FFC324AB
		this.Width[treel] = width; //px
		this.Treelz[treel] = [];
	}
	
	this.HideAllTreelz = function () {
		for (treelid in this.Treelz) {
			//alert (treelid);
			if (this.Polylines[treelid]) {
				this.HideTreel(treelid);
			}
		}
	}
	
	this.DestroyAllTreelz = function () {
		for (treelid in this.Treelz) {
			this.RemoveFromPool (treelid);
			this.VerwijderLijn(treelid);
			this.ClearPolyline(treelid);
		}
			//delete this.Treelz;
			//delete this.Colour;
			//delete this.Width;
			//delete this.Visible;
			//delete this.Centerpool;
			//delete this.Undo;
			this.route.clear();
			
			//Reconstruct...
			
			//this.Treelz = [];
			//this.Colour = [];
			//this.Width = [];
			//	this.Polylines = [];
			//this.Visible = [];
			//this.Centerpool = [];
			//this.Undo = [];
			//this.route = 0;
			
			//this.HideTreel(treelid);
	}

	this.AddPoint = function (treel, lat, long, id, trans, messageid, messagetitle) {
		//alert ("treel:" + treel + " id: " + id + " lat: " + lat);
		this.Treelz[treel][id] = [];
		this.Treelz[treel][id]["lat"] = lat; //lattitude
		this.Treelz[treel][id]["long"] = long;//longitude
		this.Treelz[treel][id]["trans"] = trans; //i.e. form of transportation to next point 1.straight, 2.car, 3.plane
		this.Treelz[treel][id]["messageid"] = messageid; //The id of the message
		this.Treelz[treel][id]["messagetitle"] = messagetitle; //Message title since 22/7
		
	}
	
	this.BuildTreel = function (treel) {
		
					var pts = [];
					var i = 0;
				   for (id in this.Treelz[treel]) {
               pts[i] = new GLatLng(parseFloat(this.Treelz[treel][id]["lat"]), parseFloat(this.Treelz[treel][id]["long"]));
               //alert(this.Treelz[treel][id]["messageid"]);
               i++;
            }
            this.Polylines[treel] = new GPolyline(pts,this.Colour[treel],this.Width[treel], 1);
            //alert ("Points: " + pts + ", Kleur: " + this.Colour[treel] + ", Breeeedte: " + this.Width[treel]);
			mapsystem.map.addOverlay(this.Polylines[treel]);
			//return pts;	
			this.Visible[treel] = 1;
	}
	
	this.BuildRoute = function (treel) {
		var route_div = document.getElementById("clientarea_inner_treel");
		route_div.innerHTML = "text_calculating_route";
		var ab = ""; //from: 1 to: 2 to: 3 to: etc.  
		var i = 0;
		this.route = new GDirections(mapsystem.map, document.getElementById("clientarea_inner_treel")); // map, div to build the route details --- clientarea_inner_treel

		for (id in this.Treelz[treel]) {
			   if (i == 0) {
			   	ab = "from: " + this.Treelz[treel][id]["messagetitle"] + "@" + parseFloat(this.Treelz[treel][id]["lat"]) +","+ parseFloat(this.Treelz[treel][id]["long"]) +" ";
			   }
			   else {
               	ab += "to: " + this.Treelz[treel][id]["messagetitle"] + "@" + parseFloat(this.Treelz[treel][id]["lat"]) +","+ parseFloat(this.Treelz[treel][id]["long"]) +" ";
               //alert(this.Treelz[treel][id]["trans"]);
               }
               i++;
            }
        //alert (ab);
        this.route.load (ab, {getPolyline:true});
         
	}
	
	this.redraw = function (treel) {
	    //alert ("lat long");
		//mapsystem.map.removeOverlay(this.Polylines[treel]); 
		var pts = [];
		i = 0;
		for(id in this.Treelz[treel]) {
			
			pts[i] = new GLatLng(parseFloat(this.Treelz[treel][id]["lat"]), parseFloat(this.Treelz[treel][id]["long"]));
			//alert ("pts[i] = new GLatLng(parseFloat(" + this.Treelz[treel][id]["long"] + "), parseFloat(" + this.Treelz[treel][id]["lat"] + "));");
			//alert(treel);
			i++;
		}
		this.Polylines[treel] = new GPolyline(pts,this.Colour[treel], 4, 1);
		//mapsystem.map.addOverlay(new_line);
	}
	
	this.TekenLijn = function (treel) {
		mapsystem.map.addOverlay(this.Polylines[treel]);
	}
	
	this.VerwijderLijn = function (treel) {
		mapsystem.map.removeOverlay(this.Polylines[treel]);
	}
	
	 this.ClearPolyline = function (treel) {
		delete this.Polylines[treel];
	}
	
	this.CreateUndo = function (treel) {
		this.Undo["treel"] = this.Treelz[treel];
		//alert ("undo created");
	}
	
	this.ExecUndo = function (treel) {
		this.VerwijderLijn (treel);
		delete this.Treelz[treel];
		//this.Treelz[treel] = this.Undo["treel"]
		/*/TODO:/*
		this.redraw(treel);
		this.TekenLijn(treel);
		this.BuildTreel(treel);*/
		//alert ("undo executed");
	}
	
	this.ClearUndo = function () {
		delete this.Undo;
		alert ("undo destroyed");
	}	
		
	
	this.HideTreel = function(treel) {
			this.Polylines[treel].hide();
		//mapsystem.map.addOverlay();
			this.Visible[treel] = 0;
	}
	
	this.ShowTreel = function (treel) {
		this.Polylines[treel].show()
		this.Visible[treel] = 1;
	}
	
	this.Visibility = function (treel) {
		return this.Visible[treel];
	}
	
	this.CenterTreel = function (treel) {
		//mapsystem.map.setCenter(this.Polylines[treel].getBounds().getCenter());
		mapsystem.focusOnBoundsByLocs(this.Treelz[treel]);
	}
	
	this.Pool = function (treel) {
		this.Centerpool[treel] = "INPOOL";
	}
	
	this.RemoveFromPool = function (treel) {
		delete this.Centerpool[treel];
	}
	
	this.ReturnPool = function (treel) {
		return this.Centerpool[treel];
	}
	
	this.Distance = function (treel) {
		return this.Polylines[treel].getLength();//in meters
	}
	
	this.ReturnTreel = function (treel) {
		return this.Treelz[treel];
	}
	
	this.ClearRoute = function () {
		this.route.clear();
	}
	
	this.MoveUp = function (treel, userid, treelpoint) {
		if (treelpoint != "0") {
		//alert (treelpoint)
		//alert ("Verplaats treelpoint " +treelpoint+ " uit treel " +treel+ " ŽŽn positie omhoog" )
		//alert (this.Treelz[treel][treelpoint].indexOf())
		this.Treelz["new"] = [];
		i = 0;
		for (point in this.Treelz[treel]) {
			//alert ("number " + i + " is treelpoint " + point + " with messageid " + this.Treelz[treel][point]["messageid"]);
			//this.Treelz["new"][point] = [];
			if (point == treelpoint) {
				//alert ("treelpoint is at position: " + i)
				current = i;
			}
			i++;
		}
		//alert("Current: "+current);
		i = 0;
		for (point in this.Treelz[treel]) {
			//alert ("number " + i + " is treelpoint " + point + " with messageid " + this.Treelz[treel][point]["messageid"]);
			//alert(i);
			if (i == current - 1) {
				this.Treelz["new"][treelpoint] = [];
				//alert("i - Current " + i + " - " + current);
				this.Treelz["new"][treelpoint]["lat"] = this.Treelz[treel][treelpoint]["lat"];
				this.Treelz["new"][treelpoint]["long"] = this.Treelz[treel][treelpoint]["long"];
				this.Treelz["new"][treelpoint]["trans"] = this.Treelz[treel][treelpoint]["trans"];
				this.Treelz["new"][treelpoint]["messageid"] = this.Treelz[treel][treelpoint]["messageid"];
				this.Treelz["new"][treelpoint]["messagetitle"] = this.Treelz[treel][treelpoint]["messagetitle"];
				i++;
			}
			
				this.Treelz["new"][point] = [];
				this.Treelz["new"][point]["lat"] = this.Treelz[treel][point]["lat"];
				this.Treelz["new"][point]["long"] = this.Treelz[treel][point]["long"];
				this.Treelz["new"][point]["trans"] = this.Treelz[treel][point]["trans"];
				this.Treelz["new"][point]["messageid"] = this.Treelz[treel][point]["messageid"];
				this.Treelz["new"][point]["messagetitle"] = this.Treelz[treel][point]["messagetitle"];
				i++;
			
		}
		
		this.VerwijderLijn (treel);
		delete this.Treelz[treel];
		this.AddTreel(treel, "#FF0000",4);
		
		for (point in this.Treelz["new"]) {
			this.AddPoint(treel, this.Treelz["new"][point]["lat"], this.Treelz["new"][point]["long"], point, this.Treelz["new"][point]["trans"],this.Treelz["new"][point]["messageid"], this.Treelz["new"][point]["messagetitle"]);
		}
		try {
			tr.redraw(treel);
		}
		
		catch (e) {
			alert ("tr.redraw(treel);");
		}
		
		try {
			tr.TekenLijn(treel);
		}
		catch (e) {

			alert ("tr.TekenLijn(treel);");
		}
		//this.Treelz[treel] = this.Treelz["new"];
		order_messages_treel(treel, userid)
		//tr.redraw(treel);
		} else {
			//show_treelz_alert(content, content2)
			//alert ("Treelitem not selected");
		}
	}
	
		this.MoveDown = function (treel, userid, treelpoint) {
		if (treelpoint != "0") {
		//alert ("Verplaats treelpoint " +treelpoint+ " uit treel " +treel+ " ŽŽn positie omhoog" )
		//alert (this.Treelz[treel][treelpoint].indexOf())
		this.Treelz["new"] = [];
		i = 0;
		for (point in this.Treelz[treel]) {
			//alert ("number " + i + " is treelpoint " + point + " with messageid " + this.Treelz[treel][point]["messageid"]);
			//this.Treelz["new"][point] = [];
			if (point == treelpoint) {
				//alert ("treelpoint is at position: " + i)
				current = i;
			}
			i++;
		}
		//alert("Current: "+current);
		max = i - 1;
		//alert ("Max: -1 "+max)
		i = 0;
		nextround = "no";
		now = "no";
		for (point in this.Treelz[treel]) {
			//alert ("number " + i + " is treelpoint " + point + " with messageid " + this.Treelz[treel][point]["messageid"]);
			//alert(i);
				
			if (i == current) {
				if (current == max) {
					//Als ie al de laatste is.. moet ie gewoon komen :)
					this.Treelz["new"][point] = [];
					this.Treelz["new"][point]["lat"] = this.Treelz[treel][point]["lat"];
					this.Treelz["new"][point]["long"] = this.Treelz[treel][point]["long"];
					this.Treelz["new"][point]["trans"] = this.Treelz[treel][point]["trans"];
					this.Treelz["new"][point]["messageid"] = this.Treelz[treel][point]["messageid"];
					this.Treelz["new"][point]["messagetitle"] = this.Treelz[treel][point]["messagetitle"];
					i++;
				}
				
				else {
					//this.Treelz["new"][treelpoint] = [];
					//alert("i - Current " + i + " - " + current);
					nextround = "si";
					//alert(nextround);
					i++;
				}
			}
			
			else {
				this.Treelz["new"][point] = [];
				this.Treelz["new"][point]["lat"] = this.Treelz[treel][point]["lat"];
				this.Treelz["new"][point]["long"] = this.Treelz[treel][point]["long"];
				this.Treelz["new"][point]["trans"] = this.Treelz[treel][point]["trans"];
				this.Treelz["new"][point]["messageid"] = this.Treelz[treel][point]["messageid"];
				this.Treelz["new"][point]["messagetitle"] = this.Treelz[treel][point]["messagetitle"];
				i++;
			}
			
			if (now == "si") {
				this.Treelz["new"][treelpoint] = [];
				this.Treelz["new"][treelpoint]["lat"] = this.Treelz[treel][treelpoint]["lat"];
				this.Treelz["new"][treelpoint]["long"] = this.Treelz[treel][treelpoint]["long"];
				this.Treelz["new"][treelpoint]["trans"] = this.Treelz[treel][treelpoint]["trans"];
				this.Treelz["new"][treelpoint]["messageid"] = this.Treelz[treel][treelpoint]["messageid"];
				this.Treelz["new"][treelpoint]["messagetitle"] = this.Treelz[treel][treelpoint]["messagetitle"];
				//i++;
				now = "no";

			}
			
			if (nextround == "si") {
				now = "si";
				nextround = "no";
			}

			
			
		}
		
		this.VerwijderLijn (treel);
		delete this.Treelz[treel];
		this.AddTreel(treel, "#FF0000",4);
		
		for (point in this.Treelz["new"]) {
			//alert("this.AddPoint("+treel+", "+this.Treelz["new"][point]["lat"]+", "+this.Treelz["new"][point]["long"]+", "+point+", "+this.Treelz["new"][point]["trans"]+","+this.Treelz["new"][point]["messageid"]+");");
			this.AddPoint(treel, this.Treelz["new"][point]["lat"], this.Treelz["new"][point]["long"], point, this.Treelz["new"][point]["trans"],this.Treelz["new"][point]["messageid"], this.Treelz["new"][point]["messagetitle"]);
		}
		tr.redraw(treel);
		tr.TekenLijn(treel);
		//this.Treelz[treel] = this.Treelz["new"];
		order_messages_treel(treel, userid)
		//tr.redraw(treel);
		}
		else {
			//show_treelz_alert(content, content2)
			//alert ("Treelitem not selected");	
		}
	}
	
	this.StoreOrder = function (treel, userid) {
		
		
		//alert ("Opslaan volgorder treel: " + treel)
		orderlist = [];
		i = 0;
		for (point in this.Treelz[treel]) {
		 orderlist[i] = point;
		 //alert ("UPDATE trail_point SET torder = " + i + " WHERE tpoint_id = " + point + ";");
		 i++
		}
		mapsystem.StoreOrderTreel(orderlist, function (result){
			
//			alert (result);


	
		});
///*   
		//show_messages_treel(treel, userid);
	
				this.VerwijderLijn (treel);
		delete this.Treelz[treel];
		this.AddTreel(treel, "#00FF00",4);
		
		for (point in this.Treelz["new"]) {
			//alert("this.AddPoint("+treel+", "+this.Treelz["new"][point]["lat"]+", "+this.Treelz["new"][point]["long"]+", "+point+", "+this.Treelz["new"][point]["trans"]+","+this.Treelz["new"][point]["messageid"]+");");
			this.AddPoint(treel, this.Treelz["new"][point]["lat"], this.Treelz["new"][point]["long"], point, this.Treelz["new"][point]["trans"],this.Treelz["new"][point]["messageid"]);
		}
		//alert ("redraw");
		tr.redraw(treel);
		tr.TekenLijn(treel);
		//this.Treelz[treel] = this.Treelz["new"];
		order_messages_treel(treel, userid)
		//tr.redraw(treel);

			
	}
	
	
}	/*classes.newfiltersys.js*/

		//	======================================================
		//		Groups
		//	======================================================

		function	Groups(apisystem)
		{
				this.apisystem	=	apisystem
				this.groups	=	[]

				this.touched	=	[]	//	grp_id	->	epoch	last	touch
				this.threshold	=	60	*	1000	*	60	*	3	//	3	min
				
				//this.temp_cache = []
				this.__scheduleCleanCache()
		}

		Groups.prototype.__cleanCache=function()
		{
				var now = (new	Date()).getTime()
				for(i	in	this.touched)
				{
						if(this.touched[i] && this.groups[i])
						{
								var x = this.touched[i]	+	this.threshold
								if(x	<	now)
								{
										this.threshold[i] = null
										this.groups[i] = null
								}
						}
				}
				this.threshold =removeNullsFromArray(this.threshold)
				this.groups=				removeNullsFromArray(this.groups)

				this.__scheduleCleanCache()
		}

		Groups.prototype.__scheduleCleanCache=function()
		{
				//	direct	(60 sec)	na	run	nog	een	keer	om	te	kijken	of	er	nog	ergens	shit	zit	in	de	queueu
				var	callwrapper	=	new	CCallWrapper(this,	1000*60,	'__cleanCache');
				CCallWrapper.asyncExecute(callwrapper);
				//document.getElementById("search").value="cleaned cached groups"
		}

		Groups.prototype.__touched=function(id)
		{
				this.touched[id]	=	(new	Date()).getTime();
		}

		Groups.prototype.__getTypeGroupsOfUser=function(usr_id,type, callback,extraoptions)
		{
				var	thisinstance	=	this
				var	options	=	[]
				options["user_id"]	=usr_id
				options["type"]	=type
				this.apisystem.command("GROUP.INFO.GROUPS_OF_USER_OF_TYPE",options,	function	(jsonData)
				{
						var	grps	=	jsonData.groups;
						var	groepen	=	[]


						for(nr	in	grps)
						{
								group	=	grps[nr]
						var	extraoptions	=	{}
								extraoptions.load_db	=	group

								groepen[group.id]	=	thisinstance.getGroup(group.id,null,extraoptions)
						}

						if(callback)
						{
								callback(groepen)
						}
				}
				);

		}

		Groups.prototype.searchGroupByString	=	function(string,	callback,extraoptions)
		{
				var	thisinstance	=	this;
				var options	=	[];
				options["string"]	=	string;
				if(extraoptions && extraoptions.start) options["start"]	=	extraoptions.start;
				if(extraoptions && extraoptions.aantal) options["aantal"]	=	extraoptions.aantal;

				
				this.apisystem.command("GROUP.SEARCH.KEYWORD",options,	function	(jsonData)
				{
						var	resultinggroups	=	[];
						var grps	=	jsonData.groups;
						var aantal = jsonData.aantal;
				var extraoptions = {};
						for(nr	in	grps)
						{
								var grp	=	grps[nr];
								extraoptions.load_db = grp
								resultinggroups[nr]	=	thisinstance.getGroup(grp.id,null,extraoptions);
						}
						//debug(resultinggroups)
						callback(resultinggroups,aantal);
				}
				);
		}

		Groups.prototype.getPrivateGroupOfUser=function(usr_id,	callback,extraoptions)
		{
				this.__getTypeGroupsOfUser(usr_id,3, function(grps)
				{
						for(i in grps)
						{
								callback(grps[i]);
								return
						}
						callback(false);
				},extraoptions)
		}
		Groups.prototype.getPublicGroupOfUser=function(usr_id,	callback,extraoptions)
		{
				this.__getTypeGroupsOfUser(usr_id,4, function(grps)
				{
						for(i in grps)
						{
								callback(grps[i]);
								return
						}
						callback(false);
				},extraoptions)
		}
		Groups.prototype.getFriendsGroupOfUser=function(usr_id,	callback,extraoptions)
		{
				this.__getTypeGroupsOfUser(usr_id,2, function(grps)
				{
						for(i in grps)
						{
								callback(grps[i]);
								return
						}
						callback(false);
				},extraoptions)
		}
		Groups.prototype.getOwnerGroupsOfUser=function(usr_id,	callback,extraoptions)
		{
				this.__getTypeGroupsOfUser(usr_id,0,callback,extraoptions)
		}


		// gets groups where user is member of
		Groups.prototype.getGroupUsersMemberOf=function(usr_id,	ecallback,extraoptions)
		{		
				var	thisinstance	=	this
				var	options	=	{}
				options["user_id"]	=usr_id
				if(extraoptions && extraoptions.type) options['type']= extraoptions.type;
				if(extraoptions && extraoptions.start && extraoptions.amount )
				{
						options['start']= extraoptions.start;
						options['amount']= extraoptions.amount;
				}
 								
				this.apisystem.command("GROUP.INFO.USER_IS_MEMBER",options,	function(jsonData)
				{
						var	grps	=	jsonData.groups;
						var	groepen	=	[]

						usrs	=	jsonData.users

						for(nr	in	grps)
						{
								group	=	grps[nr]
						    var	extraoptions	=	{}
								extraoptions.load_db	=	group
								groepen[group.id]	=	thisinstance.getGroup(group.id,null,extraoptions)
						}

						
						///thisinstance.temp_cache[usr_id][opts] = groepen
						
						if(ecallback)
						{
								ecallback(groepen,jsonData.amount)
						}
				}
				);
		}

		// gets groups where user is member of
		Groups.prototype.getGroupUsersCanAdd=function(usr_id,	callback,extraoptions)
		{
				var	thisinstance	=	this
				var	options	=	[]
				options["user_id"]	=usr_id
				options["memberof"] = 1
				if(extraoptions && extraoptions.memberof) options["memberof"] =  extraoptions.memberof

				this.apisystem.command("GROUP.INFO.USER_CAN_ADD",options,	function	(jsonData)
				{
						var	grps	=	jsonData.groups;
						var	groepen	=	[]

						usrs	=	jsonData.users

						for(nr	in	grps)
						{
								group	=	grps[nr]
						var	extraoptions	=	{}
								extraoptions.load_db	=	group
								groepen[group.id]	=	thisinstance.getGroup(group.id,null,extraoptions)
						}

						if(callback)
						{
								callback(groepen)
						}
				});
		}

		Groups.prototype.getSimilarOfGroupByMembers=function(group_id,	callback,extraoptions)
		{
				var	thisinstance	=	this
				var	options	=	[]
				options["group_id"]	=group_id


				if(extraoptions)
				{
						if(extraoptions.start) options["start"] =  extraoptions.start;
						if(extraoptions.amount) options["aantal"] =  extraoptions.amount;
						if(extraoptions.type) options["type"] =  extraoptions.type	;
				}

				this.apisystem.command("GROUP.SEARCH.SIMILAR.BYMEMBERS",options,	function	(jsonData)
				{
						var	grps	=	jsonData.groups;
						var	groepen	=	[]

						usrs	=	jsonData.users

						for(nr	in	grps)
						{
								group	=	grps[nr]
						var	extraoptions	=	{}
								extraoptions.load_db	=	group
								groepen[group.id]	=	thisinstance.getGroup(group.id,null,extraoptions)
								groepen[group.id].rel_sim = group.rel_sim
								groepen[group.id].similarity = group.similarity
						}

						if(callback)
						{
								callback(groepen)
						}
				});
		}

		Groups.prototype.getLatestGroups=function(number,	callback,extraoptions)
		{
				var	thisinstance	=	this
				var	options	=	[]
				options["number"]	=number


				if(extraoptions)
				{
						/*
						if(extraoptions.start) options["start"] =  extraoptions.start;
						if(extraoptions.amount) options["aantal"] =  extraoptions.amount;
						if(extraoptions.type) options["type"] =  extraoptions.type	;
						*/
				}

				this.apisystem.command("GROUP.SEARCH.LATEST",options,	function	(jsonData)
				{
				/*
						var	grps	=	jsonData.groups;
						var	groepen	=	[]

						usrs	=	jsonData.users

						for(nr	in	grps)
						{
								group	=	grps[nr]
						var	extraoptions	=	{}
								extraoptions.load_db	=	group
								groepen[group.id]	=	thisinstance.getGroup(group.id,null,extraoptions)
								groepen[group.id].rel_sim = group.rel_sim
								groepen[group.id].similarity = group.similarity
						}

						if(callback)
						{
								callback(groepen)
						}*/
				});
		}

		
		Groups.prototype.getSimilarOfGroupByMessages=function(group_id,	callback,extraoptions)
		{
				var	thisinstance	=	this
				var	options	=	[]
				options["group_id"]	=group_id


				if(extraoptions)
				{
						if(extraoptions.start) options["start"] =  extraoptions.start;
						if(extraoptions.amount) options["aantal"] =  extraoptions.amount;
						if(extraoptions.type) options["type"] =  extraoptions.type	;
				}

				this.apisystem.command("GROUP.SEARCH.SIMILAR.BYMSGS",options,	function	(jsonData)
				{
						var	grps	=	jsonData.groups;
						var	groepen	=	[]

						usrs	=	jsonData.users

						for(nr	in	grps)
						{
								group	=	grps[nr]
						var	extraoptions	=	{}
								extraoptions.load_db	=	group
								groepen[group.id]	=	thisinstance.getGroup(group.id,null,extraoptions)
								groepen[group.id].rel_sim = group.rel_sim
								groepen[group.id].similarity = group.similarity
						}

						if(callback)
						{
								callback(groepen)
						}
				});
		}
		Groups.prototype.createGroup=function(name,desc,levels,	callback,extraoptions)
		{
				var	thisinstance	=	this;

				var	options	=	[];

				options["name"]	=	name;
				options["description"]	=	desc;
				if(levels)
				{
						if(levels.add) options["level_add"]	=	levels.add;
						if(levels.show) options["level_show"]	=	levels.show;
						if(levels.invite) options["level_invite"]	=	levels.invite;
						if(levels.editinfo) options["level_editinfo"]	=	levels.editinfo;
						if(levels.editmsgs) options["level_editmsgs"]	=	levels.editmsgs;
				}

				if(extraoptions && extraoptions.title) options['title']= extraoptions.title;

				this.apisystem.command("GROUP.CREATE.GROUP",options,	function	(jsonData)
				{
				    var extopts = {}
						extopts.load_db = jsonData.group
						thisinstance.getGroup(jsonData.group.id,callback,extopts)
				});
		}
		
		

		Groups.prototype.getGroup=function(id,	callback,extraoptions)
		{
				var	load_db	=	true
				if(extraoptions	&&	extraoptions.load_db)	load_db	=	extraoptions.load_db
				var	reset	=	false
				if(extraoptions	&&	extraoptions.reset)	reset	=	extraoptions.reset

				if(this.groups[id]	&&	reset	!=	true && this.groups[id].loaded == true)
				{
						if(callback)	callback(	this.groups[id])
						var x = 	this.groups[id]
				}
				else
				{
						var	thisinstance	=	this
						var x = new	Group(id,load_db,this.apisystem,function(thegroup)
						{
								thisinstance.groups[id]	=	thegroup
								if(callback)	callback(thegroup)
						}
						);
				}

				this.__touched(id)
				return x
		}


		Groups.prototype.getMultiple=function(ids,callback)
		{
				if(ids.length == 0)
				{
						callback([]);
						return
				}
				var str = ''
				var antwoord=[];
				for(i in ids)
				{
						var theid = ids[i];
						if(this.groups[theid])
						{
								antwoord[theid] = this.groups[theid];
						}
						else
						{
								str = str + theid + ',';

						}
				}
				if(str == '')
				{
						callback(antwoord);
						return;
				}

				var thisinstance = this
				var options = [];
				options['group_ids'] = str;
				this.apisystem.command("GROUP.INFO.MULTIPLE",	options,	function(jsonData)
				{
						for(groupnr	in	jsonData.groups)
						{
								var grp=jsonData.groups[groupnr];
								if(grp)
								{
										var theid	=	grp.id;
										var extraoptions = []
										extraoptions.load_db = grp
										var thegrp = thisinstance.getGroup(theid,null,extraoptions)
										antwoord[theid] = thegrp
								}
						}

						callback(antwoord);
				}
				);
		}

		//	======================================================
		//		Group
		//	======================================================
		function	Group(id,load,apisystem,load_callback,extraoptions)
		{
				this.apisystem	=	apisystem

				this.id	=	id
				this.number_of_members	=	null
				this.type	=	null
				this.description	=	null
				this.name	=	null
				
				this.loaded = false
				/*
				level_add
				level_invite
				level_show
				level_editinfo
				level_editmsgs
				*/
				if(load	==	true)
				{
						this.__load(true,load_callback)
				}
				else	if(load	==	false)
				{

				}
				else
				{
						this.__load(load,load_callback)
				}
		}

		Group.prototype.getGeneralLevel=function(callback,extraoptions)
		{
				//'open','closed','private'costum'
				if(this.level_editinfo	== 2	&& this.level_editmsgs	== 2)
				{
						if(this.level_add ==  4 && this.level_show == 4 && this.level_invite	==	3)
						{
								//open
								callback('open');
								return;
						}
						else if(this.level_add == 3 && this.level_show == 3 && this.level_invite	== 3 )
						{
								// private
								callback('private');
								return
						}
						else if(this.level_add == 2 && this.level_show == 3&& this.level_invite	== 2 )
						{
								// closed
								callback('closed');
								return;
						}
				}
				// costum
				callback('costum');
		}



		Group.prototype.setTitle=function(title,callback,extraoptions)
		{
				this.title = title
				var	thisinstance	=	this;
				var	options	=	[]
				options["group_id"]	=	this.id
				options["title"] = title
				this.apisystem.command("GROUP.CHANGE.TITLE",options,	function	(jsonData)
				{
						var	grp	=	jsonData.group;
						thisinstance.__load(grp,callback)
				});
		}

		Group.prototype.setDescription=function(desc,callback,extraoptions)
		{
				this.description = desc
				var	thisinstance	=	this;
				var	options	=	[]
				options["group_id"]	=	this.id
				options["description"] = desc
				this.apisystem.command("GROUP.CHANGE.DESCRIPTION",options,	function	(jsonData)
				{
						var	grp	=	jsonData.group;
						thisinstance.__load(grp,callback)
				});

		}

		Group.prototype.updateLevels=function(levels,callback,extraoptions)
		{
		
		}
		
		Group.prototype.setLevel_Show=function(level,callback,extraoptions)
		{
				this.level_show = level
				this.__setLevel("show",level,callback,extraoptions)
		}
		Group.prototype.setLevel_Invite=function(level,callback,extraoptions)
		{
				this.level_invite = level
				this.__setLevel("invite",level,callback,extraoptions)
		}
		Group.prototype.setLevel_Add=function(level,callback,extraoptions)
		{
				this.level_add = level
				this.__setLevel("add",level,callback,extraoptions)
		}
		Group.prototype.setLevel_EditInfo=function(level,callback,extraoptions)
		{
				this.level_editinfo= level
				this.__setLevel("editinfo",level,callback,extraoptions)
		}
		Group.prototype.setLevel_EditMsgs=function(level,callback,extraoptions)
		{
				this.level_editmsgs = level
				this.__setLevel("editmsgs",level,callback,extraoptions)
		}
		Group.prototype.__setLevel=function(leveltype,level,callback,extraoptions)
		{
				//this.description = desc
				var	thisinstance	=	this;
				var	options	=	[]

				options["group_id"]	=	this.id
				options["level_type"] = leveltype
				options["level"] = level
				this.apisystem.command("GROUP.CHANGE.GROUP_LEVEL",options,	function	(jsonData)
				{
						var	grp	=	jsonData.group;
						thisinstance.__load(grp,callback)
				});
		}

		Group.prototype.requestAccess=function(callback,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[]

				options["group_id"]	=	this.id
				options["message"] = ''
				if(extraoptions && extraoptions.message)options["message"] = extraoptions.message;

				this.apisystem.command("GROUP.INVITE.REQUEST_ACCESS",options,	function	(jsonData)
				{
						if(callback) callback(jsonData.response);
				});
		}

		Group.prototype.inviteUser=function(userid,callback,extraoptions)
		{
				var	options	=	[]
				options["group_id"]	=	this.id
				options["userid"]	=	userid
				options["message"] = '';
				if(extraoptions && extraoptions.message)options["message"] = extraoptions.message;

				this.apisystem.command("GROUP.INVITE.INVITE_MEMBER",options,	function	(jsonData)
				{
						if(callback) callback(jsonData.response);
				});
		}

		Group.prototype.inviteEmails=function(emails,callback,extraoptions)
		{
				var	options	=	[]
				options["group_id"]	=	this.id
				options["email"]	=	emails
				options["message"] = '';
				if(extraoptions && extraoptions.message)options["message"] = extraoptions.message;

				this.apisystem.command("GROUP.INVITE.INVITE_EMAILS",options,	function	(jsonData)
				{
						callback(jsonData.response);
				});
		}

		Group.prototype.addTags=function(tags,callback,extraoptions)
		{
				var	options	=	[]
				options["group_id"]	=	this.id
				options["tags"]	=	tags

				this.apisystem.command("GROUP.CHANGE.ADD_TAGSS",options,	function	(jsonData)
				{
						callback(jsonData.tags);
				});
		}

		Group.prototype.grantAccess=function(userid,callback,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[]

				options["group_id"]	=	this.id
				options["userid"] = userid

				this.apisystem.command("GROUP.INVITE.ACCEPT_ACCESS",options,	function	(jsonData)
				{
						callback(jsonData.response);
				});
		}
		
		Group.prototype.denyInvite=function(callback,extraoptions)
		{
		
		var	thisinstance	=	this;
				var	options	=	[]

				options["group_id"]	=	this.id
				if(extraoptions && extraoptions.inviter_id) options["inviter_id"]	=	extraoptions.inviter_id

				this.apisystem.command("GROUP.INVITE.DENY_INVITE",options,	function	(jsonData)
				{
						callback(jsonData.response);
				});
		}
		Group.prototype.denyAccess=function(userid,callback,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[]

				options["group_id"]	=	this.id
				options["userid"] = userid

				this.apisystem.command("GROUP.INVITE.DENY_ACCESS",options,	function	(jsonData)
				{
						callback(jsonData.response);
				});
		}



		Group.prototype.setUserLevel=function(userid,level,callback,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[]

				options["group_id"]	=	this.id
				options["userid"] = userid
				options['new_level']=level
//'group_id','userid','new_level'
				this.apisystem.command("GROUP.CHANGE.CHANGE_MEMBER_LEVEL",options,	function	(jsonData)
				{
						callback(jsonData.response);
				});
		}
		
		Group.prototype.removeUser=function(userid,callback,extraoptions)
		{
				alert("TODO remove user (could be self or higher level");
		}


		Group.prototype.addMessage=function(msgid,callback,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[]

				options["group_id"]	=	this.id
				options["message_id"] = msgid

				this.apisystem.command("GROUP.CHANGE.ADD_MESSAGE",options,	function	(jsonData)
				{
						callback(jsonData.response);
				});

		}
		
		Group.prototype.removeMessage=function(msgid,callback,extraoptions)
		{
				var	thisinstance	=	this;
				var	options	=	[]

				options["group_id"]	=	this.id
				options["message_id"] = msgid
     //  debug('xx');
				this.apisystem.command("GROUP.CHANGE.REMOVE_MESSAGE",options,	function	(jsonData)
				{
						callback(jsonData.response);
				});

		}
		
		

		// 
		Group.prototype.getMembersIds=function(callback,extraoptions)
		{

				var	thisinstance	=	this;

				var	options	=	[]

				if(extraoptions && extraoptions.start && extraoptions.amount)
				{
						options["start"]	=	 extraoptions.start
						options["amount"]	=	 extraoptions.amount
				}
				options["group_id"]	=	this.id
				this.apisystem.command("GROUP.INFO.GROUPMEMBERS",options,	function	(jsonData)
				{
						var	ids	=	[]
						for(i in jsonData.member_ids)
						{
								var id = jsonData.member_ids[i]
								ids[id] = id
						}
						var aantal = jsonData.total
						callback(ids,aantal)

				});

		}

		Group.prototype.getUserIsMember=function(userid,callback)
		{
		
		var	options	=	[]
				options["group_id"]	=	this.id
				options["user_id"]= userid

				this.apisystem.command("GROUP.INFO.USER_IS_MEMBER_OF_GROUP",options,	function	(jsonData)
				{
  				if(jsonData.member == 1)
  				{
  				callback(true);
  				}
  				else
  				{
  				callback(false);
  				}
				}
				);
		}
		
		Group.prototype.getAmountMessages=function(callback,extraoptions)
		{

				var	thisinstance	=	this;

				var	options	=	[]
				options["group_id"]	=	this.id
				if(extraoptions && extraoptions.type) options["type"] = extraoptions.type;

				this.apisystem.command("GROUP.INFO.NUMMESSAGES",options,	function	(jsonData)
				{
						var maxamount = jsonData.amount
						callback(	maxamount);
				});
		}
		
		
				Group.prototype.isUserModerator=function(userid,callback,extraoptions)
		{

				var	thisinstance	=	this;

				var	options	=	[]
				options["group_id"]	=	this.id
				options["user_id"]	=	userid
				
				
				this.apisystem.command("GROUP.INFO.ISUSERMODERATOR",options,	function	(jsonData)
				{
						var ja = jsonData.moderator
						callback(	ja);
				});
		}
		
		

		Group.prototype.getMessagesBetween=function(start,aantal,callback,extraoptions)
		{
				var	thisinstance	=	this;

				var	options	=	[]
				options["group_id"]	=	this.id
				options["start"] = '' + start
				options["amount"] = aantal
				if(extraoptions && extraoptions.type) options["type"] = extraoptions.type;

				this.apisystem.command("GROUP.INFO.MESSAGES",options,	function	(jsonData)
				{
						var	msgs	=	jsonData.messages;
						var maxamount = jsonData.amount
						var msgcacher = getMessageCacher();
						var oplossing = []
						for(i in msgs)
						{
								var message = msgs[i]

								var themessageobj =	new	Message(message.id,message,thisinstance.apisystem,null);
								msgcacher.registerMessage(themessageobj);
								oplossing[message.id]= themessageobj

						}
						callback(	oplossing		, maxamount);
				});
		}

		Group.prototype.__load=function(fromdb,load_callback)
		{
				var	thisinstance	=	this;
				if	(fromdb	==	true		||	fromdb	==	null)
				{
						var	options	=	[]
						options["group_id"]	=	this.id
						this.apisystem.command("GROUP.INFO.GROUPINFO",options,	function	(jsonData)
						{
								var	grp	=	jsonData.group;
								thisinstance.__load(grp,load_callback)
								/*if(load_callback)
								{
								load_callback(thisinstance)
								}*/
						});
				}
				else
				{
						//thisinstance.tag	=	fromdb.tag
						this.number_of_members	=	fromdb.num_mem
						this.type	=	fromdb.type
						this.description	=	fromdb.description
						this.name	=	fromdb.name
						this.title	=	fromdb.title
						this.start_date	=	fromdb.start_date
						this.picture_id	=	fromdb.picture_id

						this.starter = fromdb.starter
						this.level_add=	fromdb.level_add
						this.level_show=	fromdb.level_show
						this.level_invite	=	fromdb.level_invite
						this.level_editinfo	=	fromdb.level_editinfo
						this.level_editmsgs	=	fromdb.level_editmsgs
						
						this.loaded = true
						
						if(load_callback)
						{
								load_callback(this)
						}
				}
		}
		
		Group.prototype.StorePrefs = function (preferences, my_func) {
			var thisinstance = this;
			var options = preferences;
			options["group_id"] = this.id;
			this.apisystem.command("GROUP.PREFS.UPDATE",options,	function	(jsonData) {
				my_func(jsonData);
			});	
		}
		
		Group.prototype.GetPrefs = function (my_func) {
			var thisinstance = this;
			var options = [];
			options["group_id"] = this.id;
			
			this.apisystem.command("GROUP.PREFS.GET",options,	function	(jsonData) {
				my_func(jsonData);
			});	
		}



		//	================	Global	Filters	======================
		//	contains	general	filters	for	the	map	being
		//	  -groups
		//			-language
		//			-categories
		//	======================================================
		function	GlobalFilter(extraoptions)
		{
				//	list	of	object	on	which	to	call	a	.update	function
				//this.updateList	=	[]
				this.group_filters	=	[]
				this.lang_filters	=	[]
				this.cat_filters	=	[]



				this.cat_filters_old_subs = []

				this.__changed_grp_filters_cb=[]


				this.max	=	100

				this.map_points_manager	=	null
				this.mapsystem	=	null
				this.locations	=	null

				if(extraoptions)
				{
						if(extraoptions.locations)	this.locations	=extraoptions.locations
						if(extraoptions.mapsystem)	this.mapsystem	=extraoptions.mapsystem

				}

				this.changeviewqueue = [];
				this.fobjects	=	[]	;//	locid	->


				this.cb_more_locs_possible = []



				//this.group_filters[1]=true;

		}


		GlobalFilter.prototype.__filters_narrowed	=	function(extraoptions)
		{
				this.__filters_extended(false,extraoptions)
				// todo temporay total re-evaluation...
		}

		GlobalFilter.prototype.recheckFilter	=	function(extraoptions)
		{
				/*debug('going into grpfilters recheck' + this.group_filters.length);
				for(i in this.group_filters)
				{
				debug(i + ' x ' + this.group_filters[i])
				}
				sfs();*/
				this.__filters_extended(false,extraoptions)
		}


		GlobalFilter.prototype.removedFobject	=	function(loc_id)
		{
				if(this.fobjects[loc_id])
				{
						this.fobjects[loc_id] =null
						// TODO reorder list
						this.__reorder_pointobjects()
				}
		}

		GlobalFilter.prototype.__reorder_pointobjects	=	function()
		{
				var old = this.fobjects
				this.fobjects = []
				for(i in old)
				{
						if(old[i]) this.fobjects[i] = old[i]
				}
		}



		GlobalFilter.prototype.__filters_extended_run	=	function(extraoptions)
		{
				var	thisinstance	=	this;
				var	currentsize	=	this.changeviewqueue.length;

				//	now	just	get	locations	based	on	filter	(may	be	all)
				var	borders	=	this.mapsystem.getMapBordersString()
				var	options	=	this.__create_db_filter_extraoptions()

				this.locations.getLocationsInRangeByFilter(borders,this.max,function(locs,maxlocs)
				{
						//	for	all	in	current	list	locs:
						for(locid	in	thisinstance.fobjects)
						{
								//	if	not	in	new	list:	de-activate	fobject
								if(locid	in	locs)
								{
								}
								else
								{
										//	not	in	new	list	of	locs
										//	de-activate	fobject
										thisinstance.fobjects[locid].remove()
										//
										thisinstance.removedFobject(locid)
										//	TODO: think about compare screen bounds to loc instead of this filter way
										//document.getElementById("search").value="jahoor"
								}
						}

						//	for	all	in	new	list
						for(i	in	locs)
						{
								var	loc	=	locs[i]
								var	c_fobject	=	null
								//	if	in	cuurent,	get
								if(thisinstance.fobjects[loc.id])
								{
										//
										c_fobject	=	thisinstance.fobjects[loc.id]
										//	TODO:	anything	else?	don't	think	so.	keep	it	ready
								}
								else
								{
										//	not	in	current,	create
										thisinstance.map_points_manager.getAndCreatePointObject(loc.id,function(pointobject)
										{
										var	extraoptions	=	{}
												extraoptions.globalfilter=thisinstance
												var	c_fobject	=	new	FiltererObject_Groups(loc.id,extraoptions)
												pointobject.addFilterObject(c_fobject)
												thisinstance.fobjects[loc.id]=c_fobject
										}
										);
								}
						}

						// notify nr locs than on screen
						for(i in thisinstance.cb_more_locs_possible)
						{
								showing = thisinstance.max
								if(thisinstance.max > maxlocs) showing = maxlocs
								thisinstance.cb_more_locs_possible[i](maxlocs,showing)
						}

						//	nou	check	wether	more	requests	were	added:
						if(currentsize	==	thisinstance.changeviewqueue.length)
						{
								thisinstance.changeviewqueue.length	=	0	;//	empty	on	run
								thisinstance.changeviewqueue	=	[];	//	empty	on	run
						}
						//	direct	(500msec)	na	run	nog	een	keer	om	te	kijken	of	er	nog	ergens	shit	zit	in	de	queueu
						var	callwrapper	=	new	CCallWrapper(thisinstance,	500,	'__filters_extended',	'true');
						CCallWrapper.asyncExecute(callwrapper);
				}
				,options)
		}

		GlobalFilter.prototype.__filters_extended	=	function(secondshot,extraoptions)
		{
				if(secondshot	==	true	||	secondshot	==	'true'	)
				{
						// second shot
						if(this.changeviewqueue.length	>	0)
						{
								this.__filters_extended_run();
						}
				}
				else
				{
						// first shot (not back)
						if(this.changeviewqueue.length	==	0)
						{
								//	queue	this	one and it is not already running (bacause empty), so run
								this.changeviewqueue[this.changeviewqueue.length]	=	this.changeviewqueue.length;
								this.__filters_extended_run();
						}
						else
						{
								//	some one already running so just queue
								this.changeviewqueue[this.changeviewqueue.length]	=	this.changeviewqueue.length;
						}
				}


		}


		GlobalFilter.prototype.registerCallbackMoreLocsOnScreen	=	function(callback)
		{
				this.cb_more_locs_possible[this.cb_more_locs_possible.length] = callback
		}

		GlobalFilter.prototype.__create_db_filter_extraoptions	=	function()
		{
		var	extraoptions	=	{}
				if(this.group_filters.length	>	0)
				{
						extraoptions.groups	=	[]
						for(gr	in	this.group_filters)
						{
								if(this.group_filters[gr]	==	true)
								{
										extraoptions.groups[gr]	=gr
								}
						}
				}

				if(this.cat_filters.length	>	0)
				{
						extraoptions.cats	=	[]
						for(ct	in	this.cat_filters)
						{
								if(this.cat_filters[ct]	==	true)
								{
										extraoptions.cats[ct]	=ct
								}
						}
				}

				if(this.lang_filters.length	>	0)
				{
						extraoptions.langs	=	[]
						for(lg	in	this.lang_filters)
						{
								if(this.lang_filters[lg]	==	true)
								{
										extraoptions.langs[lg]	=lg
								}
						}
				}

				return	extraoptions
		}


		GlobalFilter.prototype.getLanguageFilters	=	function()
		{
				return	this.lang_filters
		}

		GlobalFilter.prototype.getLanguageFilter	=	function(key)
		{
				if(this.lang_filters[key] == true)
				{
						return true;
				}
				return false;

		}

		GlobalFilter.prototype.setLanguageFilter	=	function(key,value,donotupdate)
		{
				this.lang_filters[key]	=	value
				if(value == false) this.lang_filters = removeNullsFromArray(this.lang_filters)
				if(donotupdate != true)
				{
						if(value == false) this.__filters_narrowed()
						else	this.__filters_extended()
				}
		}

		GlobalFilter.prototype.clearAllLanguageFilter	=	function(donotupdate)
		{
				this.lang_filters	=	[]
				if(donotupdate != true) this.__filters_extended()
		}

		GlobalFilter.prototype.getCategoryFilters	=	function()
		{
				return	this.cat_filters
		}


		// geeft 0 als niet of geen subcats, 1 als zelf of alle subcats, 2 als enkele subcats
		GlobalFilter.prototype.getCategoryFilter	=	function(key)
		{
				// SSSK hier eerst kijken of parent, zo ja dan check all kindjes
				if(this.mapsystem.message_categories.pid_to_cid[key])
				{
						// is parent
						var ooitwel = false;
						var ooitniet = false
						for(cid in this.mapsystem.message_categories.pid_to_cid[key])
						{
								if(this.cat_filters[cid] == true)
								{
										ooitwel = true
								}
								else
								{
										ooitniet = true
								}
						}

						if(ooitwel == true && ooitniet == false) return 1
						if(ooitwel == true && ooitniet == true) return 2
						return 0;
				}
				else
				{
						// is child
						if(this.cat_filters[key] == true)
						{
								return 1;
						}
						return 0;
				}
		}



		GlobalFilter.prototype.setCategoryFilter	=	function(key,value,donotupdate)
		{
				//
				//	check of het een parent is, zo ja dan
				if(this.mapsystem.message_categories.pid_to_cid[key])
				{
						//				  debug('parent ' +key)
						// parent
						if(value == true)
						{
								//					 debug('true')
								//	   true:
								if(this.cat_filters_old_subs[key])
								{
										//	   1. al ooit geset. doe wat eerst was
										//							 debug('al ooit gehad, doe wat eerst');
										var geentrue =true;
										for(cid in this.cat_filters_old_subs[key])
										{
												if(this.cat_filters_old_subs[key][cid])
												{
														this.cat_filters[cid] = true
												}
												if(this.cat_filters_old_subs[key][cid]) geentrue =false;
										}

										// tenzijn enkel false-en, dan alles
										if(geentrue)
										{
												for(cid in this.mapsystem.message_categories.pid_to_cid[key])
												{
														this.cat_filters[cid] = value;
												}
										}
								}
								else
								{
										//	   2. nog nooit, alle kiddos op true
										for(cid in this.mapsystem.message_categories.pid_to_cid[key])
										{
												this.cat_filters[cid] = value;
										}
								}
						}
						else
						{
								//			debug(false)
								//	   false:
								//	   sla huidige op en zet alle kids uit
								//	   1. al ooit geset. doe wat eerst was
								this.cat_filters_old_subs[key] = []
								for(cid in this.mapsystem.message_categories.pid_to_cid[key])
								{
										if(this.cat_filters[cid])
										{
												this.cat_filters_old_subs[key][cid] = this.cat_filters[cid]
										}
										this.cat_filters[cid] = value
								}
						}
				}
				else
				{
						//debug('child ' + key)
						// child
						this.cat_filters[key]	=	value
				}

				// no always clean up and always possibly update
				if(value == false) this.cat_filters = removeNullsFromArray(this.cat_filters)
				if(donotupdate != true)
				{
						if(value == false) this.__filters_narrowed()
						else	this.__filters_extended()
				}
		}

		GlobalFilter.prototype.clearAllCategoryFilter	=	function(donotupdate)
		{
				this.cat_filters	=	[]
				if(donotupdate != true) this.__filters_extended()
		}

		GlobalFilter.prototype.getGroupFilters	=	function()
		{
				return	this.group_filters
		}

		GlobalFilter.prototype.getGroupFilter	=	function(key)
		{
				if(this.group_filters[key] == true)
				{
						return true;
				}
				return false;

		}

		GlobalFilter.prototype.setMultipleGroupFilter	=	function(keys,value,donotupdate)
		{
				for(i in keys)
				{
						this.group_filters[keys[i]]	=	value
		//				if(keys[i] == 2) sfds();
				}

				if(value == false) this.group_filters = removeNullsFromArray(this.group_filters)
				if(donotupdate != true)
				{
						if(value == false) this.__filters_narrowed()
						else	this.__filters_extended()
				}
				
				this.__changed_GlobalFilters()
		}

		GlobalFilter.prototype.setGroupFilter	=	function(key,value,donotupdate)
		{
	//if(key == 2) sfds();
				this.group_filters[key]	=	value
				if(value == false) this.group_filters = removeNullsFromArray(this.group_filters)
				if(donotupdate != true)
				{
						if(value == false) this.__filters_narrowed()
						else	this.__filters_extended()
				}
				
				this.__changed_GlobalFilters()
		}

		GlobalFilter.prototype.clearAllGroupFilter	=	function(donotupdate)
		{

				this.group_filters	=	[]
				if(donotupdate != true) this.__filters_extended()
		}

		GlobalFilter.prototype.registerMapPointManager	=	function(mngr)
		{
				this.map_points_manager	=	mngr
		}

		
		// EVENTS
		
		GlobalFilter.prototype.registerChanged_GlobalFilters	=	function(cb)
		{
				this.__changed_grp_filters_cb[this.__changed_grp_filters_cb.length]	=	cb
		}

				GlobalFilter.prototype.__changed_GlobalFilters	=	function(cb)
		{
		
		//alert('x');
				for(i in this.__changed_grp_filters_cb)
				{
				  var cb = this.__changed_grp_filters_cb[i]
					//alert(cb);
					cb();
				}
		}

		//	================		======================================================
		//	the	object	to	manager	a	marker	and	so	on	for	ONE	location!
		//	based	on	filters	on	and	off	it	will	draw	the	marker	or	remove	it
		//	========================================================================
		function	MapPointsManagers(extraoptions)
		{
				this.mapsystem	=	null
				if(extraoptions)
				{
						if(extraoptions.mapsystem)
						{
								this.mapsystem	=extraoptions.mapsystem
						}
				}
				this.point_objects	=	[]	//	contains	point	objects	filters	for	each	loc
		}

		//	returns	true.	checks	all	points....
		MapPointsManagers.prototype.recheckWholeScreen	=	function(callback,extraoptions)
		{
				var	nr_active	=	0;
				for(locid	in	this.point_objects)
				{
						nr_active	=	nr_active	+	1;
				}

				//	just	recheck	all	point	objects
				for(locid	in	this.point_objects)
				{

						this.recheckMapPoint(locid,function(xxx)
						{
								nr_active	=	nr_active	-	1;
								if(nr_active==0)
								{
										if(callback)	callback(true);
								}
						}
						);
				}
		}

		// remove mappoint
		MapPointsManagers.prototype.deleteMapPoint	=	function(locid,callback,extraoptions)
		{
				var x = this.point_objects[locid]
				// call delete downwards
				if(x)  x.deleteObject()
				// remove ref.
				this.point_objects[locid] = null
				// this.__reorder_pointobjects() // TODO: not every time!!
		}


		//	checks	whether	point	still	active.	and	remove	if	necessary.	true	if	still	active
		MapPointsManagers.prototype.recheckMapPoint	=	function(locid,callback,extraoptions)
		{
				//	just	recheck	point	object	-	possible	remove
				var thisinstance = this
				var	point	=		this.point_objects[locid]
				point.isActive(function(active)
				{
						if(active	==	false)
						{
								thisinstance.deleteMapPoint(locid)
								if(callback)callback(false)
						}
						else
						{
								if(callback)callback(true)
						}
				}
				);
		}

		MapPointsManagers.prototype.__reorder_pointobjects	=	function()
		{
				var old = this.point_objects
				this.point_objects = []
				for(i in old)
				{
						if(old[i]) this.point_objects[i] = old[i]
				}
		}

		MapPointsManagers.prototype.getPointObject	=	function(locid,callback,extraoptions)
		{
				if(this.point_objects[locid])
				{
						return	this.point_objects[locid]
				}
				else
				{
						return	-1;
				}
		}

		MapPointsManagers.prototype.getAndCreatePointObject	=	function(locid,callback,extraoptions)
		{
				if(this.point_objects[locid])
				{
						callback(this.point_objects[locid]);
				}
				else
				{
						var	thisinstance	=	this
						this.mapsystem.locations.getLocation(locid,function(loc)
						{
						var	extraoptions	=	{}
								extraoptions.mapsystem	=	thisinstance.mapsystem
								extraoptions.map_point_manager	=	thisinstance

								thisinstance.point_objects[locid]	=	new	PointObject(loc,extraoptions)
								callback(thisinstance.point_objects[locid])
						}
						);
				}
		}

		//	======================================================================
		//	the	object	to	manager	a	marker	and	so	on	for	ONE	location!
		//	based	on	filters	on	and	off	it	will	draw	the	marker	or	remove	it
		//	========================================================================
		function	PointObject(loc,extraoptions)
		{
				this.loc	=	loc
				this.marker	=	null
				this.mapsystem	=	null
				this.map_point_manager	=	null
				if(extraoptions)
				{
						if(extraoptions.mapsystem)	this.mapsystem	=extraoptions.mapsystem
						if(extraoptions.map_point_manager)	this.map_point_manager	=extraoptions.map_point_manager
				}
				this.auto_delete	=	true		//	auto	delete	this	object?
				this.filter_objects	=	[]	//	contains	the	filters,	each	must	have	function	active()	available
		}

		PointObject.prototype.addFilterObject	=	function(fobject)
		{
				//	add
				this.filter_objects[this.filter_objects.length]=fobject
				//	register	point_object
				fobject.registerPointObject(this)


				this.updated()
		}

		PointObject.prototype.deleteObject	=	function()
		{
				for(i in this.filter_objects)
				{
						this.filter_objects[i].unregisterPointObject()
						this.filter_objects[i].deleteObject()
				}
				this.marker	=	null
				this.mapsystem	=	null
				this.map_point_manager	=	null
				this.filter_objects	=	null
		}

		PointObject.prototype.updated	=	function(fobject,extraoptions)
		{
				var	active	=	false
				for(i	in	this.filter_objects)
				{
						var	fobj	=	this.filter_objects[i]
						if(fobj.active()	==	true)	active	=	true;
				}

				//	now	if	active
				if(active	==	true)
				{
						//	possibly	add	marker	if	not	done	yet
						if(this.marker	==	null)
						{
								this.drawMarker()
						}
				}
				else
				{
						//	possibly	remove	marker	and	notify	map	point	manager	to	delete	the	object
						if(this.marker)
						{
								this.removeMarker()

						}
						if(this.auto_delete	||		(extraoptions	&&	extraoptions.delete_object))
						{
								//	TODO:	notify	upper	object.	delete	this

								// set all to null
								this.map_point_manager.recheckMapPoint(this.loc.id,null,null)
						}
				}
		}

		PointObject.prototype.isActive	=	function(callback)
		{
				var	active	=	false
				for(i	in	this.filter_objects)
				{
						var	fobj	=	this.filter_objects[i]
						if(fobj.active()	==	true)	active	=	true;
				}
				callback(active)
		}

		PointObject.prototype.drawMarker	=	function()
		{
				//	document.getElementById("search").value="jahoor"
				var	thisinstance	=	this;
				if(this.mapsystem)
				{
						this.mapsystem.createLocationMarker(this.loc,function(marker)
						{
								
								thisinstance.marker	=	marker
						}
						);
				}
		}

		PointObject.prototype.removeMarker	=	function()
		{
				//document.getElementById("search").value="jahoor - remove"
				var	thisinstance	=	this;
				if(this.mapsystem)
				{
						this.mapsystem.removeLocationMarker(this.loc.id,function(success)
						{
								//	success?		true	or	false
								thisinstance.marker	=	null
						}
						);
				}
		}

		//	================	FiltererObjectGroups	======================
		//	an	example	of	a	filterobjec
		//	this	object	is	to	register	presence	of	"groups"
		//	============================================================
		function	FiltererObject_Groups(loc_id,extraoptions)
		{
				this.keep_active	=	true
				this.loc_id	=	loc_id
				this.globalfilter	=	null
				this.point_object	=	null
				if(extraoptions)
				{
						if(extraoptions.globalfilter)	this.globalfilter	=extraoptions.globalfilter

						if(extraoptions.point_object)	this.point_object	=extraoptions.point_object

				}
		}


		FiltererObject_Groups.prototype.deleteObject	=	function()
		{
				this.globalfilter.removedFobject(this.loc_id)
				this.globalfilter	=	null
				this.point_object	=	null
		}

		FiltererObject_Groups.prototype.registerPointObject	=	function(point_object)
		{
				this.point_object	=point_object

		}

		FiltererObject_Groups.prototype.unregisterPointObject	=	function()
		{
				this.point_object	=null
		}

		FiltererObject_Groups.prototype.registerGlobalFilter	=	function(globalfilter)
		{
				this.globalfilter	=globalfilter
		}

		FiltererObject_Groups.prototype.active	=	function()
		{
				if(this.keep_active	==	false)
				{
						return	false
				}
				return	true;		//	still	necessary
				return	false;	//	no	longer	necessary
		}


		FiltererObject_Groups.prototype.remove	=	function()
		{
				this.keep_active	=	false
				this.point_object.updated()
				//	TODO:	remove	upwards
		}



		// =================================================================
		// =================================================================
		// =================================================================
		// =================================================================
		// =================================================================








		/*
		show_debug()
		clear_debug()
		close_debug()
		add_to_debug(content)

		show_group_window()
		clear_group_window()
		close_group_window()
		add_to_group_window(content)
		*/

		/*
		var globalfilter = null
		var mapmngr = null
		var groups = null
		var stevensgroepen=null
		*/
		/*
		function tests()
		{
		//debug("tests create global filter entry called")
		//debug("<a href=\"javascript:tests_groupcreate()\">CLICK HERE Create group</a>");
		debug("<a href=\"javascript:tests_showmygroups("+loggedin_id+")\">CLICK HERE Show my groups</a>");
		debug("<a href=\"javascript:tests_globalfilter_show()\">CLICK HERE Show global filter</a>");
		mapsystem.globalfilter.registerCallbackMoreLocsOnScreen(function(hoeveel, maxi)
		{
		debug('' + maxi + ' van de ' + hoeveel + "punten")
		}
		)

		}
		*/




		/*
		function tests_creategroup()
		{
		show_group_window()
		//add_to_group_window(content)
		//var debug_window = document.getElementById("group_window");
		//debug_window.innerHTML += content


		}
		*/


		/*
		function tests_groupinfo(group_id)
		{
		open_screen_intro_group(group_id)

		return true;
		clear_group_window()
		show_group_window()

		mapsystem.groups.getGroup(group_id,function(group)
		{
		add_to_group_window("Name:" +group.name+"<br>")
		add_to_group_window("number_of_members:" +group.number_of_members+"<br>")
		add_to_group_window("description:" +group.description+"<br>")
		add_to_group_window("id:" +group.id+"<br>")
		add_to_group_window("type:" +group.type+"<br>")

		group.getMembersIds(function(u_ids,status)
		{
		add_to_group_window("members:<br>")
		for(i in u_ids)
		{
		treelzsystem.users.getUser(u_ids[i],null,function(usr)
		{
		add_to_group_window("	" +usr.id+" " +usr.firstname+" " +usr.lastname+"<br>")
		}
		)
		}
		}
		);
		}
		)

		}
		*/
		/*
		function tests_groupcreate()
		{
		clear_group_window()
		show_group_window()
		add_to_group_window("naam: <input type=\"text\" id=\"group_new_name\"/><br>");
		add_to_group_window("desc: <input type=\"text\" id=\"group_new_desc\"/><br>");
		add_to_group_window("TODO levels....<br>");
		add_to_group_window("<a href=\"javascript:createNewGroup()\">Creer groep</a><br>");

		}

		function createNewGroup()
		{
		var name_input = document.getElementById("group_new_name");
		var desc_input = document.getElementById("group_new_desc");

		mapsystem.groups.createGroup(name_input.value,desc_input.value,null,	function(group)
		{
		tests_groupinfo(group.id)
		}
		)
		}

		*/

		/*
		function tests_showmygroups_i_canadd(gebruikuid)
		{
		clear_group_window()
		show_group_window()

		//gebruikuid = loggedin_id
		add_to_group_window("ADD mag voor GROUPEN VOOR " + gebruikuid+":<br>")
		mapsystem.groups.getGroupUsersCanAdd(gebruikuid,	function(grps)
		{

		for(i in grps)
		{
		var grp = grps[i]

		//"+grp.name+"
		add_to_group_window("<a href=\"javascript:tests_groupinfo("+grp.id+")\"> grp "+grp.name+"</a><br>")
		}


		}
		)

		}

		function test_search_group()
		{
		var string = document.getElementById('search_group_string').value;
		var extraoptions = []
		extraoptions.start = 0;
		extraoptions.aantal = 6;
		mapsystem.groups.searchGroupByString(string,	function(grps,aantal)
		{
		var resultdiv = document.getElementById('test_group_search_resultdiv');
		resultdiv.innerHTML = 'Aantal gevonden:' + aantal + '<br>';

		for(i in grps)
		{
		var grp = grps[i];
		resultdiv.innerHTML += 'Group: ' + grp.id + ' '+ grp.name +'<br>';
		}
		}
		,extraoptions);

		}

		function tests_searchgroups()
		{
		clear_group_window()
		show_group_window()

		//gebruikuid = loggedin_id
		add_to_group_window("Search group:<br>")
		add_to_group_window('<input type="text" id="search_group_string"/><br>');
		add_to_group_window('<a href="javascript:test_search_group()">Search</a>');
		add_to_group_window('<div id="test_group_search_resultdiv"></div>');
		}

		function tests_showmygroups(gebruikuid)
		{
		clear_group_window()
		show_group_window()

		//gebruikuid = loggedin_id
		add_to_group_window("Search group:<br>")
		add_to_group_window('<input type="text" id="search_group_string"/>');
		add_to_group_window('<a href="javascript:test_search_group()">Search</a>');
		add_to_group_window('<div id="test_group_search_resultdiv"></div>');
		add_to_group_window("<hr>GROUPEN VOOR " + gebruikuid+":<br>")
		mapsystem.groups.getGroupUsersMemberOf(gebruikuid,	function(grps)
		{

		for(i in grps)
		{
		var grp = grps[i]

		//"+grp.name+"
		add_to_group_window("<a href=\"javascript:tests_groupinfo("+grp.id+")\"> grp "+grp.name+"</a><br>")
		}


		}
		)

		}

		function remove_fromglobal_grp_all_friends()
		{
		var grps = mapsystem.globalfilter.getGroupFilters()

		for(i in grps)
		{
		mapsystem.groups.getGroup(i,function(grp)
		{
		if(grp.type == 3)
		{
		mapsystem.globalfilter.setGroupFilter(grp.id,false)
		}

		}
		);
		}



		}

		function remove_fromglobal_cat(catid)
		{
		mapsystem.globalfilter.setCategoryFilter(catid,false)
		tests_globalfilter_show()
		}

		function remove_fromglobal_lng(lngid)
		{
		mapsystem.globalfilter.setLanguageFilter(lngid,false)
		tests_globalfilter_show()
		}

		function remove_fromglobal_grp(grpid)
		{
		mapsystem.globalfilter.setGroupFilter(grpid,false)
		tests_globalfilter_show()
		}

		function add_to_global_filter_cat(id)
		{
		mapsystem.globalfilter.setCategoryFilter(id,true)
		tests_globalfilter_show()
		}
		function add_to_global_filter_lang(id)
		{
		mapsystem.globalfilter.setLanguageFilter(id,true)
		tests_globalfilter_show()
		}

		function __add_to_div(div,content)
		{
		div.innerHTML =div.innerHTML + content
		}

		function __tests_globalfilter_show_cat()
		{
		var cats = mapsystem.globalfilter.getCategoryFilters()
		var thediv = document.getElementById("globalfilter_catdiv")

		__add_to_div(thediv,"cats:<br><div id=\"globalfilter_catdiv_selected\"></div>")
		for(i in cats)
		{
		mapsystem.message_categories.getCategory(i,function(cat)
		{
		var theselecteddiv = document.getElementById("globalfilter_catdiv_selected")
		__add_to_div(theselecteddiv,cat.id + ":" + cat.name +" <a href=\"javascript:remove_fromglobal_cat("+i+")\">X</a><br> ");
		}
		);
		}
		if(cats.length == 0)
		{
		__add_to_div(thediv,"--all--")
		}

		mapsystem.message_categories.getParentCategories(function(cats)
		{
		__add_to_div(thediv,"<br>Add cat to filter:<br>");
		for(i in cats)
		{
		var cat = cats[i]

		__add_to_div(thediv,"<a href=\"javascript:add_to_global_filter_cat("+cat.id+")\">Add "+cat.name +"</a><br>");
		}
		}
		);
		}

		function __tests_globalfilter_show_lang()
		{
		var lngs = mapsystem.globalfilter.getLanguageFilters()
		var thediv = document.getElementById("globalfilter_langdiv")

		__add_to_div(thediv,"langs:<br><div id=\"globalfilter_langdiv_selected\"></div>")
		for(i in lngs)
		{
		treelzsystem.languages.getLanguage(i,function(lng)
		{
		var theselecteddiv = document.getElementById("globalfilter_langdiv_selected")
		__add_to_div(theselecteddiv,lng.id + ":" + lng.name +"  <a href=\"javascript:remove_fromglobal_lng("+i+")\">X</a><br>");
		}
		);
		}
		if(lngs.length == 0)
		{
		__add_to_div(thediv,"--all--")
		}


		treelzsystem.languages.getAllLanguages(function(langs)
		{
		__add_to_div(thediv,"<br>Add language to filter:<br>");
		for(i in langs)
		{
		var lang = langs[i]

		__add_to_div(thediv,"<a href=\"javascript:add_to_global_filter_lang("+lang.id+")\">Add "+lang.name +"</a><br>");
		}
		}
		);

		}
		function __tests_globalfilter_show_group()
		{
		var grps = mapsystem.globalfilter.getGroupFilters()
		var thediv = document.getElementById("globalfilter_groupdiv")

		__add_to_div(thediv,"groepen:<br><div id=\"globalfilter_grpsdiv_selected\"></div><a href=\"javascript:mapsystem.globalfilter.setGroupFilter(2,true)\">add wikipedia</a>")
		for(i in grps)
		{

		mapsystem.groups.getGroup(i,function(group)
		{
		var theselecteddiv = document.getElementById("globalfilter_grpsdiv_selected")
		__add_to_div(theselecteddiv,group.id+": "+group.name+" <a href=\"javascript:remove_fromglobal_grp("+i+")\">X</a><br>");
		}
		);

		}
		if(grps.length == 0)
		{
		__add_to_div(thediv,"--all--")
		}


		}

		function tests_globalfilter_show()
		{
		debug("tests_globalfilter_show")
		clear_group_window()
		show_group_window()

		add_to_group_window("FILTERS NU:<br>")
		add_to_group_window("<div id=\"globalfilter_groupdiv\"></div><hr>");
		add_to_group_window("<div id=\"globalfilter_catdiv\"></div><hr>");
		add_to_group_window("<div id=\"globalfilter_langdiv\"></div>");


		__tests_globalfilter_show_group()
		__tests_globalfilter_show_cat()
		__tests_globalfilter_show_lang()

		}


		*/













		/// ++++++++++++BACKUP

		//	================	External	Filters	======================
		//	contains	general	filters	for	the	map	on external sources
		//			// for now does not know about things like: lang, cat.
		//		 future use might create knowledge of global filter
		//	======================================================
		function	ExternalGlobalFilter(extraoptions)
		{
				this.show_wiki = false

				/*
				this.lang_filters	=	[]
				this.cat_filters	=	[]
				*/

				this.max	=	100

				this.map_points_manager	=	null
				this.mapsystem	=	null
				this.locations	=	null

				if(extraoptions)
				{
						if(extraoptions.locations)	this.locations	=extraoptions.locations
						if(extraoptions.mapsystem)	this.mapsystem	=extraoptions.mapsystem
						if(extraoptions.map_points_manager)	this.map_points_manager	=extraoptions.map_points_manager
				}

				this.fobjects	=	[]	//	locid	->
				// this.cb_more_ext_possible = []
		}

		ExternalGlobalFilter.prototype.registerMapPointManager	=	function(mngr)
		{
				this.map_points_manager	=	mngr
		}

		ExternalGlobalFilter.prototype.recheckFilter	=	function(extraoptions)
		{
				this.__filters_extended(extraoptions)
		}


		ExternalGlobalFilter.prototype.removedFobject	=	function(loc_id)
		{
				/*
				if(this.fobjects[loc_id])
				{
				this.fobjects[loc_id] =null
				// TODO reorder list
				this.__reorder_pointobjects()
				}
				*/
		}

		ExternalGlobalFilter.prototype.__reorder_pointobjects	=	function()
		{
				/*
				var old = this.fobjects
				this.fobjects = []
				for(i in old)
				{
				if(old[i]) this.fobjects[i] = old[i]
				}
				*/
		}

		ExternalGlobalFilter.prototype.__filters_extended	=	function(extraoptions)
		{
				/*
				// TODO: afvangen 10x filter aan uit (compare with oude changescreen) !!

				//	now	just	get	locations	based	on	filter	(may	be	all)
				var	borders	=	this.mapsystem.getMapBordersString()
				var	options	=	this.__create_db_filter_extraoptions()
				var	thisinstance	=	this
				this.locations.getLocationsInRangeByFilter(borders,this.max,function(locs,maxlocs)
				{
				//	for	all	in	current	list	locs:
				for(locid	in	thisinstance.fobjects)
				{
				//	if	not	in	new	list:	de-activate	fobject
				if(locid	in	locs)
				{
				}
				else
				{
				//	not	in	new	list	of	locs
				//	de-activate	fobject
				thisinstance.fobjects[locid].remove()
				//
				thisinstance.removedFobject(locid)
				//	TODO: think about compare screen bounds to loc instead of this filter way
				//document.getElementById("search").value="jahoor"
				}
				}

				//	for	all	in	new	list
				for(i	in	locs)
				{
				var	loc	=	locs[i]
				var	c_fobject	=	null
				//	if	in	cuurent,	get
				if(thisinstance.fobjects[loc.id])
				{
				//
				c_fobject	=	thisinstance.fobjects[loc.id]
				//	TODO:	anything	else?	don't	think	so.	keep	it	ready
				}
				else
				{
				//	not	in	current,	create
				thisinstance.map_points_manager.getAndCreatePointObject(loc.id,function(pointobject)
				{
				var	extraoptions	=	{}
				extraoptions.globalfilter=thisinstance
				var	c_fobject	=	new	FiltererObject_Groups(loc.id,extraoptions)
				pointobject.addFilterObject(c_fobject)
				thisinstance.fobjects[loc.id]=c_fobject
				}
				);
				}
				}

				// notify nr locs than on screen
				for(i in thisinstance.cb_more_locs_possible)
				{
				showing = thisinstance.max
				if(thisinstance.max > maxlocs) showing = maxlocs
				thisinstance.cb_more_locs_possible[i](maxlocs,showing)
				}

				}
				,options)
				*/
		}


		ExternalGlobalFilter.prototype.registerCallbackMoreLocsOnScreen	=	function(callback)
		{
				/*	this.cb_more_locs_possible[this.cb_more_locs_possible.length] = callback
				*/
		}

		ExternalGlobalFilter.prototype.__create_db_filter_extraoptions	=	function()
		{
				/*
				var	extraoptions	=	{}
				if(this.group_filters.length	>	0)
				{
				extraoptions.groups	=	[]
				for(gr	in	this.group_filters)
				{
				if(this.group_filters[gr]	==	true)
				{
				extraoptions.groups[gr]	=gr
				}
				}
				}

				if(this.cat_filters.length	>	0)
				{
				extraoptions.cats	=	[]
				for(ct	in	this.cat_filters)
				{
				if(this.cat_filters[ct]	==	true)
				{
				extraoptions.cats[ct]	=ct
				}
				}
				}

				if(this.lang_filters.length	>	0)
				{
				extraoptions.langs	=	[]
				for(lg	in	this.lang_filters)
				{
				if(this.lang_filters[lg]	==	true)
				{
				extraoptions.langs[lg]	=lg
				}
				}
				}

				return	extraoptions
				*/
		}

		
		 
		/// @ ARJEN:
	
	
	
	// steven menu test
	// td1_4
	
	function xxxxx()
	{
	
	  /*
                 Initialize and render the MenuBar when its elements are ready 
                 to be scripted.
            */

            YAHOO.util.Event.onContentReady("td1_4", function () {

                /*
                     Instantiate a MenuBar:  The first argument passed to the 
                     constructor is the id of the element in the page 
                     representing the MenuBar; the second is an object literal 
                     of configuration properties.
                */

                var oMenuBar = new YAHOO.widget.MenuBar("td1_4", { 
                                                            autosubmenudisplay: true, 
                                                            hidedelay: 750, 
                                                            lazyload: true });

                /*
                     Define an array of object literals, each containing 
                     the data necessary to create a submenu.
                */

                var aSubmenuData = [
                
                    {
                        id: "communication", 
                        itemdata: [ 
                            { text: "360", url: "http://360.yahoo.com" },
                            { text: "Alerts", url: "http://alerts.yahoo.com" },
                            { text: "Avatars", url: "http://avatars.yahoo.com" },
                            { text: "Groups", url: "http://groups.yahoo.com " },
                            { text: "Internet Access", url: "http://promo.yahoo.com/broadband" },
                            {
                                text: "PIM", 
                                submenu: { 
                                            id: "pim", 
                                            itemdata: [
                                                { text: "Yahoo! Mail", url: "http://mail.yahoo.com" },
                                                { text: "Yahoo! Address Book", url: "http://addressbook.yahoo.com" },
                                                { text: "Yahoo! Calendar",  url: "http://calendar.yahoo.com" },
                                                { text: "Yahoo! Notepad", url: "http://notepad.yahoo.com" }
                                            ] 
                                        }
                            
                            }, 
                            { text: "Member Directory", url: "http://members.yahoo.com" },
                            { text: "Messenger", url: "http://messenger.yahoo.com" },
                            { text: "Mobile", url: "http://mobile.yahoo.com" },
                            { text: "Flickr Photo Sharing", url: "http://www.flickr.com" },
                        ]
                    },

                    {
                        id: "shopping", 
                        itemdata: [
                            { text: "Auctions", url: "http://auctions.shopping.yahoo.com" },
                            { text: "Autos", url: "http://autos.yahoo.com" },
                            { text: "Classifieds", url: "http://classifieds.yahoo.com" },
                            { text: "Flowers & Gifts", url: "http://shopping.yahoo.com/b:Flowers%20%26%20Gifts:20146735" },
                            { text: "Real Estate", url: "http://realestate.yahoo.com" },
                            { text: "Travel", url: "http://travel.yahoo.com" },
                            { text: "Wallet", url: "http://wallet.yahoo.com" },
                            { text: "Yellow Pages", url: "http://yp.yahoo.com" }                    
                        ]    
                    },
                    
                    {
                        id: "entertainment", 
                        itemdata: [
                            { text: "Fantasy Sports", url: "http://fantasysports.yahoo.com" },
                            { text: "Games", url: "http://games.yahoo.com" },
                            { text: "Kids", url: "http://www.yahooligans.com" },
                            { text: "Music", url: "http://music.yahoo.com" },
                            { text: "Movies", url: "http://movies.yahoo.com" },
                            { text: "Radio", url: "http://music.yahoo.com/launchcast" },
                            { text: "Travel", url: "http://travel.yahoo.com" },
                            { text: "TV", url: "http://tv.yahoo.com" }              
                        ] 
                    },
                    
                    {
                        id: "information",
                        itemdata: [
                            { text: "Downloads", url: "http://downloads.yahoo.com" },
                            { text: "Finance", url: "http://finance.yahoo.com" },
                            { text: "Health", url: "http://health.yahoo.com" },
                            { text: "Local", url: "http://local.yahoo.com" },
                            { text: "Maps & Directions", url: "http://maps.yahoo.com" },
                            { text: "My Yahoo!", url: "http://my.yahoo.com" },
                            { text: "News", url: "http://news.yahoo.com" },
                            { text: "Search", url: "http://search.yahoo.com" },
                            { text: "Small Business", url: "http://smallbusiness.yahoo.com" },
                            { text: "Weather", url: "http://weather.yahoo.com" }
                        ]
                    }                    
                ];


                /*
                     Subscribe to the "beforerender" event, adding a submenu 
                     to each of the items in the MenuBar instance.
                */

                oMenuBar.subscribe("beforeRender", function () {

                    if (this.getRoot() == this) {

                        this.getItem(0).cfg.setProperty("submenu", aSubmenuData[0]);
                        this.getItem(1).cfg.setProperty("submenu", aSubmenuData[1]);
                        this.getItem(2).cfg.setProperty("submenu", aSubmenuData[2]);
                        this.getItem(3).cfg.setProperty("submenu", aSubmenuData[3]);

                    }

                });


                /*
                     Call the "render" method with no arguments since the 
                     markup for this MenuBar instance is already exists in 
                     the page.
                */

                oMenuBar.render();         
            
            });


	
	}/*class.slideshow.js*/

function SlideShow () {

	this.Collection = new Array();
	this.pointer = 0;
	
	this.addPictures = function (jsnImage) {
		for (i in jsnImage) {
			this.Collection.push(jsnImage[i].picture_id);
		}

	}
	
	this.Flush = function () {
		this.Collection = new Array();
		clearTimeout(this.t);
	}
	
	this.Init = function () {
				
		
	}
	
	this.showNext = function () {
		if (this.Collection.length == 0) { alert ("collection not loaded yet")}
		else {
			if (this.pointer == this.Collection.length - 1) {
				this.pointer = 0;
			}
			else {
				this.pointer++;
			}
			show_large_picture(this.Collection[this.pointer]);
		}
	}
	
	this.showPrev = function () {
		if (this.Collection.length == 0) { alert ("collection not loaded yet")}
		else {
			if (this.pointer == 0) {
				this.pointer = this.Collection.length - 1;
			}
			else {
				this.pointer--;
			}
			show_large_picture(this.Collection[this.pointer]);
		}
	}
	
	this.start = function () {
	
	}
	
	this.PlayPause_button = function () {
		if (this.show == "running") {
			this.show = "paused";
			this.stop();
		}
		else {
			this.Play();
			this.show = "running";
		}
	
	}
	
		this.PlayPause_full_button = function () {
		if (this.showf == "running") {
			this.showf = "paused";
			this.stopf();
		}
		else {
			this.Playf();
			this.showf = "running";
		}
	
	}
	
	
	
	this.ReturnStatus = function () {
		return this.show;
	}
	
	this.ReturnStatusf = function () {
		return this.showf;
	}
	
	this.Play = function () {
		if (this.show == "running") {
			this.showNext();
		}
		this.t = setTimeout("show.Play()",4000);
		
	}
	
	this.Playf = function () {
		if (this.showf == "running") {
			this.nextFull();
		}
		this.f = setTimeout("show.Playf()",4000);
		
	}
	
		this.stopf = function () {
		clearTimeout(this.f);
	}

	
	
	
	this.stop = function () {
		clearTimeout(this.t);
	}
	
	this.preload = function (pointer) { //preload all the images, so the slideshow goes smooth
		var slide_show_p = document.getElementById('slide_show_preload');
		slide_show_p.innerHTML = "<center><a href='javascript:show.stopFullScreen()' title='"+getTrans.Translate("title_close_full_screen")+"'><img src='imageshow.php?thumb=true&w="+document.body.clientWidth+"&h="+document.body.clientHeight+"&imageid="+this.Collection[pointer]+"' border='0'</a></center>";
	}
	
	this.fullscreen = function (msgid) {
		this.stop();
		if (msgid) {
			for (i in this.Collection) {
				if (this.Collection[i] == msgid) {
					this.pointer = i;
					break;
				}
			}
		}
		var slide_show = document.getElementById('slide_show');
		slide_show.style.visibility = "visible";
		slide_show.style.background = "#000000";
		slide_show.style.href = "javascript:close_global_intro()";
		slide_show.innerHTML = "<center><a href='javascript:show.stopFullScreen()' title='"+getTrans.Translate("title_close_full_screen")+"'><img src='imageshow.php?thumb=true&w="+document.body.clientWidth+"&h="+document.body.clientHeight+"&imageid="+this.Collection[this.pointer]+"' border='0'</a></center>";
		var slide_full_button_div = createElement(slide_show, "slide_full_button_div", "slide_full_button_div", "div");
			var	center	=	createElement(slide_full_button_div,null,null,'center');
				var	slide_full_button_div_center	=	createElement(center,"button_div_center","slide_full_button_div_center",'div');
		
		
		this.createButtons (slide_full_button_div_center);

		var nextP = parseInt(this.pointer) + 1;
		
		this.preload(nextP);
	}
	
	this.createButtons = function (slide_full_button_div_center) {
		
		slide_full_button_div_center.style.width = '0px'
		
				var show_base = 20;
				var show_hover = 100;
			
					
			create_clickable_icon("slide_full_button_div_center", "slideshow_previous_full", "slideshow/icon_slideshow_previous", "javascript:show.prevFull()",  "title_prev_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
			if (show.ReturnStatus() == "running"){create_clickable_icon("slide_full_button_div_center", "slideshow_play_pause_full", "slideshow/icon_slideshow_pause", "javascript:show.PlayPause_button(); change_button_play_pause_f()",  "title_pause", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)}
			else{create_clickable_icon("slide_full_button_div_center", "slideshow_play_pause_full", "slideshow/icon_slideshow_play", "javascript:show.PlayPause_full_button(); change_button_play_pause_f()",  "title_play", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)}
			create_clickable_icon("slide_full_button_div_center", "slideshow_next_full", "slideshow/icon_slideshow_next", "javascript:show.nextFull()",  "title_next_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
			create_clickable_icon("slide_full_button_div_center", "slideshow_fullscreen_full", "slideshow/icon_slideshow_full_screen", "javascript:show.stopFullScreen()",  "title_full_screen", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
	//		create_clickable_icon("slide_full_button_div_center", "slideshow_save_full", "slideshow/icon_slideshow_save", 'document.execCommand(\'SaveAs\',\'1\',\''+picture_img.src+'\');',  "title_print_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
			create_clickable_icon("slide_full_button_div_center", "slideshow_print_full", "slideshow/icon_slideshow_print", "javascript:print_large_pic("+this.Collection[this.pointer]+")",  "title_print_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
			create_clickable_icon("slide_full_button_div_center", "slideshow_close_full", "slideshow/icon_slideshow_close", "javascript:show.stopFullScreen()",  "title_close_pic", null,  "left", space_inbetween, slideshow_b_o, slideshow_f_o)
			
			if (this.ReturnStatusf() == "running") {
				change_button_play_pause_f();
			}

		
	}
	
	this.nextFull = function () {
		
		if (this.Collection.length == 0) { alert ("collection not loaded yet")}
		else {
			if (this.pointer == this.Collection.length - 1) {
				this.pointer = 0;
			}
			else {
				this.pointer++;
			}
			var slide_show = document.getElementById('slide_show');
			slide_show.innerHTML = "<center><a href='javascript:show.stopFullScreen()' title='click to close full screen'><img src='imageshow.php?thumb=true&h="+document.body.clientHeight+"&w="+document.body.clientWidth+"&imageid="+this.Collection[this.pointer]+"' border='0' align='center'></a></center>";
			var slide_full_button_div = createElement(slide_show, "slide_full_button_div", "slide_full_button_div", "div");
				var	center	=	createElement(slide_full_button_div,null,null,'center');
					var	slide_full_button_div_center	=	createElement(center,"button_div_center","slide_full_button_div_center",'div');
		
		
		this.createButtons (slide_full_button_div_center);

		}
	}
	
	this.prevFull = function () {
		this.pointer = parseInt(this.pointer);
		
		if (this.Collection.length == 0) { alert ("collection not loaded yet")}
		else {
			if (this.pointer == 0) {
				this.pointer = this.Collection.length;
				this.pointer--;
			}
			else {
				this.pointer--;
			}
			var slide_show = document.getElementById('slide_show');
			slide_show.innerHTML = "<center><a href='javascript:show.stopFullScreen()' title='click to close full screen'><img src='imageshow.php?thumb=true&h="+document.body.clientHeight+"&w="+document.body.clientWidth+"&imageid="+this.Collection[this.pointer]+"' border='0' align='center'></a></center>";
			var slide_full_button_div = createElement(slide_show, "slide_full_button_div", "slide_full_button_div", "div");
				var	center	=	createElement(slide_full_button_div,null,null,'center');
					var	slide_full_button_div_center	=	createElement(center,"button_div_center","slide_full_button_div_center",'div');
		
		
		this.createButtons (slide_full_button_div_center);

		}
	}	
	
	this.stopFullScreen = function () {
		clearTimeout(this.f);
	//	this.PlayPause_button();
		var slide_show = document.getElementById('slide_show');
		slide_show.style.visibility = "hidden";
		slide_show.innerHTML = "";
		
		
	}

		

}



