(function($){
	$(document).ready(function() {
		$('input.reset').focus(function(){
			var currentVal = $(this).val();										// Read initial field value
			$(this).val('');														// Clear initial value

			$(this).blur(function(){
				var getNewVal = $(this).val();										// Read new input value
				if ( getNewVal == '' || getNewVal == ' ' ) {
					$(this).val(currentVal);										// Switch to initial value
				}
			});
		});
		
		// fix PNG for IE6
		if ( $.browser.msie && $.browser.version == '6.0' ) {
			DD_belatedPNG.fix('div, a, img, li, input, em, label');
			$('#footer ul li.middle a:last').css('margin-right','-3px');
		}

		//Remove outline from links
		$("a").click(function(){
			$(this).blur();
		});

		
		// remove any borders on last LI element
		$("ul, dl").not('#register div.row ul, .tabsBlock ul.tabSelector, form.dbFilter ul li ul, form.documentFilter ul li ul, #options, ul.categories, ul.vTabs, ul.breadcrumb, #navigator ul, .browseAll, .supportingDocuments ul, .blueBullet, .principles, .tabsBlockWide ul, ul.faq, form.documentFilter ul li dl, ul.results').each(function(){
			 $(this).children("li:last, dd:last").css({borderRight:"0",borderBottom:"0",background:"none",paddingRight:"0",marginRight:"0"});
		});
		
		// fix position in last LI that has a time popup
		$('ul.posts').each(function(){
			var countLi = $(this).children().length;
			
			if ( countLi > 1 ) {
				$(this).children('li:last').find('a.clock').addClass('upperplease');
			}
		});

		// smooth animation of internal links
		$('a[href=#top]').click(function() {
			if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
				var $target = $(this.hash);
				$target = $target.length && $target	|| $('[name=' + this.hash.slice(1) +']');

				if ($target.length) {
					var targetOffset = $target.offset().top;
					$('html,body').animate({scrollTop: targetOffset}, 1000);
					return false;
				}
			}
		});


		$('a.editProfile, #signup, #footer_signup, #signup_webinar, .lightbox').click(function() {
			var iWidth = ($(this).attr("width"))?$(this).attr("width"):890;
			var iHeight = ($(this).attr("height"))?$(this).attr("height"):670;

			$(this).colorbox({
				opacity:'0.5',
				initialWidth:100,
				initialHeight:100,
				iframe:true,
				width:iWidth,
				height:iHeight,
				onClosed:(($(this).attr("norefresh")!="true")?function(){document.location = document.location;}:false)
			});
		});
		
	
		// remove margin on last P of posts
		if ( $('ul.posts').length ){
			$('ul.posts li').each(function(){
				$(this).children('p:last').css('margin-bottom','0');
			});
		}

		// add arrow for current principle
		if ( $('dd.litUp').length ){
			var image = '<img class="outer" src="'+config_layout_dir+'images/arrows/outter.gif" width="10" height="23" alt="*"/>';
			$('dd.litUp').append(image);
		}

		// make hover for principles
		$('dl.principles dd').not('.litUp').hover(
			function(){
				$(this).addClass('litUp').css('cursor','pointer').click(function(){
					window.location = $(this).children('div').children('a').attr('href');
				});
				var image = '<img class="outer" src="'+config_layout_dir+'images/arrows/outter.gif" width="10" height="23" alt="*"/>'
				$(this).append(image);
				if ( $.browser.msie && $.browser.version == '6.0' ) {
					$(this).children('img.outer').css('left','-10px');
				}
			},
			function(){
				$(this).removeClass('litUp').css('cursor','default')/*.children('div').children('a').children('img').css('visibility','visible')*/;
				$(this).children('img.outer').remove();
			}
		);

		// hover on register
		$('#register div.row ul li').hover(
			function(){
				$(this).addClass('hovered');
			},
			function(){
				$(this).removeClass('hovered');
			}
		);

		// show timezones
		$('a.clock').hover(
			function(){
				$(this).children().show();
			},
			function(){
				$(this).children().hide();
			}
		);

		// accordion
		if ( $('ul.accordion, ul.faq').length ) {
			$('ul.accordion, ul.faq').accordion();
			$('ul.accordion > li > a, ul.faq a').click(function(){
				return false;
			})
		}

		// zone to search
		$('#optionsTrigger').click(function(){
			$('#options').slideToggle();

			return false;
		});

		// handle option selection
		$('#options a').click(function(){
			$('#selected').val($(this).text());
			$('#optionsTrigger').text($(this).text());

			$('#options').slideUp('fast');

			return false;
		});

		$('html').click(function(){
			$('#options').slideUp('fast');
		});

		if ( $('form.dbFilter ul li ul, form.documentFilter ul li ul, form.documentFilter ul li dl').length ){
			$('form.dbFilter ul li ul, form.documentFilter ul li ul, form.documentFilter ul li dl').each(function(){
				$('li:last',this).children('a').css('border','none');
			});
		}

		// hover on navigation
		$('#navigator ul li ul li, form.dbFilter ul li ul li, form.documentFilter ul li ul li, form.documentFilter ul li dl dd').hover(
			function(){
				$(this).addClass('hovered');
			},
			function(){
				$(this).removeClass('hovered');
			}
		);

		// top submenus
		$('#navigator>ul li.current').addClass('superOn');
		$('#navigator>ul li').not('#navigator ul li ul li').hover(
			function(){
				$(this).addClass('hovered');
				$('#navigator ul li ul').each(function(){
					$('li:last',this).children('a').css('border','none');	
				});
				
				$(this).addClass('current '+$(this).children('input').val());
				if ( $(this).children('a.hasSubmenu, a.vMiddlehasSubmenu').length ){
					$(this).children('ul').slideDown();
				}
			},
			function(){
				$(this).removeClass('hovered');
				$(this).not('.superOn').removeClass('current '+$(this).children('input').val());
				$(this).children('ul').stop(true, true).slideUp('fast');
			}
		);

		// add zIndexes on the main navigation
		if ( $('#navigator').length ){
			var allList = $('#navigator>ul>li').length;
			for ( k = 1; k <= allList; k++ ){
				$('#navigator>ul>li').eq(k-1).css('z-index',60-k);
//				console.log();
			}
		}

		// filters in Clearinghouse
		
		$('ul.filters ul.subFilters li a').click(function(){
			$(this).parent().parent().find('a').removeClass('selected');
			$(this).addClass('selected');
			$(this).parent().parent().slideUp(100);
			return false;
		});
		
		$('ul.filters>li').hover(
			function(){
				var currentSubFilter = $(this).stop().children('ul.subFilters');
				var allLi = $(this).children('ul.subFilters').children('li');

				$(this).children('a').addClass('on');
				$(this).stop().children('ul.subFilters').slideDown(300);
				/*$(this).children('ul.subFilters').children('li').children('a').click(function(){
					allLi.children('a').removeClass('selected');
					$(this).addClass('selected');
					currentSubFilter.slideUp(100);

					return false;
				});*/
			},
			function(){
				$(this).children('a').removeClass('on');
				$(this).stop().children('ul.subFilters').slideUp(100);
			}
		);

		// cycle on homepage
		$('.tabs3Masthead').before('<ul class="vTabs">').cycle({
			fx:     'fade', 
			speed:  'fast',
			timeout: 5000,
			pause:  1,
			pager:  '.vTabs',
			pagerClick: function stopCycle(idx, slide) {
				$('.tabs3Masthead').cycle('pause');
			},

			// callback fn that creates a thumbnail to use as pager anchor
			pagerAnchorBuilder: function(idx, slide) {
				return '<li><a href="#">'+ ++idx +'</a></li>';
			}
		});
		
		if ( $('div.slider ul').length ) {
			$('div.slider ul').after('<ul class="screens">').cycle({
				fx: 'scrollHorz',
				speed:  500,
				timeout: 5000,
				pause:  1,
				pager: 'ul.screens',
				pagerClick: function stopCycle(idx, slide) {
					$('div.slider ul').cycle('pause');
				},

				// callback fn that creates a thumbnail to use as pager anchor
				pagerAnchorBuilder: function(idx, slide) {
					return '<li><a href="#">&nbsp;</a></li>';
				}
			});
		}


		// fix categories - remove margin on third LI
		if ( $('ul.categories').length ){
			$('ul.categories li:nth-child(3n)').addClass('noRMargin');
		}

		// fix links in footer - remove margin on second A
		if ( $('#footer ul li.middle a').length ) {
			$('#footer ul li.middle a:nth-child(2n+1)').addClass('noRMargin');
		}

		// filters with dropdowns
		if ( $('.documentFilter>ul').length ){
			$('.documentFilter>ul li:nth-child(2n+1)').addClass('noRMargin');

			// submenus
			$('.documentFilter>ul>li').click(function(){
				$(this).stop().children('ul, dl').slideToggle();

				return false;
			});

			// add zindexes
			var firstLis = $('.documentFilter>ul>li').length;
			for ( var i = 0; i<=firstLis; i++ ){
				$('.documentFilter>ul li:nth-child('+i+')').css('z-index',((firstLis+1)-i)*10);
			}

			// make selection
			$('form.documentFilter ul li ul li, form.documentFilter ul li dl dd').click(function(){
				var selValue = $(this).text();
				$('li',$(this).parent()).removeClass('selected');
				$(this).addClass('selected');
				$(this).parent().siblings('a').text(selValue);
				$(this).parent().slideUp('fast');

				return false;
			});
		}

		// filters with dropdowns for DB
		if ( $('.dbFilter>ul').length ){
			// submenus
			$('.dbFilter>ul>li').click(function(){
				$(this).stop().children('ul').slideToggle();

				return false;
			});

			// add zindexes
			var firstLis = $('.dbFilter>ul>li').length;
			for ( var i = 0; i<=firstLis; i++ ){
				$('.dbFilter>ul li:nth-child('+i+')').css('z-index',((firstLis+1)-i)*10);
			}

			// make selection
			$('form.dbFilter ul li ul li').click(function(){
				var selValue = $(this).text();
				$('li',$(this).parent()).removeClass('selected');
				$(this).addClass('selected');
				$(this).parent().siblings('a').text(selValue);
				$(this).parent().slideUp('fast');

				return false;
			});
		}


		// organisation dropdown
		$('.dropdown').click(function(){
			$(this).next().slideToggle();

			$('#register div.row ul li').click(function(){
				// update selection
				
				$("#"+$(this).parent().attr("rel")).val($(this).attr("rel"));
				$(this).parent().prev().text($(this).text());
				$('#register div.row ul').slideUp();
				
				

				return false;
			});

			return false;
		});


		// remove link
		$('a.remove').click(function(){
			$(this).remove();
			$('a.welcome').remove();

			return false;
		});

		// remove row
		$('a.removeRow').click(function(){
			var message = 'Are you sure you want to remove "'+$(this).parent().next().children().text()+'" link from your saved pages list?';
			var self = this;
			var cbox = $('<div class="confirmbox">' +
					'<p>'+message+'</p>' +
					'<p>' +
						'<input type="button" class="yes" value="Yes" />' +
						'<input type="button" class="no" value="No" />' +
					'</p>' +
					'</div>');

			$(this).parents("table").before($(cbox));
			$(cbox).hide().fadeIn("medium");

			var remove_url = $(this).attr('href');
			
			$("input.yes",cbox).click(function(){
				$.get(remove_url);
				$(self).parents('tr').remove();
				$(cbox).fadeOut("medium",function(){ $(this).remove(); });
				return false;
			});

			$("input.no",cbox).click(function(){
				$(cbox).remove();
				$(cbox).fadeOut("medium",function(){ $(this).remove(); });
			});


			return false;
		});

		// tooltips
		$('table.shareholders a').hover(
			function(){
				$(this).siblings('div.tooltip').fadeIn('slow');
			},
			function(){
				$(this).siblings('div.tooltip').fadeOut('fast');
			}
		);

		// image preloader
		// jQuery.preLoadImages("images/center/01.jpg", "images/center/02.jpg", "images/center/03.jpg");
		var cache = [];
		// Arguments are image paths relative to the current page.
		$.preLoadImages = function() {
			var args_len = arguments.length;
			for (var i = args_len; i--;) {
				var cacheImage = document.createElement('img');
				cacheImage.src = arguments[i];
				cache.push(cacheImage);
			}
		}
		
		var profiles = {
			register:{
				width: '786',
				height: '520',
				center: 1,
				createnew: 0
			}
		}

		//$('a#registerTrigger').popupwindow(profiles);

		$('a.add2saved').hover(
			function(){
				$(this).children('em').fadeIn('fast');
//				DD_belatedPNG.fix('em');
			},
			function(){
				$(this).children('em').fadeOut('slow');
			}
		);

		// equal heights in LI
		equalHeight($("ul.categories li"));		

		// tabs
		$(".tabsBlock").tabs();		
		$(".tabsBlockWide").tabs();
	});
})(jQuery);
	
jQuery.fn.log = function (msg) {
  console.log("%s: %o", msg, this);
  return this;
};

(function($){
	$.fn.tabs = function(){
		return $(this).each(function(){
			var c= this;
			$(c).children(".tabSelector").find("a").click(function(){
				var selector = $(this).parent().attr("class");
				var tab = $(c).children(".tabsContent").children(".tab."+selector);

				$(c).children(".tabsContent").children(".tab").not(tab).fadeOut("medium",function(){
					$(tab).fadeIn("medium");
				});

				$(c).children(".tabSelector").find("a.selected").removeClass("selected");
				$(this).addClass("selected");
				return false;
			});
			$(c).children(".tabSelector").find("a.selected").click();
		});
	};
})(jQuery);

function equalHeight(group) {
	var tallest = 0;
	group.each(function() {
		var thisHeight = $(this).height();
		if(thisHeight > tallest) {
			tallest = thisHeight;
		}
	});
	group.height(tallest);
}
