
var MENU = {};

MENU.Visible = false;
MENU.HideThread = null;
MENU.CurrentTool;
MENU.CountPdfPages = 2;
MENU.DefaultCheckboxes = true;

MENU.Init = function() {
	MENU.CurrentTool = document.getElementById('navigationtooltab');

	setTimeout('MENU.RenderPageVisit()', 5000);

	// loop each menuitem to add indication if they are visited and/or contains sticky notes
	var menuitem = document.getElementById('menuitems').getElementsByTagName('li');
	var visitedPages = (COOKIE.Read('visitedpages')) ? COOKIE.Read('visitedpages') : '';
	for (var i = 0; i < menuitem.length; i++) {
		if (visitedPages.indexOf(menuitem[i].firstChild.href) > -1)
			menuitem[i].className += ' visited';
	}
	
	document.getElementById('menutoolbutton').className = 'selected';
	
	EVENT.Add(document.getElementById('menutools'), 'click', MENU.BeginShow);

	EVENT.Add(document.getElementById('menu'), 'click', MENU.HandleClick);
	EVENT.Add(document.getElementById('btn-downloadpdf'), 'click', MENU.DownloadPDF);
	EVENT.Add(document.getElementById('all-pages'), 'click', MENU.MarkAllCheckboxes);
	EVENT.Add(document.getElementById('menutools'), 'click', MENU.ToolClick);
	EVENT.Add(document.getElementById('topmenu'), 'mouseover', MENU.BeginShow);
	EVENT.Add(document.getElementById('topmenu'), 'mouseout', MENU.AbortShow);
	EVENT.Add(document.getElementById('menu'), 'mouseout', MENU.BeginHide);
	EVENT.Add(document.getElementById('menu'), 'mouseover', MENU.AbortHide);
	
	
	var menuBar = document.getElementById('topmenu');
	menuBar.style.left = '124px';
	setOpacity(menuBar, 0);

	LAYOUT.ReadSpeaker();
};

MENU.Show = function() {
	document.getElementById('menu').className = 'visible';
	document.getElementById('pagetools').className = 'menuvisible';
	document.getElementById('topmenu').className = 'menuvisible';
	var flash = document.getElementById('flash');
	if (flash) flash.style.display = 'none';
	MENU.ToolClick();
	MENU.Visible = true;
};

MENU.BeginShow = function() {
	MENU.HideThread = setTimeout("MENU.Show()", 300);
};
MENU.AbortShow = function() {
	if (MENU.HideThread)
		clearTimeout(MENU.HideThread);
};

MENU.Hide = function() {
	document.getElementById('menu').className = '';
	document.getElementById('pagetools').className = '';
	document.getElementById('topmenu').className = '';
	DOM.GetByClassName(document, 'DIV', 'pdf-help')[0].style.display = 'none';
	document.getElementById('searchfield').appendChild(document.getElementById('searchbox'));
	var flash = document.getElementById('flash');
	if (flash) flash.style.display = 'block';
	MENU.Visible = false;
};

MENU.BeginHide = function(e) {
	MENU.HideThread = setTimeout("MENU.Hide()", 300);
};
MENU.AbortHide = function(e) {
	if (MENU.HideThread && e.clientX < 910)
		clearTimeout(MENU.HideThread);
};

