//menu

//April 11 2007 - Subha Krishnan - modified to use dynamic width and height for menus, changed direction of menu orientation
function init() {

    var offSetWidth = 0;
    var offSetHeight = 0;
    var x = document.getElementById('table1');
    var y = document.getElementById('firstrow');
    if (navigator.appName == "Netscape") {
        offSetWidth = offSetWidth + (x.offsetLeft + 2);
        offSetHeight = offSetHeight + (y.offsetTop - 2);

    }
    else {
        offSetWidth = offSetWidth + (x.offsetLeft + 2);
        offSetHeight = offSetHeight + (y.offsetTop + 8);
    }

    var imageloc = "img:images/orange_g1.jpg";
    var imageover = "img:images/orange_g1.jpg";
    menus[0] = new menu(28, "horizontal", offSetWidth, offSetHeight, 0, 0, imageloc, imageover, "Verdana,Helvetica", 9,
		"bold", "bold", "black", "#FFFFFO", 1, "black", 2, "rollover:images/tri-right1.gif:images/tri-right2.gif", false, true, true, true, 5, true, 0, 0, "black");
    menus[0].addItemIcon("index.html", "", 85, "left", "Home", 0, "../images/homered.gif");
    menus[0].addItemIcon("", "", 150, "left", "About temple", 1, "../images/about.gif");
    menus[0].addItemIcon("events.html", "", 213, "left", "Events & Activities", 3, "../images/events.gif");
    menus[0].addItemIcon("", "", 110, "left", "Services", 2, "../images/services.jpg");
    menus[0].addItemIcon("", "", 130, "left", "Membership", 4, "../images/member.gif");
    menus[0].addItemIcon("media.html", "", 154, "left", "Photo & Media", 8, "../images/media.gif");
    menus[0].addItemIcon("volunteers.html", "", 118, "left", "Volunteers", 0, "../images/volunteer.gif");
    menus[0].addItemIcon("donation.html", "", 117, "left", "Donation", 0, "../images/donation.jpg");
    menus[0].addItemIcon("contactus.html", "", 120, "left", "Contact Us", 0, "../images/direction.gif");

    //Sub Menu for 2nd Main Menu Item ("About temple"):
    menus[1] = new menu(170, "vertical", 0, 0, -5, -5, imageloc, imageover, "Verdana,Helvetica", 9, "bold",
	"bold", "black", "#FFFFFO", 1, "black", 2, "rollover:images/tri-right1.gif:images/tri-right2.gif", false, true, false, true, 6, true, 2, 2, "black");
    menus[1].addItem("overview.html", "", 22, "left", "Overview", 0);
    menus[1].addItem("milestones.html", "", 22, "left", "Key Milestones", 0);
    menus[1].addItem("hoursofoperation.html", "", 22, "left", "Hours of Operation", 0);
    menus[1].addItem("deities.html", "", 22, "left", "Deities", 0);
    menus[1].addItem("priests.html", "", 22, "left", "Priests", 0);
    menus[1].addItem("", "", 22, "left", "Management", 5);
    menus[1].addItem("volunteers.html", "", 22, "left", "Volunteers", 0);
    menus[1].addItem("contactus.html", "", 22, "left", "Contact Us", 0);

    //Sub Menu for 3rd Main Menu Item ("Services"):
    menus[2] = new menu(175, "vertical", 0, 0, 0, 0, imageloc, imageover, "Verdana,Helvetica", 9, "bold",
		"bold", "black", "#FFFFFO", 1, "black", 2, "rollover:images/tri-right2.gif:images/tri-right1.gif", false, true, false, false, 0, true, 2, 2, "black");
    menus[2].addItem("poojadetails.html", "", 22, "left", "Pooja Details", 0);
    menus[2].addItem("regularactivities.html", "", 22, "left", "Regular Poojas", 0);
    menus[2].addItem("poojaitems.html", "", 22, "left", "Pooja Items", 0);
    menus[2].addItem("library.html", "", 22, "left", "Library", 0);

    //Sub Menu for Sub Menu "Activities":
    menus[3] = new menu(175, "vertical", 0, 0, 0, 0, imageloc, imageover, "Verdana,Helvetica", 9, "bold",
		"bold", "black", "#FFFFFO", 1, "black", 2, 62, false, true, false, false, 0, true, 2, 2, "black");
    menus[3].addItem("balabhavan.html", "", 22, "left", "Bala Bhavan", 0);
    menus[3].addItem("musiccircle.html", "", 22, "left", "Music Circle", 0);
    menus[3].addItem("sanskrit.html", "", 22, "left", "Sanskrit Bhavan", 0);
    menus[3].addItem("yoga.html", "", 22, "left", "Yoga", 0);
    menus[3].addItem("youthsevasangam.html", "", 22, "left", "Youth Seva Sangam", 0);

    //Sub Menu for 4th Main Menu Item ("Membership"):
    menus[4] = new menu(180, "vertical", 0, 0, 0, 0, imageloc, imageover, "Verdana,Helvetica", 9, "bold",
		"bold", "black", "#FFFFFO", 1, "black", 2, ">>", false, true, false, false, 0, true, 2, 2, "black");
    menus[4].addItem("membership.html", "", 22, "left", "General Information", 0);
    menus[4].addItem("escrip.html", "", 22, "left", "e-scrip Membership", 0);

    //Sub Menu /for Sub Menu "Management":
    menus[5] = new menu(182, "vertical", 0, 0, 0, 0, imageloc, imageover, "Verdana,Helvetica", 9, "bold",
		"bold", "black", "#FFFFFO", 1, "black", 2, 62, false, true, false, false, 0, true, 2, 2, "black");
    menus[5].addItem("executive.html", "", 35, "left", "Executive Committee", 0);
    menus[5].addItem("boardofdirectors.html", "", 35, "left", "Board of Directors & Advisors", 0);

    //Sub Menu for Sub Menu "Volunteers":
    menus[6] = new menu(182, "vertical", 0, 0, 0, 0, imageloc, imageover, "Verdana,Helvetica", 9, "bold",
		"bold", "black", "#FFFFFO", 1, "black", 2, 62, false, true, false, false, 0, true, 2, 2, "black");
    menus[6].addItem("executive.html", "", 32, "left", "Administrative Committee", 0);
    menus[6].addItem("boardofdirectors.html", "", 22, "left", "Religious Committee", 0);
    menus[6].addItem("executive.html", "", 32, "left", "Fund Raising Committee", 0);
    menus[6].addItem("boardofdirectors.html", "", 42, "left", "Building & maintenance Committee", 0);
    menus[6].addItem("executive.html", "", 22, "left", "Cultural Committee", 0);
    menus[6].addItem("boardofdirectors.html", "", 32, "left", "Operations Committee", 0);
    menus[6].addItem("executive.html", "", 22, "left", "Membership Committee", 0);
    menus[6].addItem("boardofdirectors.html", "", 40, "left", "Finance & Internal audit Committee", 0);
    menus[6].addItem("executive.html", "", 32, "left", "Public Relations Committee", 0);

    //Sub Menu for Sub Menu "Events":
    menus[7] = new menu(182, "vertical", 0, 0, 0, 0, imageloc, imageover, "Verdana,Helvetica", 9, "bold",
		"bold", "black", "#FFFFFO", 1, "black", 2, 62, false, true, false, false, 0, true, 2, 2, "black");
    menus[7].addItem("events.html", "", 22, "left", "Upcoming Events", 0);

    //Sub Menu for Sub Menu "Photo & Media":
    menus[8] = new menu(182, "vertical", 0, 0, 0, 0, imageloc, imageover, "Verdana,Helvetica", 9, "bold",
		"bold", "black", "#FFFFFO", 1, "black", 2, 62, false, true, false, false, 0, true, 2, 2, "black");
    menus[8].addItem("photoindex_2008.html", "", 22, "left", "Photo Album", 0);
    menus[8].addItem("newsletter.html", "", 22, "left", "Newsletter", 0);
    menus[8].addItem("advertisement.html", "", 22, "left", "Advertisement", 0);
}


