var windowWidth=document.all? document.body.clientWidth : window.innerWidth;
var current_open_div = false;

////////////////Calendar Toolbar functions
var request_event_flag = false;
var open_toolbar_div = false;
/*function request_event() {
	new_event_data = false;
	request_event_flag = true;
	add_event(false,'calendar_spacer',false,false);
}*/

function display_toolbar_div(div_id) {
	if (open_toolbar_div!=false) {
		open_toolbar_div.style.display='none';
		if (open_toolbar_div.id == div_id) {
			open_toolbar_div = false;
			return;
		}
	}
	var toolbar = document.getElementById('calendar_date_toolbar')
	var loc = get_position(toolbar);
	
	open_toolbar_div = document.getElementById(div_id);
	close_open_windows();
	current_open_div = open_toolbar_div;
	open_toolbar_div.style.display='block';
	open_toolbar_div.style.top = loc[1]+toolbar.clientHeight+5;
	open_toolbar_div.style.left = loc[0];	
}

function toolbar_set_days(month) {
	var day = document.getElementById('go_to_day');
	var year = document.getElementById('go_to_year');
	for (var i = day.options.length; i<31;i++) {
		day.options[i] = new Option(i+1,i+1);
	}
	switch (month.options.selectedIndex+1) {
	 case 2:
	 	if (is_leap_year(year.options[year.options.selectedIndex].value)) {
			if (day.options.selectedIndex>28) day.options.selectedIndex = 28;
		 	day.options.length = 29;
		}
		else {
			if (day.options.selectedIndex>27) day.options.selectedIndex = 27;
			day.options.length = 28;
		}
		break;
	 case 4:case 6:case 9:case 11:
		if (day.options.selectedIndex>29) day.options.selectedIndex = 29;
	 	day.options.length = 30;
	 }
}


function is_leap_year(year_par) {
var year = parseInt(year_par, 10);
	if ((year % 4)==0) {
		if ((year % 100)==0) {
			if ((year % 400)==0) {
				return true;
			}
			return false;
		}
		return true;
	}
	return false;
}

function search_date_preview() {
	var searchAJAX = new aoeAJAX("view_calendar_functions.php");
	var data = new Array();
	data["from_date"] = document.getElementById('from_date').value;
	data["to_date"] = document.getElementById('to_date').value;
	data["ajax_flag"] = "get_date_previews";
	searchAJAX.setSendData(data);
	searchAJAX.setResponseCallback("display_date_preview");
	searchAJAX.send();
}

function display_date_preview(response) {
	var dates = response.split(';');
	document.getElementById('from_date_preview').innerHTML = dates[0];
	document.getElementById('to_date_preview').innerHTML = dates[1];
}
		
/////////////////End Calendar Toolbar Functions
function get_position(element) {
	var y=0;
	var x=0;
	while (element) {
		y += element.offsetTop;
		x += element.offsetLeft;
		element = element.offsetParent;
	}
	return new Array((x-1),(y-1));
}

function close(element_id) {
	if (bindings[element_id]){
		hide_event_details();
	}

	document.getElementById(element_id).style.display = 'none';

	if (open_toolbar_div!=false) {
		open_toolbar_div.style.display='none';
		open_toolbar_div = false;
	}
}

function close_open_windows() {
	if (current_open_div!=false) {
		current_open_div.style.display='none';
	}
	if (typeof(hide_event_details) == "function"){
		hide_event_details();
	}
}





var modal_dialog = new modal_dialog();


function view_event(event_id, event_manager_id)	{
	dim_main_window();		// Dim the main window
	url = "calendar_view_event.php?event_manager_id="+event_manager_id+"&event_id="+event_id;
	modal_dialog.setURL(url);
	modal_dialog.setCentered(true);
	modal_dialog.setWidth(Math.floor(get_win_width()*.9));
	modal_dialog.setHeight(Math.floor(get_win_height()*.9));
	modal_dialog.setHelp(false);
	modal_dialog.setEdge("sunken");
	modal_dialog.showScrollBars(true);
	modal_dialog.setResizable(true);
	modal_dialog.modal("modal_dialog_win");
}



