﻿/// <reference path="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" />

function ajaxIt(dataSource, target, appear)
{
	var XMLHttpRequestObject = false;
	var newContent = "";
	
	if(window.XMLHttpRequest)
	{
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(XMLHttpRequestObject)
	{
		XMLHttpRequestObject.open("GET", dataSource);
		
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if(XMLHttpRequestObject.readyState == 1)
			{
				document.getElementById(target).innerHTML = "<img src='http://www.knox.edu/internal/images/ajax-loader.gif' alt='Loading' />";
			}
			
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
			{
				newContent = XMLHttpRequestObject.responseText;
				newContent = getBody(newContent);
				document.getElementById(target).innerHTML = newContent;
				
				if (appear == 1)
				{
				    document.getElementById(target).style.display = "none";
				    $("#" + target).fadeIn(1000);
				}
			}
		}
		XMLHttpRequestObject.send(null);
	}
}

function getFeaturedPhoto() {
    $.get(
            "/featuredphoto/Default.aspx",
            {},
            function (data) {
                $("#photoOfDay").html($("#fpWrapper", data));
                $('a#imgLink').lightBox();
            },
            "html");
}

function displayEvent(type, id)
{
    $("#black_overlay").css("opacity", 0);
    $("#black_overlay").css("display", "block");    
    $("#black_overlay").animate({opacity:0.5}, {duration: 1000 });
    var eventURL = "http://www.knox.edu/calendar/ViewEvent.aspx?ID=" + id + "&t=" + type;
    ajaxIt(eventURL, "calViewer", 1);
    document.getElementById("calViewer").style.top = f_scrollTop2() + 50 + "px";
}

function getBody(page)
{
    return page.slice(page.indexOf(">",page.indexOf("<body")) + 1, page.indexOf("</body"));
}

function closeCalViewer()
{
    $("#calViewer").fadeOut(1000);
    $("#black_overlay").fadeOut(1000);
    setTimeout("document.getElementById('calViewer').innerHTML = '<img src=\"images/ajax_loader_lg.gif\" alt=\"Loading...\" />';", 1500);
}

