var tips = null;
//MAIN MENU STUFF
function init_main_menu()
{
	var mm = $("main_menu");
	if(!mm){return false;}
	var accordion = new Accordion('.main_menu_parent', '.main_menu_child', {
			opacity: true,
			onActive: function(toggler, element){
				toggler.setStyle("color", "#243138");
				//toggler.setOpacity(1);
				//toggler.removeEvents("mouseenter");
				//toggler.removeEvents("mouseleave");
			},

			onBackground: function(toggler, element){
				toggler.setStyle("color", "#556269");
				toggler.addEvent("mouseenter", function(e){
					//toggler.setStyle("background-color", "#7f92b8");
				});
				toggler.addEvent("mouseleave", function(e){
					//toggler.setStyle("background-color", "#687897");
				});
			}
		},
	$('main_menu'));
}
//----------------------
function $get(key,url)
{
	if(arguments.length < 2) url =location.href;
	if(arguments.length > 0 && key != "")
	{
		if(key == "#"){
		var regex = new RegExp("[#]([^$]*)");
		} else if(key == "?"){
		var regex = new RegExp("[?]([^#$]*)");
		} else {
		var regex = new RegExp("[?&]"+key+"=([^&#]*)");
		}
		var results = regex.exec(url);
		return (results == null )? "" : results[1];
	}
	else
	{
		url = url.split("?");
		var results = {};
		if(url.length > 1)
		{
			url = url[1].split("#");
			if(url.length > 1) results["hash"] = url[1];
			url[0].split("&").each(function(item,index)
			{
				item = item.split("=");
				results[item[0]] = item[1];
			});
		}
		return results;
	}
}
function reverse_array(arr)
{
	var new_array = new Array();
	var arr_len = arr.length;
	for(index_i=arr_len-1; index_i>=0; index_i--)
	{
		new_array.push(arr[index_i]);
	};
	return(new_array);
};
function random_time_qs()
{
	var time_qs = "&randtime=" + $time();
	return time_qs;
};
function over_focus(alpha)
{
	if($("full_overlay") == null)
	{
		var fo = new Element("div", {
				"styles":
				{
					"display": "block",
					"width": $("body").offsetWidth,
					"height": $("body").offsetHeight
				},
				"class": "full_overlay fullscreen",
				"id": "full_overlay"
		});
		fo.setOpacity(0);
		$("body").adopt(fo);
		var fse_op = new Fx.Style(fo, 'opacity', {duration:500});
		fse_op.start(0,alpha);
		resize_full();
		window.addEvent("resize", resize_full);
	}
};
function unload_over_focus()
{
	var fo = $("full_overlay");
	if(fo != null)
	{
		var fse_op = new Fx.Style(fo, 'opacity', {duration:300});
		fse_op.start(0).chain(function()
		{
			fo.remove();
		});
		window.removeEvent("resize", resize_full);
	}
};
function info_popover(type, title, content)
{
	if($("info_popover"))
	{
		return false;
	}
	over_focus(.3);
	if(window.ie6)
	{
		var po = new Element("div", {
			"class": "info_popover_ie6 absolute_center",
			"id": "info_popover"
		});
	
		var po_title = new Element("div", {
			"class": "info_popover_title",
			"id": "info_popover_title"
		});
		var po_content = new Element("div", {
			"class": "info_popover_content",
			"id": "info_popover_content"
		});
		var po_close_button_container = new Element("div", {
			"class": "info_popover_button_container",
			"id": "info_popover_button_container"
		});
		var po_close_button = new Element("img", {
			"src": "images/help_bg_x.gif",
			"class": "pointer",
			"id": "info_popover_close"
		});
	}
	else
	{
		var po = new Element("div", {
				"class": "info_popover absolute_center",
				"id": "info_popover"
		});
	
		var po_title = new Element("div", {
					"class": "info_popover_title",
					"id": "info_popover_title"
			});
		var po_content = new Element("div", {
					"class": "info_popover_content",
					"id": "info_popover_content"
			});
		var po_close_button_container = new Element("div", {
					"class": "info_popover_button_container",
					"id": "info_popover_button_container"
			});
		var po_close_button = new Element("img", {
					"src": "images/help_bg_x.png",
					"class": "pointer",
					"id": "info_popover_close"
		});
	}
	po_title.setHTML(title);
	po_content.setHTML(content);
	po_close_button.addEvent("click", function(e){
		e = new Event(e);
		e.stopPropagation();
		unload_info_popover();
	});
	po_close_button_container.adopt(po_close_button);
	po.adopt(po_close_button_container);
	po.adopt(po_title);
	po.adopt(po_content);
	$("body").adopt(po);
	var info_popover_drag = new Drag.Move(po,{
		"handle": "info_popover_title",
		"container": $("full_overlay")
	});
	absolute_center(po);
	po.onkeydown = function(event){
		var event = new Event(event);
		if(event.key == "enter" || event.key == "space" || event.key == "esc")
		{
			po_close_button.fireEvent("click");
		}
		event.stopPropagation();
	};
};
function unload_info_popover()
{
	unload_over_focus();
	hide_tips();
	var po = $("info_popover");
	if(po != null)
	{
		var po_op = new Fx.Style(po, 'opacity', {duration:1000});
		var info_slideout = new Fx.Slide(po, {duration:1000});
		info_slideout.slideOut();
		po_op.start(0).chain(function()
		{
			if(!po.getParent().getProperty("id"))
			{
				po.getParent().remove();
			}
			else
			{
				po.remove();
			}
		});
	}
};
function alert_flash(message)
{
	if($("alert_flash"))
	{
		$("alert_flash").remove();
	}
	if(window.ie6)
	{
		var af = new Element("div", {
			"styles": {
				"position":"absolute",
				"top":"0px",
				"height":"187px",
				"width":"226px",
				"overflow":"hidden",
				"background-image":"url(images/alertgraphic.gif)",
				"background-repeat":"no-repeat",
				"color":"#545454",
				"font-size":"14px",
				"font-weight":"bold",
				"z-index":"9998"
			},
			"class": "alert_flash",
			"id": "alert_flash"
		});
	}
	else
	{
		var af = new Element("div", {
			"styles": {
				"position":"absolute",
				"top":"0px",
				"height":"187px",
				"width":"226px",
				"overflow":"hidden",
				"background-image":"url(images/alertgraphic.png)",
				"background-repeat":"no-repeat",
				"color":"#545454",
				"font-size":"14px",
				"font-weight":"bold",
				"z-index":"9998"
			},
			"class": "alert_flash",
			"id": "alert_flash"
		});
	}
	var afm = new Element("div", {
		"styles":{
			"margin-left":"30px",
			"margin-top":"45px"
		}
	});
	afm.setHTML(message);
	af.adopt(afm);
	$("body").adopt(af);
	absolute_bottom(af);
	var af_fade = new Fx.Style(af, "opacity", {duration:2000});
	af_fade.start(1,0).chain(function(){
		af.remove();
	});
};
function ajax_loading_flash(message)
{
	remove_ajax_loading_flash();
	var alf = new Element("div", {
		"styles": {
			"position":"absolute",
			"top":"0px"
		},
		"class": "ajax_loading_flash",
		"id": "ajax_loading_flash"
	});
	alf.setHTML(message);
	$("body").adopt(alf);
	absolute_bottom(alf);
};
function remove_ajax_loading_flash()
{
	if($("ajax_loading_flash"))
	{
		$("ajax_loading_flash").remove();
	}
};
function resize_full(fs_only)
{
	var fse = $("full_overlay");

	fse.setStyle("width", $("body").offsetWidth);
	fse.setStyle("height", getScrollHeight());

	if(!fs_only)
	{
		var abs_centered_els = $$(".absolute_center");
		abs_centered_els.each(function(el){
			absolute_center(el);
		});
		var hor_centered_els = $$(".horizontal_center");
		hor_centered_els.each(function(el){
			horizontal_center(el);
		});
	}
};
function absolute_center(el)
{
	var s_width = getWidth();
	var s_height = getHeight();
	var o_width = el.offsetWidth;
	var o_height = el.offsetHeight;
	var left_pos = (s_width/2) - (o_width/2);
	var top_pos = (s_height/2) - (o_height/2) + getScrollTop();
	top_pos = (top_pos <= 0) ? 10 : top_pos;
	el.setStyle("left", left_pos);
	el.setStyle("top", top_pos);
};
function horizontal_center(el)
{
	var s_width = getWidth();
	var o_width = el.offsetWidth;
	var left_pos = (s_width/2) - (o_width/2);
	el.setStyle("left", left_pos);
}
function absolute_bottom(el)
{
	var w_height = getHeight();
	var s_top = getScrollTop();
	var o_height = el.offsetHeight;
	var y_pos = w_height + s_top - o_height - 10;
	y_pos = (y_pos <= 0) ? 20 : y_pos;
	el.setStyle("position", "absolute");
	el.setStyle("top", y_pos);
}
function init_tips()
{
	var tobe_tips = $$(".tip");
	var old_tips = $$('.already_tipped');
	old_tips.each(function(el){
		tobe_tips.remove(el);
	});
	tips = null;
	var tips = new Tips(tobe_tips, {
		showDelay: 450,
		hideDelay: 0,
		initialize:function(){
			this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
		},
		onShow: function(toolTip) {
			this.fx.start(1);
		},
		onHide: function(toolTip) {
			this.fx.start(0);
		}
	});
	tobe_tips.each(function(el){
		el.addClass("already_tipped");
	});
};
function hide_tips()
{
	var tips = $$(".already_tipped").each(function(el){
		el.fireEvent("mouseleave");
	});
};
function img_swap_src(obj)
{
	if(obj && obj.swap_src)
	{
		var current_src = obj.getProperty("src");
		var new_src = obj.swap_src;
		obj.setProperty("src", new_src);
		obj.swap_src = current_src;
	}
};
function swap_els(el, el2)
{
	var clone_el = el.clone();
	var clone_el2 = el2.clone();
	clone_el.injectBefore(el2);
	clone_el2.injectBefore(el);
	el.remove();
	el2.remove();
}
function swap_props(el, el2, prop, obj_prop)
{
	var el_prop = el.getProperty(prop);
	var el2_prop = el2.getProperty(prop);
	el.setProperty(prop, el2_prop);
	el2.setProperty(prop, el_prop);
	if(obj_prop)
	{
		eval("el." + prop + " = el.getProperty('" + prop + "');");
		eval("el2." + prop + " = el2.getProperty('" + prop + "');");
	}
}
function create_hidden_data_catch()
{
	if(!$("hidden_data_catch"))
	{
		var hidden_data_catch = new Element("div", {
			"styles":{
				"position":"absolute",
				"visibility":"hidden"
			},
			"id": "hidden_data_catch"
		});
		$("body").adopt(hidden_data_catch);
	}
}
function set_selected(sb, match)
{
	if($(sb))
	{
		for(ind=0; ind<$(sb).options.length; ind++)
		{
			if($(sb).options[ind].value == match)
			{
				$(sb).options[ind].selected = true;
				return $(sb).options[ind];
			}
		};
	}
	return false;
}
function ajax_it(qs, ud_el, completion_funcs)
{
	if(!completion_funcs)
	{
		completion_funcs = "";
	}
	var ajax_result = new Ajax(QUERIES_URL, {
		method: 'post',
		initialize: function()
		{
			ajax_loading_flash("Loading...");
		},
		update: ud_el,
		onComplete: function()
		{
			remove_ajax_loading_flash();
			eval(completion_funcs);
		}
	}).request(qs + random_time_qs());
}
function load_edit_form_container()
{
	/*over_focus(.5);
	var efa = $("edit_form_area");
	efa.setStyle("display", "block");
	horizontal_center(efa);
	var efa_popover_drag = new Drag.Move("edit_form_area",{
		"handle": "edit_form_container_header",
		"container": $("full_overlay")
	});*/
	$("edit_form_area").removeClass("edit_form_area_pop");
	$("edit_form_area").setStyle("display", "block");
}
function unload_edit_form_container()
{
	/*unload_over_focus();
	var efa = $("edit_form_area");
	efa.setStyle("display", "none");*/
	$("edit_form_area").addClass("edit_form_area_pop");
	$("edit_form_area").setStyle("display", "none");
}
function clear_edit_form_container()
{
	$("edit_form_container").empty();
}
function get_cursor_pos(node) {
	//node.focus(); 
	/* without node.focus() IE will returns -1 when focus is not on node */
	if(node.selectionStart) return node.selectionStart;
	else if(!document.selection) return 0;
	var c		= "\001";
	var sel	= document.selection.createRange();
	var dul	= sel.duplicate();
	var len	= 0;
	dul.moveToElementText(node);
	sel.text	= c;
	len		= (dul.text.indexOf(c));
	sel.moveStart('character',-1);
	sel.text	= "";
	return len;
}
function popup(path, w, h, win_title, b_scroll)
{
	if(b_scroll == "false" || b_scroll == "no" || b_scroll == "noscroll")
	{
		b_scroll = 0;
	}
	else if(!b_scroll || b_scroll == "true" || b_scroll == "yes" || b_scroll == "scroll")
	{
		b_scroll = 1;
	}
	var new_win = window.open(path, "e31c_popup", "status =0o, height = " + h + ", width = " + w + ", resizable = 1, menubars = 0, scrollbars = " + b_scroll);
	if (new_win != null) {new_win.focus();}
}
function valid_email()
{
	var x = document.forms[0].email.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(filter.test(x))
	{
		return true;
	}
	else
	{
		return false;
	}
}
function backup_site()
{
	ajax_it("mode=system&action=backup", "backup_result", "alert_flash('Backup executed!');");
}
function delete_backup(which_backup)
{
	ajax_it("mode=system&action=delete_backup&basename=" + which_backup, "backup_result", "alert_flash('Backup Deleted!');");
}
function logout()
{
	ajax_it("mode=session&action=destroy_session", "", "location.href='login.php';");
}