function add_event(new_date, element_id)	{
	if(new_date!=false && new_date!='none')	{
		new_event_date = new_date;
	}
	else if(new_date!="none")	{
		new_event_date = current_year+"-"+(current_month<10?"0":"")+current_month+"-"+(current_day<10?"0":"")+current_day;
	}
	
	
	var em_arr = ((request_event_flag==1)?requestable_event_manager_types:insertable_event_manager_types);
	var em_count = ((request_event_flag==1)?requestable_event_manager_count:insertable_event_manager_count);
	if(em_count > 0)	{		// Just a doublecheck
		if(em_count==1) {
			for(var em_id in em_arr)	{
				if (typeof(em_arr[em_id])!="function") {
					usable_event_manager_id = em_id;
				}
			}
			add_event_helper(usable_event_manager_id, new_event_date)
		}
		else	{
			var element = document.getElementById(element_id);
			loc = get_position(element);
			// Set the title to the div
			var add_event_title = document.getElementById("add_event_title");
			add_event_title.innerHTML = ((request_event_flag==1)?"Request":"Add");
			// Then determine which list to show, and which one to hide
			var add_event_list = document.getElementById("event_manager_add_list");
			var request_event_list = document.getElementById("event_manager_request_list");
			add_event_list.style.display = ((request_event_flag==1)?"none":"block");
			request_event_list.style.display = ((request_event_flag==1)?"block":"none");
			// Then show the div
			var selector_form = document.getElementById("event_manager_type_form_div");
			selector_form.style.position = "absolute";
			selector_form.style.top = loc[1];
			selector_form.style.left = loc[0];
			close_open_windows();
			selector_form.style.display = "block";
			current_open_div = selector_form;
			if ((loc[0]+selector_form.clientWidth)>windowWidth) {
				selector_form.style.left = loc[0]-((loc[0]+selector_form.clientWidth+35) - windowWidth);
			}
			selector_form.style.zIndex = 100;
		}
	}
}


function add_event_helper(event_manager_id, new_date)	{
	if(new_date!=false && new_date!="none")	{
		new_event_date = new_date;
	}
	else if(new_date!="none")	{
		new_event_date = current_year+"-"+(current_month<10?"0":"")+current_month+"-"+(current_day<10?"0":"")+current_day;
	}
	
	dim_main_window();		// Dim the main window
	
	// Then open up the modal window
	url = "calendar_save_event.php?flag=insert&event_manager_id="+event_manager_id+"&event_start_date="+new_event_date;
	if(request_event_flag==1)	{
		url += "&is_request=1";
	}
	if(public_by_default_ems[event_manager_id]!= null && parseInt(public_by_default_ems[event_manager_id], 10)==1)	{
		url += "&public_by_default=1";
	}
	
	modal_dialog.setURL(url);
	modal_dialog.setCentered(true);
	modal_dialog.setWidth(Math.floor(get_win_width()*.9));
	modal_dialog.setHeight(Math.floor(get_win_height()*.9));
	modal_dialog.setHelp(false);
	modal_dialog.setEdge("sunken");
	modal_dialog.showScrollBars(true);
	modal_dialog.setResizable(true);
	modal_dialog.modal("modal_dialog_win");
}



// These are used to "dim" the main window when inserting/updating an event ----------------------------------------------------------------
var check_for_modal_win_interval = false;
function check_for_modal_win()	{
	try	{
		if(modal_dialog_win_return_val=="modal_is_closed" || modal_dialog_win.closed)	{		// If our window is closed, clear out the interval and the dimming div
			window.clearInterval(check_for_modal_win_interval);	// First, clear our interval
			modal_dialog_win_return_val = null;			// Then reset this back to null
			lighten_main_window();			// Then, undim the main window
			return;
		}
	}
	catch(all)	{		}
}

function dim_main_window()	{
	// First, hide all the elements that are not covered by DIVs in IE
	select_tags = document.getElementsByTagName("select");
	for(i=0; i<select_tags.length; i++)	{
		select_tags[i].style.visibility = "hidden";
	}
	iframe_tags = document.getElementsByTagName("iframe");
	for(i=0; i<iframe_tags.length; i++)	{
		iframe_tags[i].style.visibility = "hidden";
	}
	object_tags = document.getElementsByTagName("object");
	for(i=0; i<object_tags.length; i++)	{
		object_tags[i].style.visibility = "hidden";
	}
	
	// Then show the covering div
	div = document.getElementById("saving_event_div");
	div.style.width = get_win_width()+"px";
	div.style.height = get_win_height()+"px";
	div.style.left = get_win_left_pos()+"px";
	div.style.top = get_win_top_pos()+"px";
	div.style.display = "block";
	
	// Then start the interval to detect when the modal window is closed
	check_for_modal_win_interval = window.setInterval("check_for_modal_win()", 5);
}

function lighten_main_window()	{
	// First, return all the elements that are not covered by DIVs in IE
	select_tags = document.getElementsByTagName("select");
	for(i=0; i<select_tags.length; i++)	{
		select_tags[i].style.visibility = "visible";
	}
	iframe_tags = document.getElementsByTagName("iframe");
	for(i=0; i<iframe_tags.length; i++)	{
		iframe_tags[i].style.visibility = "visible";
	}
	object_tags = document.getElementsByTagName("object");
	for(i=0; i<object_tags.length; i++)	{
		object_tags[i].style.visibility = "visible";
	}
	
	// Then hide the covering div
	div = document.getElementById("saving_event_div");
	div.style.display = "none";
}

// -----------------------------------------------------------------------------------------------------------------------------------------








