// Menu vars
var menuArray = new Array();
var moving = 0;
var closeSpeed = 10;
var openSpeed = 2;

var menu1timeout;
var menu2timeout;
var menu3timeout;
var menu4timeout;
var menu5timeout;

// Menu Limits
var limit1 = 220;
var limit2 = 219;
var limit3 = 80;
var limit4 = 41;
//var limit5 = 120; //Dynamically added via Navigation.ascx

// Scroll vars
var scrollDiv;          // The page element containing the scrolling elements
var gettingAJAX = 0;    // Variable to limit the number of concurrent ajax calls.
var linkList;           // Array of link objects used to describe the scroller
var rightLimit = 1500;  // Threshold on the right for removing links when traveling left
var leftLimit = -1000;  // Threshold on the left for removing links travelling right
var rightTrigger = 1000;// Threshold on the right for creating new links when travelling left
var leftTrigger = -300; // Threshold on the left for creating new links when travelling right

var lastAJAX;           // Holds the url of the last ajax call, again to limit the number of concurrent ajax calls.
var distNew = 500;      // Distance to get of new reminders

// Date initialisation is done in PageBase.cs
var startingDay = currentlySelectedDate.getDate();
var startingMonth = currentlySelectedDate.getMonth();
var startingYear = currentlySelectedDate.getFullYear();

var scrollInterval = 10;    // Interval between calling the scroll function to make it animate.
var speed = 5;              // Distance to move the scroller per call of the scroll function

// Variables for bookmarking
var bmUrl 	= 'http://www.myreminders.co.uk';
var bmTitle = 'MyReminders.co.uk';
var bTxt	= 'Add to favorites'; 
var hTxt 	= 'Make my reminders my homepage';
var ua 		= navigator.userAgent.toLowerCase();

/////////////////////////////
// To reset the scroller to a new date simply change startingDay, startingMonth, startingYear values.
// Then simply run linkList.populateLinkList(800,1400);
// This will clear the scroller and repopulate it with 2 ajax calls.
/////////////////////////////
    
window.onload = function() {

    /////////////////
    // Runs on every page, but only initializes the scroller if the scrollDiv exists in that page.
    /////////////////
    if (scrollDiv = document.getElementById('scrollDiv')){
        linkList = new linklist();
        linkList.populateLinkList(800,1400);
    }
    
    var menuDiv = document.getElementById('menuposition');

    // Initialise menu objects
    menu1 = new Menu('submenu1');
    menu2 = new Menu('submenu2');
    menu3 = new Menu('submenu3');
    menu4 = new Menu('submenu4');
    menu5 = new Menu('submenu5');
    
    menuArray.push(menu1,menu2,menu3,menu4,menu5);
    
    // Find the maximum height of the menus
    var m1 = menu1.setLimit(limit1);
    var m2 = menu2.setLimit(limit2);
    var m3 = menu3.setLimit(limit3);
    var m4 = menu4.setLimit(limit4);
    var m5 = menu5.setLimit(limit5);
    
    closeMenu('submenu1');
    closeMenu('submenu2');  
    closeMenu('submenu3');
    closeMenu('submenu4');
    closeMenu('submenu5');
    
    menu1.setDirection(-1);menu1grow(1);
    menu2.setDirection(-1);menu2grow(1);
    menu3.setDirection(-1);menu3grow(1);
    menu4.setDirection(-1);menu4grow(1);
    menu5.setDirection(-1);menu5grow(1);    
    
    // Close the menus
    var openMenu = readCookie('menu');
    if (openMenu){ grown(openMenu);}
    
    document.getElementById('menuposition').style.display = 'block';
    timeIt();
}

/////////////////////////////////
// COOKIES
/////
// Used to store the state of the menu, so it reopens to the same place between page reloads.
/////////////////////////////////
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

/////////////////////////////////
// AJAX
/////////////////////////////////
function createXMLHttp(){
    var xmlHttp;
    try { xmlHttp = new XMLHttpRequest();}
    catch(e){
        var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
                                        'MSXML2.XMLHTTP.5.0',
                                        'MSXML2.XMLHTTP.4.0',
                                        'MSXML2.XMLHTTP.3.0',
                                        'MSXML2.XMLHTTP',
                                        'Microsoft.XMLHTTP');
        
        for (i = 0; i < XmlHttpVersions.length && !xmlHttp; i++)
        {
            try
            {
                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch(e) {}
        }
    }
    if (!xmlHttp){alert("Error creating Ajax with current browser");}
    else {return xmlHttp;}
}

function bookmark(){
    var title="My Reminders"
    var url="http://www.myreminders.co.uk"

    if (window.sidebar) window.sidebar.addPanel(title, url,"");
    else if( window.opera && window.print )
    {
        var mbm = document.createElement('a');
        mbm.setAttribute('rel','sidebar');
        mbm.setAttribute('href',url);
        mbm.setAttribute('title',title);
        mbm.click();

    }

    else if( document.all ) window.external.AddFavorite( url, title);
}

