﻿// JScript File
window.onload = StartJS;

var pagestart=false;
var divsrc;
var CurrentDate;
var CurrentMonth;
var CurrentYear;
var tempX;
var tempY;
var Campus = "";
var EventCat = "";
var Search = "";
var CurrentMode="day";
var now = new Date;

var IE = document.all?true:false
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
//uncomment line below to have details window close if clicked anywhere else in window.
//document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);
function StartJS()
{
    ParseQS();
    CurrentMonth=now.getMonth();
    CurrentYear=now.getFullYear();
    CurrentDate=now.getDate();
    UpdateDateTitle();
    pagestart=false;
    UpdateContent('divEventCalMainDetails',CurrentMode);
    ChangeCalView(CurrentMode)
    GetEventFilter();
	document.getElementById('hdnDate').value=(CurrentMonth+1)+"/"+CurrentDate+"/"+CurrentYear;
		
}
function ParseQS()
{
    var url=location.toString();
    //url=url.toLowerCase();
    var qss=url.substr(url.indexOf("?")+1);
    var qw=new Array()
    qs=qss.split("&");
    var i=0
    for(i=0;i<=qs.length-1;i++)
    {
        if(qs[i].indexOf("campus")==0){Campus=qs[i].substr(7)}
        if(qs[i].indexOf("eventcat")==0){EventCat=qs[i].substr(9)}
        if(qs[i].indexOf("search")==0){Search=qs[i].substr(7)}
    }
    EventCat=unescape(EventCat);
    if(Campus.toLowerCase()=="lsc-northharris"){Campus="lsc-north harris"}
    Campus=unescape(Campus);
    //alert(EventCat);

    if(EventCat!="")
        {
        var EventCatList=document.getElementById('ddlEventCat');
        for(i=0;i<=EventCatList.length-1;i++)
        {if(EventCatList.options[i].text.toLowerCase()==EventCat.toLowerCase()){EventCatList.selectedIndex=i}}
    }
    if(Search!=""){CurrentMode="month"}
    return;
}
function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  return true
}

function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
}
function checkClick(e) {
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	if (getObj('divEventDetails'))
		if (!isChild(CSE,getObj('divEventDetails')))
			getObj('divEventDetails').style.display='none';
}
function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

function UpdateDateTitle()
    {
    document.getElementById('spanCurrentMonth').innerHTML = GetMonthName(CurrentMonth) +" "+ CurrentYear;
    document.getElementById('spanCurrentDay').innerHTML = GetMonthName(CurrentMonth) +" "+ CurrentDate;
    switch(CurrentDate)
        {
            case 1:
                document.getElementById('spanCurrentDay').innerHTML += "st";
                break;
            case 2:
                document.getElementById('spanCurrentDay').innerHTML += "nd";
                break;
            case 3:
                document.getElementById('spanCurrentDay').innerHTML += "rd";
                break;
            case 21:
                document.getElementById('spanCurrentDay').innerHTML += "st";
                break;
            case 22:
                document.getElementById('spanCurrentDay').innerHTML += "nd";
                break;
            case 23:
                document.getElementById('spanCurrentDay').innerHTML += "rd";
                break;
            case 31:
                document.getElementById('spanCurrentDay').innerHTML += "st";
                break;
            default:
                document.getElementById('spanCurrentDay').innerHTML += "th";
                break;
        }
    }

function SetEventFilter(key,value)
    {
    if(key=="campus")
        {Campus=value;}
    if(key=="eventcat")
        {
            EventCat=value;
            if(EventCat=="StudentClubs"){EventCat="Student Clubs"}
        }
    GetEventFilter()
    UpdateContent('divEventCalMainDetails',CurrentMode);
    }
    
function GetEventFilter()
    {
    if (Campus=="")
        {document.getElementById('spanCampus').innerHTML = "All Campuses";}
        else
        {document.getElementById('spanCampus').innerHTML = Campus;}
    if (EventCat=="")
        {document.getElementById('spanEventCat').innerHTML = "All Event Categories";}
        else
        {document.getElementById('spanEventCat').innerHTML = EventCat;} 
    if (Search!="")
        {document.getElementById('spanSearch').innerHTML = "<br />Results for '"+Search+"'";}
    }
    
function ChangeCalView(mode)
    {
    switch(mode)
        {
            case "day":
                document.getElementById('divEventCalMainTopBarMonth').style.display='none';
                document.getElementById('divEventCalMainTopBarDay').style.display='block';
                break;
            case "month":
                document.getElementById('divEventCalMainTopBarDay').style.display='none';
                document.getElementById('divEventCalMainTopBarMonth').style.display='block';
                break;
            case "other":
                break;
        }
        CurrentMode=mode;
    //UpdateDateTitle();
    UpdateContent('divEventCalMainDetails',mode);
    //GetEventFilter();
    }
    
function ChangeDay(direction)
    {
        switch(direction)
        {
            case "back":
                CurrentDate--;
                if (CurrentDate=="0")
                {
                    CurrentMonth=CurrentMonth-1
                    if (CurrentMonth=="-1")
                    {
                        CurrentMonth=11;
                        CurrentYear=CurrentYear-1;
                    }
                    CurrentDate=GetLastDayOfMonth(CurrentMonth,CurrentYear);
                }
                break;
            case "forward":
                CurrentDate++;
                if (CurrentDate==GetLastDayOfMonth(CurrentMonth,CurrentYear)+1)
                {
                    CurrentDate=1;
                    CurrentMonth=CurrentMonth+1;
                    if (CurrentMonth=="12")
                    {
                        CurrentMonth=0;
                        CurrentYear=CurrentYear+1;
                    }
                }
                break;
        }
        UpdateContent('divEventCalMainDetails','day');
        UpdateDateTitle()
    }
    