MENU.ToolClick = function(e) {

    var anchor;
    if (!e)
        anchor = document.getElementById('navigationtooltab');
    else
        anchor = (e.srcElement) ? e.srcElement : e.target;
    if (!anchor) return;
    if (anchor.tagName == 'SPAN')
        anchor = anchor.parentNode.parentNode;

    if (anchor.tagName == 'A') {
        var menuItems = document.getElementById('menuitems');

        var menutools = document.getElementById('menutools');
        var highlight = DOM.ChildNodes(menutools);

        for (var i = 0; i < highlight.length; i++) {
            var link = highlight[i].getElementsByTagName('A')[0];
            //if(link.className = 'selected' || document.getElementsByTagName('BODY')[0].className == 'tablepage'){
            if(link.className == 'selected'){
                DOM.GetByClassName(document, 'DIV', 'pdf-help')[0].style.display = 'none';
            }
            link.className = '';
        }

        document.getElementById('searchfield').appendChild(document.getElementById('searchbox'));
        switch (anchor.id) {
            case 'menutoolbutton': menuItems.className = '';
                document.getElementById('menutoolbutton').className = 'selected';
                break;
            case 'pdftooltab': 
                if (COOKIE.Read('RenderMode') != 'classic'){
					MENU.ResetCheckboxes();
					document.getElementById('pdftooltab').className = 'selected';
					DOM.GetByClassName(document, 'DIV', 'pdf-help')[0].style.display = 'block';
				}else{
					url = '../../cybercom2010'+ TRANSLATE.Lang +'.pdf';
					document.location = url;
				}
                break;
            case 'mp3tooltab': menuItems.className = 'checkboxes'; break;
            case 'visitedtooltab': menuItems.className = 'visited';
                document.getElementById('visitedtooltab').className = 'selected';
                break;
            case 'notestooltab': menuItems.className = 'notes'; break;
            case 'searchtooltab': menuItems.className = 'search'; document.getElementById('menu').appendChild(document.getElementById('searchbox')); break;
        }

        //MENU.CurrentTool.className = '';
        //document.getElementById(MENU.CurrentTool.id + 'Action').className = '';
        MENU.CurrentTool = anchor;
        MENU.CurrentTool.className = 'selected';
        //document.getElementById(MENU.CurrentTool.id + 'Action').className = 'selected';
    }
};
MENU.ResetCheckboxes = function() {
	var menuItems = document.getElementById('menuitems');
	menuItems.className = 'checkboxes';
	MENU.CountPdfPages = 2;
	var checkbox = menuItems.getElementsByTagName('input');
	for (var i = 0; i < checkbox.length; i++) {
		checkbox[i].checked = MENU.DefaultCheckboxes;
		if (checkbox[i].parentNode.attributes['rel'])
			if (checkbox[i].parentNode.attributes['rel'].value != '' && MENU.DefaultCheckboxes)
				MENU.CountPdfPages += parseInt(checkbox[i].parentNode.attributes['rel'].value);
	}
	
	/*var menuitem = menuItems.getElementsByTagName('li');
	for (var i = 0; i < menuitem.length; i++) {
	menuitem[i].firstChild.firstChild.checked = MENU.DefaultCheckboxes;
	if (menuitem[i].firstChild.attributes['rel'] && MENU.DefaultCheckboxes)
	MENU.CountPdfPages += parseInt(menuitem[i].firstChild.attributes['rel'].value);
	}*/
	document.getElementById('countpdfpages').innerHTML = MENU.CountPdfPages;
};
MENU.HandleClick = function(e) {
	if (document.getElementById('menuitems').className == 'checkboxes') {
		var anchor = (e.srcElement) ? e.srcElement : e.target;
		if (anchor.tagName == 'INPUT') {	
			if (e.preventDefault) {
				e.preventDefault();
				anchor.id = 'checkme';
				setTimeout('MENU.delayedcheck(' + anchor.checked + ')', 0);
			}
			else {
				MENU.SwapPdfCheckbox(anchor);
			}
		}
		else if (anchor.tagName == 'SPAN' && anchor.parentNode.getElementsByTagName('input').length > 0) {
			var checkbox = anchor.parentNode.getElementsByTagName('input')[0];
			checkbox.checked = !checkbox.checked;
			if (MENU.CurrentTool.id == 'pdftooltab') {
				MENU.SwapPdfCheckbox(checkbox);
			}
			EVENT.Abort(e);
		}
	}
};
MENU.delayedcheck = function(checked) {
	// function to circumvent bug in FF
	var checkbox = document.getElementById('checkme');
	checkbox.checked = checked;
	MENU.SwapPdfCheckbox(checkbox);
	checkbox.id = '';
};

/* ------------------- PDF download -------------------------------------- */

MENU.SwapPdfCheckbox = function(checkbox) {
	// is this heading checkbox?
	if (checkbox.parentNode.parentNode.parentNode.id != 'menuitems') {
		if (checkbox.checked)
			MENU.CountPdfPages += parseInt(checkbox.parentNode.attributes['rel'].value);
		else
			MENU.CountPdfPages -= parseInt(checkbox.parentNode.attributes['rel'].value);

		// if checkboxes in this set is both checked and un-checked, make the heading checkbox trisate
		var checkboxes = checkbox.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('input');
		var doCheck = checkbox.checked;
		for (var i = 1; i < checkboxes.length; i++) {
			if (checkboxes[i].checked != doCheck) {
				checkboxes[0].checked = true;
				checkboxes[0].indeterminate = true;
				document.getElementById('countpdfpages').innerHTML = MENU.CountPdfPages;
				return;
			}
		}
		checkboxes[0].checked = checkbox.checked;
		checkboxes[0].indeterminate = false;
	}
	else { // this is a heading checkbox: check och uncheck all children
		var checkboxes = checkbox.parentNode.parentNode.getElementsByTagName('input');
		var doCheck = false;
		for (var i = 1; i < checkboxes.length; i++) {
			if (!checkboxes[i].checked)
				doCheck = true;
		}
		var multiplicator = doCheck ? 1 : -1;
		for (var i = 1; i < checkboxes.length; i++) {
			if (checkboxes[i].checked != doCheck) {
				checkboxes[i].checked = doCheck;
				MENU.CountPdfPages += (parseInt(checkboxes[i].parentNode.attributes['rel'].value) * multiplicator);
			}
		}
		checkboxes[0].checked = doCheck;
		checkboxes[0].indeterminate = false;
	}
	document.getElementById('countpdfpages').innerHTML = MENU.CountPdfPages;
};
MENU.DownloadPDF = function(e) {
	var boxes = document.getElementById('menuitems').getElementsByTagName('input');
	var n = boxes.length, z = 0;
	url = 'http://hhxen0103.halvarsson.se/getpdf.aspx?company=cybercom09' + TRANSLATE.Lang + '&p=';
	for (var i = 0, box = null; i < n; i++) {
		box = boxes[i];
		if (!box.parentNode.attributes['rel'] || box.parentNode.attributes['rel'].value + '' == '') {
		}
		else {
			if (box.checked == true) {
				url = url + "t";
			}
			url = url + ",";
		}
	}
	document.location = url;
};

