﻿// JScript File
//window.onload = StartJS;

function GetXmlHttpObject()
{var xmlHttp=null; try {xmlHttp=new XMLHttpRequest();} catch (e) {try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");} } return xmlHttp;}

var xmlHttp;
var URL;
var TargetDIV;
var pagestart=false;
var divsrc;
var CurrentDate;
var CurrentMonth;
var CurrentYear;
var tempX;
var tempY;
var Campus = "";
var EventType = "";
var Search = "";
var CurrentMode="day";
var now = new Date;
var StyleFontWeight;
var EventDetailsID;

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 random()
    { return (Math.random()*Date.parse(new Date())); }


function StartJS()
{
    LoadCampusList();
    LoadEventTypeList();
    ParseQS();
    CurrentMonth=now.getMonth();
    CurrentYear=now.getFullYear();
    CurrentDate=now.getDate();
    UpdateDateTitle();
    pagestart=false;
    UpdateContent('divECMainDetails',CurrentMode);
    ChangeCalView(CurrentMode)
    GetEventFilter();
	document.getElementById('hdnDate').value=(CurrentMonth+1)+"/"+CurrentDate+"/"+CurrentYear;
}

function ParseQS()
{
    var url=location.toString();
    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("eventtype")==0){EventType=qs[i].substr(10)}
        if(qs[i].indexOf("search")==0){Search=qs[i].substr(7)}
    }
    EventType=unescape(EventType);
    if(Campus.toLowerCase()=="lsc-northharris"){Campus="lsc-north harris"}
    Campus=unescape(Campus);

    if(EventType!="")
        {
        var EventTypeList=document.getElementById('ddlEventType');
        for(i=0;i<=EventTypeList.length-1;i++)
        {if(EventTypeList.options[i].text.toLowerCase()==EventType.toLowerCase()){EventTypeList.selectedIndex=i}}
    }
    if(Search!=""){CurrentMode="monthlist";ChangeCalView("monthlist");
	document.getElementById("ddlECalView").value="monthlist";}
    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 SetEventFilter(key,value)
    {
    if(key=="campus") { Campus=value; }
    if(key=="eventtype")
        {
            EventType=value;
            if(EventType=="StudentClubs"){EventType="Student Clubs"}
        }
    GetEventFilter()
    
    UpdateContent('divECMainDetails',CurrentMode);
    }
    
function GetEventFilter()
    {
    if (Campus=="")
        {document.getElementById('spanCampus').innerHTML = "All Campuses";}
        else
        {document.getElementById('spanCampus').innerHTML = Campus;}
    if (EventType=="")
        {document.getElementById('spanEventType').innerHTML = "All Event Categories";}
        else
        {document.getElementById('spanEventType').innerHTML = EventType;} 
    if (Search!="")
        {document.getElementById('spanSearch').innerHTML = "<br />Results for '"+Search+"'";}
    }
    
function ChangeCalView(mode,ddlItem)
    {
    if (mode==''){mode=ddlItem.value};
    CurrentMode=mode;
    UpdateContent('divECMainDetails',mode);
    }

function UpdateDateTitle()
    {
    var ViewMode=document.getElementById("ddlECalView").value;
    var divCurrentDate=document.getElementById("divCurrentDate")
    divCurrentDate.title=(CurrentMonth+1)+"/"+CurrentDate+"/"+CurrentYear;
    switch(ViewMode)
        {
        case "day":
            divCurrentDate.innerHTML = GetMonthName(CurrentMonth) +" "+ CurrentDate;
            switch(CurrentDate)
                {
                    case 1: divCurrentDate.innerHTML += "st"; break;
                    case 2: divCurrentDate.innerHTML += "nd"; break;
                    case 3: divCurrentDate.innerHTML += "rd"; break;
                    case 21: divCurrentDate.innerHTML += "st"; break;
                    case 22: divCurrentDate.innerHTML += "nd"; break;
                    case 23: divCurrentDate.innerHTML += "rd"; break;
                    case 31: divCurrentDate.innerHTML += "st"; break;
                    default: divCurrentDate.innerHTML += "th"; break;
                }
            divCurrentDate.innerHTML += ", " + CurrentYear;
            break;
        case "month":
        case "monthlist":
            divCurrentDate.innerHTML = GetMonthName(CurrentMonth) +" "+ CurrentYear;
            break;
        }
    }
    
   
function ChangeDate(direction)
    {
        var ViewMode=document.getElementById("ddlECalView").value;
        
        switch(direction)
        {
        case "back":
            switch(ViewMode)
            {
            case "day":
                CurrentDate--;
                if (CurrentDate=="0")
                {
                    CurrentMonth=CurrentMonth-1
                    if (CurrentMonth=="-1")
                    { CurrentMonth=11; CurrentYear=CurrentYear-1; }
                    CurrentDate=GetLastDayOfMonth(CurrentMonth,CurrentYear);
                }break;
                
            case "month":
            case "monthlist":
                ViewMode="month";
                CurrentMonth=CurrentMonth-1;
                if (CurrentMonth=="-1")
                { CurrentMonth=11; CurrentYear=CurrentYear-1; }
                break;
            }
            break;
        case "forward":
            switch(ViewMode)
            {
            case "day":
                CurrentDate++;
                if (CurrentDate==GetLastDayOfMonth(CurrentMonth,CurrentYear)+1)
                {
                    CurrentDate=1;
                    CurrentMonth=CurrentMonth+1;
                    if (CurrentMonth=="12")
                    { CurrentMonth=0; CurrentYear=CurrentYear+1; }
                } break;
            case "month":
            case "monthlist":
                ViewMode="month";
                 CurrentMonth=CurrentMonth+1;
                if (CurrentMonth=="12")
                { CurrentMonth=0; CurrentYear=CurrentYear+1; }
                break;
            }
            break;
        }
        UpdateContent('divECMainDetails',ViewMode); UpdateDateTitle()
    }


function UpdateContent(div,view)
{
    var url;
    divsrc=div;
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null){alert ("Your browser does not support AJAX!");return;} 

    switch(view)
        {
        case "monthlist":
            url="/ec_monthviewlist.asp?month="+(CurrentMonth+1)+"&date="+CurrentDate+"&year="+CurrentYear+"&campus="+Campus+"&eventtype="+EventType+"&search="+Search+"&"+random();
            break;
        case "month":
            url="/ec_monthview.asp?month="+(CurrentMonth+1)+"&date="+CurrentDate+"&year="+CurrentYear+"&campus="+Campus+"&eventtype="+EventType+"&search="+Search+"&"+random();
            break;
        case "day":
            url="/ec_dayview.asp?month="+(CurrentMonth+1)+"&date="+CurrentDate+"&year="+CurrentYear+"&campus="+Campus+"&eventtype="+EventType+"&search="+Search+"&"+random();
            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;
	}
	UpdateDateTitle();
    }
}

