document.observe("dom:loaded", function() {
	bondPage();
	popup();
	selectOption();
	printTabs();
});

// get the questionnaire uri from column and when tr is clicked send user off to relevant deal
/*function dealLink() {
	$$("table.prototools-table").invoke('observe','click',
		function(event) {
			var element = Event.element(event);
			
			if (element.tagName == 'A') {
				// do nothing
			}
			else {
				var projectLink = element.up('tr').down('td.data-grid-project-container-column-ProjectLink').down('span').innerHTML;
				
				var a =  element.up('tr').down('td.data-grid-project-container-column-ProjectLink');
				console.log(a);
				console.log(element);
				if (typeof projectLink !== 'undefined') {
					window.open('http://' + window.location.hostname + '/infradeals/' + projectLink);
				}
			}
		}
	);
}*/


function popup() {
	var projectFilter = $('project-filter');
	
	if (projectFilter) {
	
		projectFilter.observe('click',
			function(event) {
				var element = Event.element(event);
				
				if (element.hasClassName('show-popup') || element.up().hasClassName('show-popup') ) {
					
					// Need to do all this as height of popup could be variable
					var filterDiv = element.up('div');
					var popupHeight = element.up('h3').previous('div').getHeight();
					
					var divToShow = element.up('h3').previous('div');
					divToShow.setStyle({
						top: '-' + (popupHeight - 85) + 'px',
						left: '-15px'
					}).appear({
						duration: 0.5,
						/*beforeStart: function() {
							new Effect.ScrollTo("navigation");
						},*/
						afterFinish: function() {
							// IE 6/7/8 has problems doing fade/appear with transparent png24 showing black background during transition
							// so to fix this a white bg colour is applied and removed during the transition, not perfect but better than black
							divToShow.removeClassName('white-bg');
						}
					});
					
				}			
				
				if (element.hasClassName('button-inner')) {
					
					var filterDiv = element.up('div.filter');
					var h4InputValue = filterDiv.down('h4.input-value');
					
					// Insert checkbox values into div
					h4InputValue.childElements().invoke('remove');
					
					element.up().previous('div.on').childElements().each (
						function (selectedDivInputs) {
							if (selectedDivInputs.checked) {
								labelValue = selectedDivInputs.next().innerHTML;
								
								h4InputValue.insert("<span>" + labelValue + ", </span>");							
							}
						}
					);
					
					var spanElements = h4InputValue.down('span');
					if (spanElements) {
						h4InputValue.appear({ duration: 0.5 });
					}
					else {
						h4InputValue.hide();
					}
					
					// Remova comma from last element
					var lastSpan = h4InputValue.childElements().last();
					if (typeof lastSpan !== 'undefined') {
						var lastSpanValue = lastSpan.innerHTML.replace(/\, /g, '');
						lastSpan.update(lastSpanValue);
					}
					
					// Insert select value into div
					var selectMenu = element.up().previous('select');
					
					if (typeof selectMenu !== 'undefined') {
						var selectedOption = selectMenu.options[selectMenu.selectedIndex].text;
						
						var selectOption = filterDiv.down('h4.select-option');					
						
						if (selectedOption == 'Select a region...') {
							selectOption.hide();
						}
						else if (selectedOption == 'Select a sector...') {
							selectOption.hide();
						}
						else if (typeof selectOption !== 'undefined') {
							selectOption.update('').insert("[" + selectedOption + "]").appear({ duration: 0.5 });
						}
						
					}
					
					// Hide options div					
					var divToFade = element.up('div.option-popup');
					divToFade.fade({
						duration: 0.5,
						beforeStart: function() {
							divToFade.addClassName('white-bg');
						}
					});
					
				}			
				
			}
		);
	}
}

function selectOption() {
	$$('select').invoke('observe','change',
		function(event) {
			var element = Event.element(event);
			
			// convert value to lowercase and replace spaces with dashes
			var optionValue = $F(element).toLowerCase().replace(/\ /g, '-');
			
			// hide/show divs based on select value
			element.siblings().invoke('removeClassName','on');
			element.siblings().each(
				function(sibling) {
					if (sibling.className == 'multi-checkbox') {
						sibling.hide();				
						
						sibling.childElements().each(
							function (checkbox) {
								if (checkbox.tagName.toLowerCase() == 'input') {
									checkbox.checked = false;
								}
							}
						);
						
						var divID = sibling.identify();
						
						if (divID == optionValue) {
							sibling.show().addClassName('on');
						} 
						
					}
				}
			);
			
			var selectID = element.readAttribute('id');
			
			if ( (optionValue == '') && (selectID == 'option-region') ) {
				$("select-region").show().addClassName('on');
			}
			else if ( (optionValue == '') && (selectID == 'option-sector')) {
				$("select-sector").show().addClassName('on');
			}
			
		}
	);
}

function bondPage() {
	var bonds = $('bonds-page');
	if (bonds) {
		$$('body#bonds-page table.funding-entries tr:first-child td').invoke('addClassName', 'highlight-row');
		$$('body#bonds-page table.funding-entries tr:nth-child(2n)').invoke('addClassName','even');
	}
}

function replaceText() {
	var urlPath = window.location.pathname.replace(/[^\/]*$/, "");

	element = null;


	if(urlPath == '/infradeals/bonds/'){
		var searchDiv = $("data-grid-project-container-search");
		if (searchDiv) {
			$("data-grid-project-container-search").update('Filter by Issuer Name : <input type="text" value="" id="data-grid-project-container-search-data">')
		}
	}
}


function printTabs() {	
	$$('#browse-tabs a').each(
		function(tab) {
			tab.observe('click',
				function(event) {
					var divShown = this.readAttribute('rel');
					document.cookie = 'tab=' + divShown + '; path=/'
				}
			);
		}
	);
	
	var printArticle = $('deals-print');
	if (printArticle) {
		var tabCookie = readCookie('tab');
		
		if (tabCookie !== null) {
			// show tab
			$$('#browse-tabs a').each(
				function(tab) {
					tab.removeClassName('on');
					
					var tabRel = tab.readAttribute('rel');					
					if (tabCookie == tabRel) {
						tab.addClassName('on');
					}
					
				}
			);
			
			// show content
			$$('div.active').invoke('removeClassName','active');
			$(tabCookie).addClassName('active');		
		}
	}
}