MENU.MarkAllCheckboxes = function(){
	var checkboxContainer = document.getElementById('menuitems');
	var checkboxes = checkboxContainer.getElementsByTagName('input');
	if(this.checked){
		for (var i = 0; i < checkboxes.length; i++) {
			if (checkboxes[i].checked == false) {
				checkboxes[i].checked = true;
				checkboxes[0].indeterminate = true;
				document.getElementById('countpdfpages').innerHTML = MENU.CountPdfPages;
			}
		}
	}else{
		for (var i = 0; i < checkboxes.length; i++) {
			if (checkboxes[i].checked == true) {
				checkboxes[i].checked = false;
				checkboxes[0].indeterminate = false;
				document.getElementById('countpdfpages').innerHTML = MENU.CountPdfPages;
			}
		}
	}
};


/* ------------------- page visits -------------------------------------- */

MENU.RenderPageVisit = function() {
	var visitedPages = COOKIE.Read('visitedpages');
	if (visitedPages != null) {
		visitedPages = visitedPages + '|'; //SEPARATOR OF URLS	
	} else {
		visitedPages = '';
	}
	if (visitedPages.indexOf(document.location) == -1) {
		visitedPages = visitedPages + document.location;
		COOKIE.Create('visitedpages', visitedPages, '365');
	}
};

MENU.ResetVisitedPages = function() {
	if (confirm(TRANSLATE.GetValue('ResetConfirm'))) {
		COOKIE.Create('visitedpages', '', '365');
		document.location.reload();
	}
};

LAYOUT.ReadSpeaker = function() {

    var pageURL = document.location.toString();
    encodedURL = escape(pageURL);
    var doubleencodedURL = escape(encodedURL);
    var mp3FileName = document.getElementsByTagName('TITLE')[0].innerHTML.toString() + '_' + document.getElementsByTagName('H1')[0].innerHTML.toString();

    //mp3FileName = mp3FileName.WebSafe();
    var pathToFlashPlayer = '../../flash/';

    var langForReadspeaker = "sv_se";
    var spara = "Spara som MP3";
    if (TRANSLATE.GetValue("lang") == "en") {
        langForReadspeaker = "en_uk";
        spara = "Save as MP3";
    }

    var customerId = 5214;

    var h1 = document.getElementsByTagName('h1')[0];
    h1.innerHTML = '<span>' + h1.innerHTML + '</span>';

    var divReadSpeaker = document.createElement('div');
    divReadSpeaker.id = 'readspeaker';
    divReadSpeaker.innerHTML =
			'<a class="readspeaker" href="javascript:;"><span>' + TRANSLATE.GetValue('ListenToPage') + '</span></a><div><object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' codebase=\'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\' height=\'25\' width=\'175\'>'
			+ '	<param name=\'movie\' value="' + pathToFlashPlayer + 'readspeaker19.swf?url=http%3A%2F%2Fapp.readspeaker.com%2Fcgi-bin%2Frsent%3Fcustomerid%3D' + customerId + '%26lang%3D' + langForReadspeaker + '%26url%3D' + doubleencodedURL + '">'
			+ '	<param name=\'quality\' value=\'high\'><param name=\'SCALE\' value=\'exactfit\'>'
			+ '	<param name=\'wmode\' value=\'transparent\'>'
			+ '	<embed wmode=\'transparent\' src="' + pathToFlashPlayer + 'readspeaker19.swf?url=http%3A%2F%2Fapp.readspeaker.com%2Fcgi-bin%2Frsent%3Fcustomerid%3D' + customerId + '%26lang%3D' + langForReadspeaker + '%26url%3D' + doubleencodedURL + '" quality=\'high\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\' type=\'application/x-shockwave-flash\' scale=\'exactfit\' height=\'25\' width=\'175\'>'
			+ '	</embed>'
			+ '</object></div>'
			+ '<a href="http://app.readspeaker.com/cgi-bin/rsent?customerid=' + customerId + '&lang=' + langForReadspeaker + '&audiofilename=' + mp3FileName + '&save=1&url=' + encodedURL + '">' + spara + '</a>';

    EVENT.Add(divReadSpeaker.getElementsByTagName('a')[0], 'click', LAYOUT.ShowReadspeaker);
    h1.appendChild(divReadSpeaker);
}

LAYOUT.ShowReadspeaker = function() {
    document.getElementById('readspeaker').className = 'visible';
};