//AUTHOR: SUBHA KRISHNAN 
//DATE: APRIL 2009
//The following functions were added to enhance ticker feature and read xml document and display formatted text
var months = new Array(13);
months[0] = "January";
months[1] = "February";
months[2] = "March";
months[3] = "April";
months[4] = "May";
months[5] = "June";
months[6] = "July";
months[7] = "August";
months[8] = "September";
months[9] = "October";
months[10] = "November";
months[11] = "December";

var days = new Array(9);
days[0] = "Sunday";
days[1] = "Monday";
days[2] = "Tuesday";
days[3] = "Wednesday";
days[4] = "Thursday";
days[5] = "Friday";
days[6] = "Saturday";
days[7] = "FirstSunday";
days[8] = "ThirdSunday";
//days[7] = "SecondSaturday";
//days[8] = "FourthSaturday";

var Textdays = new Array(9);
Textdays[0] = "Sunday";
Textdays[1] = "Monday";
Textdays[2] = "Tuesday";
Textdays[3] = "Wednesday";
Textdays[4] = "Thursday";
Textdays[5] = "Friday";
Textdays[6] = "Saturday";
Textdays[7] = "First Sunday";
Textdays[8] = "Third Sunday";

var agent = navigator.userAgent.toLowerCase();
var mydate = new Date;
var todaydate = months[mydate.getMonth()].toUpperCase() + mydate.getDate();
var whatistoday = days[mydate.getDay()].toLowerCase();