function GetMonthName(MonthToUse)
	{ var month=new Array('January','February','March','April','May','June','July','August','September','October','November','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 CloseMe(obj)
    { $("#"+obj).fadeOut(300); }
    
function EventDetails(id,obj)
{ 
    xmlHttp=GetXmlHttpObject();if (xmlHttp==null){alert ("Your browser does not support AJAX!");return;} 
    EventDetailsID=id;
    if (obj=="month"){EventDetailsID='';obj='true';}
	var url="/ec_details.asp?id="+id+"&month="+obj+"&"+random();
    xmlHttp.onreadystatechange=stateChangedEventDetails;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);    
}

function stateChangedEventDetails() 
{ 
    if (xmlHttp.readyState==4)
    {
        var xmlDoc=xmlHttp.responseXML.documentElement;
        var divED = document.getElementById('divECDetails'+EventDetailsID);
        divED.innerHTML = "";
        if (CurrentMode=="month")
        {
            divED.innerHTML += "<b>Title:</b>&nbsp; <span style='font-size:medium;'>"+xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue + "</span><br />" +
                               "<b>Start:</b> "+xmlDoc.getElementsByTagName("startdate")[0].childNodes[0].nodeValue + "<br />";
                               
            if (xmlDoc.getElementsByTagName("enddate")[0].childNodes[0].nodeValue.indexOf("11:59:59 PM")<0)
            {
                divED.innerHTML += "<b>End:</b>&nbsp;&nbsp; "+xmlDoc.getElementsByTagName("enddate")[0].childNodes[0].nodeValue + "<br />";
            }
            divED.innerHTML += "<b>Campus:</b>&nbsp;&nbsp; "+xmlDoc.getElementsByTagName("campus")[0].childNodes[0].nodeValue + "<br />" + 
                               "<b>Event Type:</b>&nbsp;&nbsp; "+xmlDoc.getElementsByTagName("eventtype")[0].childNodes[0].nodeValue + "<br />";
        }
        divED.innerHTML += "<b>Description:</b><br />"+xmlDoc.getElementsByTagName("details")[0].childNodes[0].nodeValue;
        var weblink="";
        //alert(xmlDoc.getElementsByTagName("weblink")[0].childNodes[0].nodeValue);
        
		weblink=xmlDoc.getElementsByTagName("weblink")[0].childNodes[0].nodeValue;
		
		
		var closelink=xmlDoc.getElementsByTagName("closelink")[0].childNodes[0].nodeValue;
		if(weblink.length>1)
		{
		    if(weblink.indexOf("http://")<0)
		    {weblink="http://"+weblink}
		    weblink="<a href='"+weblink+"' target='_blank'>"+weblink+"</a>";
		}
		divED.innerHTML += "<br /><br />" + weblink;
		divED.innerHTML += "<br /><br />" + closelink;
		$(divED).hide();
		$(divED).fadeIn(300);
    }
}

function ViewSelectedDate(smonth,sdate,syear)
{
	CurrentMonth=smonth-1;
	CurrentDate=sdate;
	CurrentYear=syear;
	ChangeCalView("day");
	document.getElementById("ddlECalView").value="day";
	UpdateDateTitle();
}

 
function SearchQuery()
{
    var querystring=document.getElementById('txtSearch').value;
    if(querystring=="")
    {window.location="?";}
    else
    {window.location="?search="+querystring;}
}


var tempX;
var tempY;

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{ curtop += obj.offsetTop; obj = obj.offsetParent; }
	}
	else if (obj.y)	curtop += obj.y;
	return curtop;
}