function f_scrollTop2() {
	return f_filterResults2 (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}

function f_filterResults2(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function showPanel(type)
{
    if (type == "today")
    {
        if (document.getElementById("ctl00_ContentPlaceHolder1_pnlTodaysEvents").style.display == "none")
        {
            $("#ctl00_ContentPlaceHolder1_pnlTodaysEvents").fadeIn(1000);
            document.getElementById("ctl00_ContentPlaceHolder1_pnlWeeksEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlMonthsEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSingleDayEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSearchEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSelMonthsEvents").style.display = "none";
            document.getElementById("tabMonth").className = "";
            document.getElementById("tabToday").className = "current";
            document.getElementById("tabWeek").className = "";
            setTimeout('setCalRightHeight("ctl00_ContentPlaceHolder1_pnlTodaysEvents");', 500);
        }
    }
    if (type == "week")
    {
        if (document.getElementById("ctl00_ContentPlaceHolder1_pnlWeeksEvents").style.display == "none")
        {
            document.getElementById("ctl00_ContentPlaceHolder1_pnlTodaysEvents").style.display = "none";
            $("#ctl00_ContentPlaceHolder1_pnlWeeksEvents").fadeIn(1000);
            document.getElementById("ctl00_ContentPlaceHolder1_pnlMonthsEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSingleDayEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSearchEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSelMonthsEvents").style.display = "none";
            document.getElementById("tabMonth").className = "";
            document.getElementById("tabToday").className = "";
            document.getElementById("tabWeek").className = "current";
            setTimeout('setCalRightHeight("ctl00_ContentPlaceHolder1_pnlWeeksEvents");', 500);
        }
    }
    if (type == "month")
    {
        if (document.getElementById("ctl00_ContentPlaceHolder1_pnlMonthsEvents").style.display == "none")
        {
            document.getElementById("ctl00_ContentPlaceHolder1_pnlTodaysEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlWeeksEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSingleDayEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSearchEvents").style.display = "none";
            document.getElementById("ctl00_ContentPlaceHolder1_pnlSelMonthsEvents").style.display = "none";
            $("#ctl00_ContentPlaceHolder1_pnlMonthsEvents").fadeIn(1000);
            document.getElementById("tabMonth").className = "current";
            document.getElementById("tabToday").className = "";
            document.getElementById("tabWeek").className = "";
            setTimeout('setCalRightHeight("ctl00_ContentPlaceHolder1_pnlMonthsEvents");', 500);
        }
    }
}

function setCalRightHeight(el)
{
    var height;
    (document.getElementById(el).offsetHeight) ? height = document.getElementById(el).offsetHeight : height = document.getElementById(el).clientHeight;
    var styles = 'height:' + height + 'px;';
    $("#calRight").animate({ "height": height + "px" }, { "duration": 800 });
}

function clearField(el, defaultVal)
{
    if (el.value == defaultVal) el.value = "";
}
        
// toggleDisable accepts a series of elements as parameters to toggle the boolean disabled value of each
function toggleDisable()
{
    for (var i = 0; i < arguments.length; i++)
    {
        (arguments[i].disabled) ? arguments[i].disabled = false : arguments[i].disabled = true;
    }
}

function emailThisPage()
{
    //validate the form
    if(document.getElementById('emailThisFrom').value == "" || document.getElementById('emailThisTo').value == "")
    {
        alert("Please fill in all required fields before continuing.");
    }
    else
    {
        ajaxIt('http://www.knox.edu/calendar/emailThisPage.aspx?Link=' + document.getElementById('emailThisLink').value + '&eFromName=' + document.getElementById('emailThisName').value + '&eFrom=' + document.getElementById('emailThisFrom').value + '&eTo=' + document.getElementById('emailThisTo').value + '&Message=' + document.getElementById('emailThisDescription').value, 'email_body', 1);
        setTimeout(hideEmailForm, 1500);
    }
}

function emailSearchComments() {
    //validate the form
    if (document.getElementById('commentFrom').value == "") {
        alert("Please fill in all required fields before continuing.");
    }
    else {
        ajaxIt('http://www.knox.edu/calendar/searchComments.aspx?eFromName=' + document.getElementById('commentName').value + '&eFrom=' + document.getElementById('commentFrom').value + '&Message=' + document.getElementById('commentDescription').value, 'comment_body', 1);
        setTimeout(hideSearchForm, 1500);
    }
}

function hideEmailForm()
{
    $("#black_overlay").fadeOut(1000);
    $("#email_page").fadeOut(1000);
    setTimeout(resetEmailForm, 1200);
}

function hideSearchForm() 
{
    $("#black_overlay").fadeOut(1000);
    $("#searchComments").fadeOut(1000);
    setTimeout(resetSearchForm, 1200);
}

function resetEmailForm()
{
    var descText = "";
           
    var metas = document.getElementsByTagName('meta');
                    
    for (var ml = 0; ml < metas.length; ml++)
    {
      if (metas[ml].name.toLowerCase() == "description") 
      {
        descText = metas[ml].content;
      }
    }
    
   document.getElementById('email_body').innerHTML = '<dl><dt>Link:</dt><dd><input type="text" id="emailThisLink" disabled="disabled" value="' + window.location.href + '" />' +
                                                      '</dd><dt>Your Name:</dt><dd><input type="text" id="emailThisName" /></dd><dt>*Your E-mail Address:</dt><dd><input type="text" id="emailThisFrom" /></dd><dt>*<strong></strong>Recipient E-mail Address:</dt><dd><input type="text" id="emailThisTo" /></dd><dt>Message:</dt>' +
                                                      '<dd style="border-bottom: solid 1px #CCC; padding-bottom: 10px;"><textarea rows="5" cols="5" id="emailThisDescription">' + descText + '</textarea></dd>' +
                                                      '<dt>&nbsp;</dt><dd class="buttons"><input name="btnSend" type="button" value="Send" class="submitBtn" onclick="emailThisPage();return false" /><input name="btnCancel" type="button" value="Cancel" class="cancelBtn" onclick="Effect.Fade(\'black_overlay\');Effect.Fade(\'email_page\');return false" /></dd></dl>';

}

function resetSearchForm() {
    document.getElementById('comment_body').innerHTML = '<dl><dt>Your Name:</dt><dd><input type="text" id="commentName" /></dd><dt>*Your E-mail Address:</dt><dd><input type="text" id="commentFrom" />' +
                                                        '</dd><dt>Message:</dt><dd style="border-bottom: solid 1px #CCC; padding-bottom: 10px;"><textarea rows="5" cols="5" id="commentDescription"></textarea>' +
                                                        '</dd><dt><xsl:text disable-output-escaping="yes">&#160;</xsl:text></dt><dd class="buttons"><input name="btnSend" type="button" value="Send" class="submitBtn" onclick="emailSearchComments();return false" />' +
                                                        '<input name="btnCancel" type="button" value="Cancel" class="cancelBtn" onclick="Effect.Fade(\'black_overlay\');Effect.Fade(\'searchComments\');return false" /></dd></dl>';
}

function showURLEvent()
{
    var url = window.location.href;

    url = url.replace(" ", "");
    url = url.replace("%20", "");

    var eventID;
    var eventType;

    if (url.search("#") != -1)
    {
        eventID = url.substr(url.lastIndexOf("#")+1);
        eventType = eventID.substr(0,1);
        eventID = eventID.substr(1);
        if (eventType == "A" || eventType == "E")
            displayEvent(eventType, eventID);
    }
    
    if (url.search("\\?") != -1)
    {
        eventID = url.substr(url.lastIndexOf("?")+1);
        eventType = eventID.substr(0,1);
        eventID = eventID.substr(1);
        if (eventType == "A" || eventType == "E")
            displayEvent(eventType, eventID);
    }
}