var txt = null;
var x;
var act1;
var curdate = new Date;
var cutoffdate;
cutoffdate = new Date();
var datetodisplay;
var monthtodisplay;
var yeartodisplay;

//Returns the XML NodeName and NodeValue for current day from 'RegularActivity.xml'
//This function works for IE, Firefox and Opera
function Ticker() {
    var xmlDoc = null;
    if (window.ActiveXObject) {// code for IE
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    }
    else if (document.implementation.createDocument) {// code for Mozilla, Firefox, Opera, etc.
        xmlDoc = document.implementation.createDocument("", "", null);
    }
    else {
        alert('Your browser cannot handle this script');
    }
    if (xmlDoc != null) {
        xmlDoc.async = false;
        xmlDoc.load("Thithi.xml");
        x = xmlDoc.getElementsByTagName(todaydate);
        txt = "";
        if (x != null) {
            for (var i = 0; i < x.length; i++) {
                if ((x[i].getElementsByTagName("YAMA")[0].childNodes.length > 0) && (x[i].getElementsByTagName("YAMA")[0].childNodes[0].nodeValue.toLowerCase()) != "undefined") {
                    txt = "<marquee>";
                    //txt = x[i].getElementsByTagName("TODAYDATE")[0].childNodes[0].nodeValue;
                    txt = days[mydate.getDay()] + " " + mydate.getDate() + " " + months[mydate.getMonth()] + " " + mydate.getFullYear();
                    txt += " --- YAMA - " + x[i].getElementsByTagName("YAMA")[0].childNodes[0].nodeValue;
                    txt += " --- RAHU - " + x[i].getElementsByTagName("RAHU")[0].childNodes[0].nodeValue;
                    txt += " --- " + x[i].getElementsByTagName("OTHERINFO")[0].childNodes[0].nodeValue;
                    txt += "</marquee>";
                } //if
            } //for
            return txt;            
        } // x!=null
    } // xmldox!=null
} //function

// SAFARI
//Returns the XML NodeName and NodeValue for current day from 'Thithi.xml'
//This function works for SAFARI only
function loadThithi() {
    var url = 'Thithi.xml';
    xmlhttp = null;
    if (window.XMLHttpRequest) {// code for IE7, Firefox, Mozilla, etc.
        xmlhttp = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {// code for IE5, IE6
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp != null) {
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState != 4) return;
            if (xmlhttp.status != 200) {
                alert("Problem retrieving XML data");
                return;
            }
            x = xmlhttp.responseXML.documentElement.getElementsByTagName(todaydate);
            if (x != null) {
                for (var i = 0; i < x.length; i++) {
                    if ((x[i].getElementsByTagName("YAMA")[0].childNodes[0].nodeValue.toLowerCase()) != "undefined") {
                        txt = days[mydate.getDay()] + " " + mydate.getDate() + " " + months[mydate.getMonth()] + " " + mydate.getFullYear();
                        txt += " --- YAMA - " + x[i].getElementsByTagName("YAMA")[0].childNodes[0].nodeValue;
                        txt += " --- RAHU - " + x[i].getElementsByTagName("RAHU")[0].childNodes[0].nodeValue;
                        txt += " --- " + x[i].getElementsByTagName("OTHERINFO")[0].childNodes[0].nodeValue;
                       
                    } //if
                } //for
            } //if
        } //function
        xmlhttp.open("GET", url, false);
        xmlhttp.send(null);
        return txt;
    }
    else {
        alert("Your browser does not support XMLHTTP.");
    }
}



//Returns the XML NodeName and NodeValue for current day from 'RegularActivity.xml'
//This function works for IE, Firefox and Opera
function RegularActivity(theDay) {
    var xmlDoc1 = null;
    if (window.ActiveXObject) {// code for IE
        xmlDoc1 = new ActiveXObject("Microsoft.XMLDOM");
    }
    else if (document.implementation.createDocument) {// code for Mozilla, Firefox, Opera, etc.
        xmlDoc1 = document.implementation.createDocument("", "", null);
    }
    else {
        alert('Your browser cannot handle this script');
    }

    if (xmlDoc1 != null) {
        xmlDoc1.async = false;
        xmlDoc1.load("RegularActivity.xml");
        var act = '';
        x = xmlDoc1.getElementsByTagName(theDay);
        if (x != null) {
            if (agent.indexOf("msie") != -1) {
                var childNodescount = x[0].childNodes.length;
                //x[0] refers to <friday>
               for (var i = 0; i < childNodescount; i++) {
                   if (x[0].childNodes[i].hasChildNodes) {
                        act += "<tr><td>" + x[0].childNodes[i].nodeName + "<br></td>";
                        act += "<td><br>" + x[0].childNodes[i].childNodes[0].nodeValue + "</td></tr>";                        
                    } //if
                } //for                
            } //IF IE
            else { //FOR Mozilla, Firefox
                for (var i = 0; i < x[0].childNodes.length - 1; i++) {
                    if ((x[0].childNodes[i].nodeName != "#text") && (x[0].childNodes[i].childNodes.length > 0)) {
                        act += "<tr><td>" + x[0].childNodes[i].nodeName + "<br></td>";
                        act += "<td><br>" + x[0].childNodes[i].childNodes[0].nodeValue + "</td></tr>";  
                    }
                } //for
            } //else
        } //x!=null
        return process(act, 1);
    }
}