function ChangeMonth(direction)
    {
        switch(direction)
        {
            case "back":
                CurrentMonth=CurrentMonth-1;
                if (CurrentMonth=="-1")
                {
                    CurrentMonth=11;
                    CurrentYear=CurrentYear-1;
                }
                break;
            case "forward":
                CurrentMonth=CurrentMonth+1;
                if (CurrentMonth=="12")
                {
                    CurrentMonth=0;
                    CurrentYear=CurrentYear+1;
                }
                break;
        }
        UpdateContent('divEventCalMainDetails','month');
        UpdateDateTitle()
    }

function UpdateContent(div,view)
{
    var url;
    //if (view==""){view="day"}
    divsrc=div;

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null){alert ("Your browser does not support AJAX!");return;} 

    switch(view)
        {
        case "month":
            url="/eventcalmonthview.asp?month="+(CurrentMonth+1)+"&date="+CurrentDate+"&year="+CurrentYear+"&campus="+Campus+"&eventcat="+EventCat+"&search="+Search;
            break;
        case "day":
            url="/eventcaldayview.asp?month="+(CurrentMonth+1)+"&date="+CurrentDate+"&year="+CurrentYear+"&campus="+Campus+"&eventcat="+EventCat+"&search="+Search;
            break;
        }  

    xmlHttp.onreadystatechange=stateChangedUpdateContent;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
    
}
function stateChangedUpdateContent() 
{ 
    if (xmlHttp.readyState==4)
    {
    document.getElementById(divsrc).innerHTML=xmlHttp.responseText;
    if(pagestart==true)
    {
	    var rowtoday=document.getElementById('istoday');
	    window.scrollTo(0,Top(rowtoday));
	    pagestart=false;
	}
    }
}

//if content has multi values then needs to be xmldata
//function stateChangedXMLStuff() 
//{ 
//    if (xmlHttp.readyState==4)
//    {
//    var xmlDoc=xmlHttp.responseXML.documentElement;
//    var MainData=xmlDoc.getElementsByTagName("maindata")[0].childNodes[0].nodeValue;
//    var MainDate=xmlDoc.getElementsByTagName("maindate")[0].childNodes[0].nodeValue;
//    document.getElementById(divsrc).innerHTML=MainData;
//    document.getElementById('spanCurrentMonth').innerHTML=MainDate;
//    }
//}

function Hide(obj)
	{document.getElementById(obj).style.display="none";}

function closediv(div)
	{document.getElementById(div).innerHTML="";}

function GetMonthName(MonthToUse)
	{
		var month=new Array(12);
		month[0]="January";
		month[1]="February";
		month[2]="March";
		month[3]="April";
		month[4]="May";
		month[5]="June";
		month[6]="July";
		month[7]="August";
		month[8]="September";
		month[9]="October";
		month[10]="November";
		month[11]="December";
		return month[MonthToUse];
	}
	
function GetLastDayOfMonth(MonthToUse,YearToUse)
	{
		var month=new Array(12);
		month[0]=31;
		month[1]=((YearToUse % 4 == 0) || (YearToUse % 100 == 0) || (YearToUse % 400 == 0))?29:28;
		month[2]=31;
		month[3]=30;
		month[4]=31;
		month[5]=30;
		month[6]=31;
		month[7]=31;
		month[8]=30;
		month[9]=31;
		month[10]=30;
		month[11]=31;
		return month[MonthToUse];
	}
	
function EventDetails(id,obj)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){alert ("Your browser does not support AJAX!");return;} 
    var div=document.getElementById('divEventDetails');

	if (IE)
	{div.style.top = ((Top(obj))-230)+"px";}
	else
	{div.style.top=(tempY-230)+"px";}   
	div.style.left=tempX+"px";
	div.style.display="block";
	var url="/eventcaldetails.asp?id="+id;
    xmlHttp.onreadystatechange=stateChangedEventDetails;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);    
}

function stateChangedEventDetails() 
{ 
    if (xmlHttp.readyState==4)
    {
    //alert(xmlHttp.responseText);
    var xmlDoc=xmlHttp.responseXML.documentElement;
    //alert(xmlDoc.getElementsByTagName("details")[0].childNodes[0].nodeValue);
    try
		{
		var details=xmlDoc.getElementsByTagName("details")[0].childNodes[0].nodeValue;
		var detailstemp=escape(details);
		detailstemp=detailstemp.replace(/%0A/g,"<br />");
		document.getElementById('divDetails').innerHTML=unescape(detailstemp);//details;
		}
    catch (err)
		{document.getElementById('divDetails').innerHTML="";}
    try
		{
			var weblink=xmlDoc.getElementsByTagName("weblink")[0].childNodes[0].nodeValue;
			if(weblink.length>1){
			if(weblink.indexOf("http://")<0)
			{weblink="http://"+weblink}
			document.getElementById('divWeblink').innerHTML="<a href='"+weblink+"' target='_blank'>"+weblink+"</a>";}
		}
    catch (err)
		{document.getElementById('divWeblink').innerHTML="";}
    }
}

function ViewSelectedDate(smonth,sdate,syear)
{
	CurrentMonth=smonth-1;
	CurrentDate=sdate;
	CurrentYear=syear;
	UpdateDateTitle();
	ChangeCalView('day');
}

var StyleFontWeight;
function MOver(obj)
{
	StyleFontWeight=obj.style.fontWeight;
	obj.style.fontWeight="bold";
}
function MOut(obj)
{
	obj.style.fontWeight=StyleFontWeight;
}
function SearchQuery()
{
    var querystring=document.getElementById('txtSearch').value;
    if(querystring=="")
    {window.location="?";}
    else
    {window.location="?search="+querystring;}
}
