﻿// Functions and variables used in most EMPro pages
//BASE Version
var UsesMiniCal = true;
var ContentPage = '';
var SelectedTab = '';

var searchStr='';
var catList = '';
var calList = '';
var date = new Date();
var date2 = null;
var miniMonth = new Date();
var macroMonth = new Date();

var ctDate = 'date';
var ctDateTo = 'dateTo'
var ctSearch = 'search';
var ctCalendar = 'cal';
var ctCategory = 'cat'
var ctMiniDisplay = 'minidisplay'
var ctMacroDisplay = 'macrodisplay'

var ValidPages = new Array();

var EmptySearchTxt ='Search Events'

function OnChange(changeType, changeValue)
{
    ChangeValues(changeType, changeValue)
    WriteResponse("divDataArea", "");
    document.getElementById("LoadingImage").style.display = "";
	//update the minical 1st, if applicable
	if (UsesMiniCal)
		UpdateMiniCal();
	else
		UpdateDataArea();
	
}

function ChangeValues(changeType, changeValue)	
{
	switch(changeType)
	{
		case ctDate:
			date = changeValue;
			break;
		case ctDateTo:
			date2 = changeValue;
			break;
		case ctSearch:
			searchStr = changeValue;
			break;
		case ctCalendar:
			calList = changeValue;
			break;
		case ctCategory:
			catList = changeValue;
			break;		
		case ctMacroDisplay:
		case ctMiniDisplay:
			macroMonth = changeValue;
			miniMonth = changeValue;
			break;
	}
}

function GetQS()
{
	var qs = '';
	try	
		{qs= "?date="+date.toDateString();}
	catch(ex)
		{qs= "?date="+date;}
	
	try	
		{qs += "&minidisp="+miniMonth.toDateString();}
	catch(ex)
		{qs += "&minidisp="+miniMonth;}
	try	
		{qs += "&macrodisp="+macroMonth.toDateString();}
	catch(ex)
		{qs += "&macrodisp="+macroMonth;}
	
	if (date2 != null)
	{
		try		
			{qs+="&dateTo="+date2.toDateString();}
		catch (ex)
			{qs+="&dateTo="+date2;}
	}
		
	if (searchStr != '')
		qs += "&search="+searchStr;
	
	if (calList != '')
		qs += "&cals="+calList;
	
	if (catList != '')
		qs +="&cats="+catList;
		
	return qs;
}

function UpdateMiniCal()
{
	
	var loader1 = new net.ContentLoader('/events/ajaxcontrols/smallcalendar.aspx'+GetQS(), WriteMiniCal,null,"GET","");
}

function WriteMiniCal()
{
	var innerHTML = this.req.responseText;			
	WriteResponse("divMiniCal", innerHTML );
	//once the minical is updated, update the data area	
	UpdateDataArea();
}

function UpdateDataArea()
{
	if (ContentPage == '')
		alert("No Content Page Defined.\nThis should be DayView.aspx, LargeCalendar.aspx, ListView.aspx, or WeekView.aspx");
	var loader1 = new net.ContentLoader('/events/ajaxcontrols/'+ContentPage+GetQS(), WriteDataArea,null,"GET","");
}

function WriteDataArea()
{
	var innerHTML = this.req.responseText;
	WriteResponse("divDataArea", innerHTML);
	document.getElementById("LoadingImage").style.display = "none";
}

function WriteResponse (container, innerHTML)
{
	var divlist = document.getElementById(container);
	divlist.innerHTML = "";
	divlist.innerHTML = innerHTML;
}

function ChangeView(ajaxPage, tab, showSched)
{

	//clear out the search text box
	document.getElementById('txtEMSearch').value = EmptySearchTxt;
	
	if (showSched.toLowerCase() == 'true')
	{
		document.getElementById('divMiniCal').style.display="none";
		document.getElementById('divShchedContainer').style.display="";
	}
	else
	{
		document.getElementById('divShchedContainer').style.display="none";
		document.getElementById('divMiniCal').style.display="";		
	}

	// first get the tab to change
	if (SelectedTab != '')
	{
		tabobj = document.getElementById(SelectedTab);
		tabobj.Class = tabobj.Class.replace(" selected", "");
	}
	
	tabobj = document.getElementById(tab);
	tabobj.Class += " selected";
	SelectedTab = tab;

	// then change the content
	ContentPage = ajaxPage;	
	OnChange(null, null);
}

function doSearchPageActual(searchStr)
{

	if (searchStr == EmptySearchTxt)
		return;
		
	// prep for change to list view
	
	document.getElementById('divMiniCal').style.display="none";
	document.getElementById('divShchedContainer').style.display="";

	var tabobj;
	// first get the tab to change
	if (SelectedTab != '')
	{
		tabobj = document.getElementById(SelectedTab);
		tabobj.Class = tabobj.Class.replace(" selected", "");
	}
	
	tabobj = document.getElementById(ListTab);
	tabobj.Class += " selected";
	SelectedTab = ListTab;

	// then change the content
	ContentPage = 'ListView.aspx';	
	OnChange(ctSearch, searchStr);
}