//RETURNS TAGNAME TO LOOKUP ON REGULARACTIVITY.XML
//Checks if secondsaturday or fourthsaturday
function WhichDay() {
    //find first or third sunday?
    if (whatistoday == "sunday") {
        //Loop throught all days of the current month, count saturdays and check if it is first sunday or third sunday
        var testdate = new Date();
        //testdate.setFullYear(2009, 10, 14); -- test date
        testdate = mydate;

        var intMonth = testdate.getMonth(); //current month
        var intYear = testdate.getFullYear(); //current year

        var dteMonth = new Date(intYear, intMonth); //set the first day of the month
        var monthDifferent = false; //Set a variable to check on the while loop
        var sundays = new Array(5);
        var sunindex = 0;

        while (!monthDifferent) {
            dteMonth.setDate(dteMonth.getDate() + 1); //create the next possible day
            var intNewMonth = dteMonth.getMonth(); //the month of the newly set date
            if (intNewMonth != intMonth)//if the month has changed
            {
                monthDifferent = true; //loop is done
            }
            else {
                // if month is same, check if it is a sunday
                if (days[dteMonth.getDay()].toLowerCase() == "sunday") {
                    //add the date to array
                    sundays[sunindex] = new Date(dteMonth.setDate(dteMonth.getDate()));
                    sunindex += 1; //array index increment
                }
            }
        }
        //first sunday is sundays[0] and third sunday is sundays[2]
        if ((testdate.getDate() == sundays[0].getDate()) && (testdate.getMonth() == sundays[0].getMonth()) && (testdate.getFullYear() == sundays[0].getFullYear())) {
            return "firstsunday";
        }
        else if ((testdate.getDate() == sundays[2].getDate()) && (testdate.getMonth() == sundays[2].getMonth()) && (testdate.getFullYear() == sundays[2].getFullYear())) {
            return "thirdsunday";
        }
        return "sunday"; //neither first nor third, just an ordinary sunday
    }
    return whatistoday;
}


//Returns the XML NodeName and NodeValue for current day from 'RegularActivity.xml'
//This function works for Safari
function SafariRegularActivity(theDay) {
    var url = 'RegularActivity.xml';
    xmlhttp1 = null;
    act1 = '';
    if (agent.indexOf("safari") != -1) {
        xmlhttp1 = new XMLHttpRequest();
        if (xmlhttp1 != null) {
            xmlhttp1.onreadystatechange = function() {
                if (xmlhttp1.readyState != 4) return;
                if (xmlhttp1.status != 200) {
                    alert("Problem retrieving XML data");
                    return;
                }
                var x1 = xmlhttp1.responseXML.documentElement.getElementsByTagName(theDay);
                if (x1 != null) {
                    for (var i = 0; i < x1[0].childNodes.length - 1; i++) {
                        if ((x1[0].childNodes[i].nodeName != "#text") && (x1[0].childNodes[i].childNodes.length > 0)) {
                            act1 += "<tr><td>" + x1[0].childNodes[i].nodeName + "<br></td>";
                            act1 += "<td><br>" + x1[0].childNodes[i].childNodes[0].nodeValue + "</td></tr>";                           
                        }
                    } //for
                } //if
            }   //function
            xmlhttp1.open("GET", url, false);
            xmlhttp1.send(null);
            return process(act1,1);
        }
        else {
            alert("Your browser does not support XMLHTTP.");
        } //xmlhttp is null
    } //safari
}