function LoadCampusList()
{
    xmlHttpCL=GetXmlHttpObject();if (xmlHttpCL==null){alert ("Your browser does not support AJAX!");return;} 
    xmlHttpCL.onreadystatechange=LoadCampusListReturn;
    xmlHttpCL.open("GET","ec_campuslist.asp?"+"&r="+random(),true);
    xmlHttpCL.send(null);
}
function LoadCampusListReturn() 
{ 
    if (xmlHttpCL.readyState==4)
    {
        var ddl = document.getElementById('ddlCampusList');
        var div = document.getElementById('divCampusList');
        var Campus=xmlHttpCL.responseText.split(",");
        var ddlOpt = document.createElement('option'); ddlOpt.text = "All Campuses"; ddlOpt.value = ""; try {ddl.add(ddlOpt, null);} catch(ex) {ddl.add(ddlOpt);}   
        for (x=0;x<Campus.length;x++)
        {
            var ddlOpt = document.createElement('option');
            ddlOpt.text = Campus[x]; ddlOpt.value = Campus[x];
            try {ddl.add(ddlOpt, null);} catch(ex) {ddl.add(ddlOpt);}   
        }
    }
}
function LoadEventTypeList()
{
    xmlHttpETL=GetXmlHttpObject();if (xmlHttpETL==null){alert ("Your browser does not support AJAX!");return;} 
    xmlHttpETL.onreadystatechange=LoadEventTypeListReturn;
    xmlHttpETL.open("GET","ec_eventtypelist.asp?nohide=true"+"&r="+random(),true);
    xmlHttpETL.send(null);
}
function LoadEventTypeListReturn() 
{
    if (xmlHttpETL.readyState==4)
    {
        var ddl = document.getElementById('ddlEventType');
        var div = document.getElementById('divEventType');
        var EventType=xmlHttpETL.responseText.split("|");
        var ddlOpt = document.createElement('option'); ddlOpt.text = "All Events"; ddlOpt.value = ""; try {ddl.add(ddlOpt, null);} catch(ex) {ddl.add(ddlOpt);}
        
        for (x=0;x<EventType.length;x++)
        {
            var ddlOpt = document.createElement('option');
            ddlOpt.text = EventType[x]; ddlOpt.value = EventType[x];
            try {ddl.add(ddlOpt, null);} catch(ex) {ddl.add(ddlOpt);}
        }
    }
}

function ShowEvent()
    {
        var url=location.toString();
        var id=url.substr(url.indexOf("?")+4);
        xmlHttp=GetXmlHttpObject();if (xmlHttp==null){alert ("Your browser does not support AJAX!");return;} 
        xmlHttp.onreadystatechange=ShowEventReturn;
        xmlHttp.open("GET","ec_showevent.asp?id="+id+"&r="+random(),true);
        xmlHttp.send(null);
    }
function ShowEventReturn()
    { if (xmlHttp.readyState==4) { document.getElementById('divECBody').innerHTML=xmlHttp.responseText; } }