//This function calls RegularActivity for Specified Date
function CallRegActivity(theDay) {
    if (theDay.toLowerCase() == "all") {
        var i;
        txt = "<table class=special align=center width=70%><tr>";
        txt += "<td valign='top'><br>";
        for (i = 0; i <= days.length - 1; i++) {
            //            if ((days[i].toLowerCase() == "tuesday") || (days[i].toLowerCase() == "wednesday") || (days[i].toLowerCase() == "thursday")) {
            //                //skip
            //            }
            //else
            if (days[i].toLowerCase() == "sunday") {
                //skip
            }
            else {
                //                if ((days[i].toLowerCase() == "monday") || (days[i].toLowerCase() == "tuesday") || (days[i].toLowerCase() == "wednesday") || (days[i].toLowerCase() == "thursday")) {
                //                    txt += "<div class='splsubtitle'>Weekday [Monday, Tuesday, Wednesday, Thursday]</div>";
                //                }
                //                else {
                //                    txt += "<div class='splsubtitle'>Every " + Textdays[i] + "</div>";
                //                }
                txt += "<div class='splsubtitle'>Every " + Textdays[i] + "</div>";
                txt += "<table class=special width=90%>"
                if (agent.indexOf("safari") != -1) {
                    txt += SafariRegularActivity(days[i].toLowerCase());
                }
                else {
                    //alert(days[i].toLowerCase());
                    txt += RegularActivity(days[i].toLowerCase());
                }
                txt += "</table><br>";
            }
        } //for
        txt += "</td></tr></table>";
    }
    else if (theDay.toLowerCase() == "today") {
        //Return Todays Activity
        txt = "<table class=special align=center width=90%>";
        var theDay = WhichDay();
        if (theDay.toLowerCase() != "sunday") {
            if (agent.indexOf("safari") != -1)
                txt += SafariRegularActivity(WhichDay());
            else
                txt += RegularActivity(WhichDay());
        }
        txt += "</table>";
    }
    return txt;
}

//This function is used for formatting test required for display
//cond = 1 refers to formatting text for regular activity from RegularActivity.xml - this removes "TIME" from tagname and displays time [6-30AM as 6:30AM] aptly
//cond = 2 refers to formatting text for displaying THITHI info from thithi.xml ["---" is replaced with a line break] on Event.HTML
function process(act, cond) {
    var count = 0;
    var dashcount = 0;
    var wordcount = 0;
    var i;
    if (cond == 1) {
        //Regular Activity on Event.HTML
        for (i = 0; i <= act.length - 4; i++) {
            if ((act.charAt(i) == "T") && (act.charAt(i + 1) == "I") && (act.charAt(i + 2) == "M") && (act.charAt(i + 3) == "E")) {
                count += 1;
            }
            if (act.charAt(i) == "-") {
                dashcount += 1;
            }
            if ((act.charAt(i) == "T") && (act.charAt(i + 1) == "O")) {
                wordcount += 1;
            }
        }
        for (i = 0; i <= count; i++) {
            act = act.replace("TIME", "<br>");
        }
        for (i = 0; i <= dashcount; i++) {
            act = act.replace("-", ":");
        }
        for (i = 0; i <= wordcount; i++) {
            act = act.replace("TO", " to ");
        }

        return act;
    }
    else if (cond == 2) {
        //Thithi on Event.HTML
        for (i = 0; i <= act.length - 3; i++) {
            if ((act.charAt(i) == "-") && (act.charAt(i + 1) == "-") && (act.charAt(i + 2) == "-")) {
                count += 1;
            }
        }
        for (i = 0; i <= count; i++) {
            act = act.replace("---", "<br>");
        }
        return act;
    }
    else if (cond == 3) {
        //Events on EVENT.HTML
        var txt;
        txt = "<table width='80%' align='center'>"
        txt += "<tr><td class='tablehead' height='25' valign='middle' colspan='2'>Events during 2009</td></tr>"
        txt += "<tr><td class='subtitle'>Date</td><td class='subtitle'>Event</td></tr>" + act + "</table>";
        return txt;
    }
    else if (cond == 4) {
        //Events on HOME.HTML
        var txt;
        txt = "<table class='normaltext'>" + act + "</table>";
        return txt;
    }
    else if (cond == 5) {
    //bbNewsLetter
    count = 0;
        for (i = 0; i <= act.length - 3; i++) {
            if ((act.charAt(i) == "U") && (act.charAt(i + 1) == "R") && (act.charAt(i + 2) == "L")) {
                count += 1;
            }
        }
        for (i = 0; i <= count; i++) {
            act = act.replace("URL", "<br>");
        }
    }
}

//This function works for IE, Firefox and Opera
function getXMLNodes(XMLFile, XMLParentNode) {
    var xmlDoc = null;
    if (window.ActiveXObject) {// code for IE
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    }
    else if (document.implementation.createDocument) {// code for Mozilla, Firefox, Opera, etc.
        xmlDoc = document.implementation.createDocument("", "", null);
    }
    else {
        alert('Your browser cannot handle this script');
    }
    if (xmlDoc != null) {
        xmlDoc.async = false;
        xmlDoc.load(XMLFile);
        act = '';
       x = xmlDoc.getElementsByTagName(XMLParentNode);
       if (x != null) {
           if (agent.indexOf("msie") != -1) {
               //alert(x.childNodes.length);
                var childNodescount = x[0].childNodes.length;
                //x[0] refers to <friday>
                //alert(childNodescount);
                for (var i = 0; i < childNodescount; i++) {
                    if (x[0].childNodes[i].hasChildNodes) {
                        for (var j = 0 ; j < x[0].childNodes[i].childNodes.length; j++) {
                            if (x[0].childNodes[i].childNodes[j].hasChildNodes) {
                                act += x[0].childNodes[i].nodeName;
                                act += x[0].childNodes[i].childNodes[j].nodeName;
                                act += x[0].childNodes[i].childNodes[j].childNodes[0].nodeValue;                        
                            }
                        }
                        //act += 
                    } //if
                } //for                
            } //IF IE
            else { //FOR Mozilla, Firefox
                for (var i = 0; i < x[0].childNodes.length - 1; i++) {
                    if ((x[0].childNodes[i].nodeName != "#text") && (x[0].childNodes[i].childNodes.length > 0)) {
                        for (var j = 0; j < x[0].childNodes[i].childNodes.length - 1; j++) {
                            if ((x[0].childNodes[i].childNodes[j].nodeName != "#text") && (x[0].childNodes[i].childNodes[j].childNodes.length > 0)) {
                                act += "<tr><td>" + x[0].childNodes[i].nodeName + "<br></td>";
                                act += "<tr><td>" + x[0].childNodes[i].childNodes[j].nodeName + "<br></td>";
                                act += "<td><br>" + x[0].childNodes[i].childNodes[j].childNodes[0].nodeValue + "</td></tr>";
                            } //if
                        }  //for                   
                    }//if
                } //for
            } //else
        } //x!=null
        return "<table>" + act + "</table>";
    } // xmldox!=null
} //function



//This function works for IE, Firefox and Opera
function EventDisplay(XMLFile, XMLParentNode, ForPage) {
    var xmlDoc = null;
    
    if (window.ActiveXObject) {// code for IE
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    }
    else if (document.implementation.createDocument) {// code for Mozilla, Firefox, Opera, etc.
        xmlDoc = document.implementation.createDocument("", "", null);
    }
    else {
        alert('Your browser cannot handle this script');
    }
    if (xmlDoc != null) {
        xmlDoc.async = false;
        xmlDoc.load(XMLFile);
        act = '';
        x = xmlDoc.getElementsByTagName(XMLParentNode);
        if (x != null) {
            if (agent.indexOf("msie") != -1) {
                var childNodescount = x[0].childNodes.length;
                //x[0] refers to <friday>
                for (var i = 0; i < childNodescount; i++) {
                    if (x[0].childNodes[i].hasChildNodes) {
                        datetodisplay = x[0].childNodes[i].getElementsByTagName("EventDisplayDate");
                        monthtodisplay = x[0].childNodes[i].getElementsByTagName("EventDisplayMonth");
                        yeartodisplay = x[0].childNodes[i].getElementsByTagName("EventDisplayYear");

                        var arr = new Array;
                        arr[0] = yeartodisplay[0].childNodes[0].nodeValue;                        
                        arr[1] = monthtodisplay[0].childNodes[0].nodeValue;
                        arr[2] = datetodisplay[0].childNodes[0].nodeValue;

                        var DisplayDate = new Date();
                        DisplayDate.setFullYear(arr[0], arr[1]-1, arr[2]);
                        var CurrentDate = new Date();

                        if (DisplayDate >= CurrentDate)
                        {
                            var EventDateTime = x[0].childNodes[i].getElementsByTagName("EventDateTime");
                            var EventTitle = x[0].childNodes[i].getElementsByTagName("EventTitle"); //x[0].childNodes[i].childNodes[j].getElementsByTagName("EventTitle");
                            var EventURL = x[0].childNodes[i].getElementsByTagName("EventURL");
                            //alert(cutoffdate);
                        
                            act += "<tr><td height=25 class='normaltext'>" + EventDateTime[0].childNodes[0].nodeValue + "<br></td>";
                            act += "<td height=25 class='normaltext'><a target='_blank' href='" + EventURL[0].childNodes[0].nodeValue + "'>" + EventTitle[0].childNodes[0].nodeValue + "</a></td></tr>";
                               
                        }                     
                        //act += 
                    } //if
                } //for                
            } //IF IE
            else { //FOR Mozilla, Firefox
                for (var i = 0; i < x[0].childNodes.length - 1; i++) {
                    if ((x[0].childNodes[i].nodeName != "#text") && (x[0].childNodes[i].childNodes.length > 0)) {
                        datetodisplay = x[0].childNodes[i].getElementsByTagName("EventDisplayDate");
                        monthtodisplay = x[0].childNodes[i].getElementsByTagName("EventDisplayMonth");
                        yeartodisplay = x[0].childNodes[i].getElementsByTagName("EventDisplayYear");
                        
                        var arr = new Array;
                        arr[0] = yeartodisplay[0].childNodes[0].nodeValue;
                        arr[1] = monthtodisplay[0].childNodes[0].nodeValue;
                        arr[2] = datetodisplay[0].childNodes[0].nodeValue;

                        //alert(arr[0]);
                        var DisplayDate = new Date();
                        DisplayDate.setFullYear(arr[0], arr[1] -1, arr[2]);
                        var CurrentDate = new Date();

                        //alert(DisplayDate >= CurrentDate);
                        
                        //if ((curdate.getDate() <= cutoffdate.getDate()) && (curdate.getMonth() <= cutoffdate.getMonth()) && (curdate.getFullYear() <= cutoffdate.getFullYear())) {
                        if(DisplayDate >= CurrentDate){
                           var EventDateTime = x[0].childNodes[i].getElementsByTagName("EventDateTime");
                           var EventTitle = x[0].childNodes[i].getElementsByTagName("EventTitle"); 
                           var EventURL = x[0].childNodes[i].getElementsByTagName("EventURL");
                           act += "<tr><td height=25 class='normaltext'>" + EventDateTime[0].childNodes[0].nodeValue + "<br></td>";
                           act += "<td height=25 class='normaltext'><a target='_blank' href='" + EventURL[0].childNodes[0].nodeValue + "'>" + EventTitle[0].childNodes[0].nodeValue + "</a></td></tr>";
                         }                   
                    } //if
                } //for
            } //else
        } //x!=null
        var preact;
        if (act == '') {
            preact = "<div class='normaltext'>Please check again later for upcoming events.</div>";
        }
        else {
            if (ForPage == "index") {
                preact = process(act, 4);
            }
            else {
                preact = process(act, 3);
            }
        }
        return preact;
    } // xmldox!=null
} //function

function SafariEventDisplay(ForPage) { 
    var url = 'Events.xml';
    xmlhttp2 = null;
    act1 = '';
    if (agent.indexOf("safari") != -1) {
        xmlhttp2 = new XMLHttpRequest();
        if (xmlhttp2 != null) {
            xmlhttp2.onreadystatechange = function() {
                if (xmlhttp2.readyState != 4) return;
                if (xmlhttp2.status != 200) {
                    alert("Problem retrieving XML data");
                    return;
                } //xmlhttp2.status != 200
                var x2 = xmlhttp2.responseXML.documentElement; //.getElementsByTagName("TempleEvents");
                if (x2 != null) {
                    for (var i = 0; i < x2.childNodes.length; i++) {
                        if ((x2.childNodes[i].nodeName != null) && (x2.childNodes[i].nodeName.substr(0, 5) == "Event")) {
                            datetodisplay = x2.childNodes[i].getElementsByTagName("EventDisplayDate");
                            monthtodisplay = x2.childNodes[i].getElementsByTagName("EventDisplayMonth");
                            yeartodisplay = x2.childNodes[i].getElementsByTagName("EventDisplayYear");

                            var arr = new Array;
                            arr[0] = yeartodisplay[0].childNodes[0].nodeValue;
                            arr[1] = monthtodisplay[0].childNodes[0].nodeValue;
                            arr[2] = datetodisplay[0].childNodes[0].nodeValue;

                            //alert(arr[0]);
                            var DisplayDate = new Date();
                            DisplayDate.setFullYear(arr[0], arr[1] - 1, arr[2]);
                            var CurrentDate = new Date();

                            //cutoffdate.setFullYear(yeartodisplay[0].childNodes[0].nodeValue, monthtodisplay[0].childNodes[0].nodeValue - 1, datetodisplay[0].childNodes[0].nodeValue);
                            //if ((curdate.getDate() <= cutoffdate.getDate()) && (curdate.getMonth() <= cutoffdate.getMonth()) && (curdate.getFullYear() <= cutoffdate.getFullYear())) {
                            if (DisplayDate >= CurrentDate) {
                                var EventDateTime = x2.childNodes[i].getElementsByTagName("EventDateTime");
                                var EventTitle = x2.childNodes[i].getElementsByTagName("EventTitle");
                                var EventURL = x2.childNodes[i].getElementsByTagName("EventURL");
                                act1 += "<tr><td height=25 class='normaltext'>" + EventDateTime[0].childNodes[0].nodeValue + "<br></td>";
                                act1 += "<td height=25 class='normaltext'><a target='_blank' href='" + EventURL[0].childNodes[0].nodeValue + "'>" + EventTitle[0].childNodes[0].nodeValue + "</a></td></tr>";
                            } //if date is satisfied 
                        } //if
                    } //for 1
                } //x2 is not null
            }     //function
            xmlhttp2.open("GET", url, false);
            xmlhttp2.send(null);
            //return process(act1, 4);
            if (act1 == '') {
                return "<div class='normaltext'>Please check again later for upcoming events.</div>";
            }
            else{
                if (ForPage == "index") {
                    return process(act1, 4);
                }
                else {
                    return process(act1, 3);
                } 
            }                       
        } //if xmlhttp2 is not null
        else {
            alert("Your browser does not support XMLHTTP.");
        } //xmlhttp is null
    }//if Safari

}



function CalendarSwitchDiv(month) {
    var divname = "div" + month;
    if (navigator.appName == "Netscape") {
        document.getElementById("divjan").setAttribute("class", "caldiv");
        document.getElementById("divfeb").setAttribute("class", "caldiv");
        document.getElementById("divmar").setAttribute("class", "caldiv");
        document.getElementById("divapr").setAttribute("class", "caldiv");
        document.getElementById("divmay").setAttribute("class", "caldiv");
        document.getElementById("divjun").setAttribute("class", "caldiv");
        document.getElementById("divjul").setAttribute("class", "caldiv");
        document.getElementById("divaug").setAttribute("class", "caldiv");
        document.getElementById("divsep").setAttribute("class", "caldiv");
        document.getElementById("divoct").setAttribute("class", "caldiv");
        document.getElementById("divnov").setAttribute("class", "caldiv");
        document.getElementById("divdec").setAttribute("class", "caldiv");
        
        document.getElementById("divjan").style.visibility = "hidden";
        document.getElementById("divfeb").style.visibility = "hidden";
        document.getElementById("divmar").style.visibility = "hidden";
        document.getElementById("divapr").style.visibility = "hidden";
        document.getElementById("divmay").style.visibility = "hidden";
        document.getElementById("divjun").style.visibility = "hidden";
        document.getElementById("divjul").style.visibility = "hidden";
        document.getElementById("divaug").style.visibility = "hidden";
        document.getElementById("divsep").style.visibility = "hidden";
        document.getElementById("divoct").style.visibility = "hidden";
        document.getElementById("divnov").style.visibility = "hidden";
        document.getElementById("divdec").style.visibility = "hidden";
        document.getElementById(divname).style.visibility = "visible";
    }
    else {
        document.getElementById("divjan").style.display = "none";
        document.getElementById("divfeb").style.display = "none";
        document.getElementById("divmar").style.display = "none";
        document.getElementById("divapr").style.display = "none";
        document.getElementById("divmay").style.display = "none";
        document.getElementById("divjun").style.display = "none";
        document.getElementById("divjul").style.display = "none";
        document.getElementById("divaug").style.display = "none";
        document.getElementById("divsep").style.display = "none";
        document.getElementById("divoct").style.display = "none";
        document.getElementById("divnov").style.display = "none";
        document.getElementById("divdec").style.display = "none";
        document.getElementById(divname).style.display = "block";
    }

}
//dates.compare(a,b)

//Returns a number:

//-1 if a < b 
//0 if a = b 
//1 if a > b 
//NaN if a or b is an illegal date 

//dates.inRange (d,start,end)

//Returns a boolean or NaN:

//true if d is between the start and end (inclusive) 
//false if d is before start or after end. 
//NaN if one or more of the dates are illegal. 


//dates.convert

//Used by the other functions to convert their input to a date object. The input can be

//a date-object : The input is returned as is. 
//an array: Interpreted as [year,month,day]. NOTE month is 0-11. 
//a number : Interpreted as number of milliseconds since 1 Jan 1970 (a timestamp) 
//a string : Several different formats is supported, like "YYYY/MM/DD", "MM/DD/YYYY", "Jan 31 2009" etc. 
//an object: Interpreted as an object with year, month and date attributes. NOTE month is 0-11. 
//.


var dates = { convert: function(d) { return (d.constructor === Date ? d : d.constructor === Array ? new Date(d[0], d[1], d[2]) : d.constructor === Number ? new Date(d) : d.constructor === String ? new Date(d) : typeof d === "object" ? new Date(d.year, d.month, d.date) : NaN); }, compare: function(a, b) { return (isFinite(a = this.convert(a).valueOf()) && isFinite(b = this.convert(b).valueOf()) ? (a > b) - (a < b) : NaN); }, inRange: function(d, start, end) { return (isFinite(d = this.convert(d).valueOf()) && isFinite(start = this.convert(start).valueOf()) && isFinite(end = this.convert(end).valueOf()) ? start <= d && d <= end : NaN); } }
// END SCRIPT BY SUBHA KRISHNAN - APRIL 2009