// voting module
	var votePopupTimer = null;
	function initVoteModules()
	{
		var voteCounter = jQuery('div#VotesCounter');
		var popup = jQuery('#VoteConfirmationNotice');
		popup.appendTo('body');
				
		if(voteCounter.size() > 0)
		{
			popup
				.css({
				  	position: 'absolute',
					zIndex: '1000',
					left: voteCounter.offset().left - popup.width() + 80 + 'px',
					top: voteCounter.offset().top + voteCounter.height() + 'px'
				  })
			
			getVotes(voteCounter);
			jQuery('a.BubbleCloseButton')
				.click(function()
					{
						hideVotesPopup();
						return false;	
					})
		}
	}

	function getVotes(vcounter)
	{
		var voteCounter = vcounter;
		voteCounter.addClass('VotesCounterPending');	
		
		var d = new Date();
		var ajaxUrl = new String(voteCounter.attr('ajaxUrl'));
		ajaxUrl = ajaxUrl.replace('.html', '/' + d.getTime() + '.html') // custom caching for code igniter
		
		var voteLink = jQuery('a#lnkVote');
		
		jQuery
			.ajax({
					url: ajaxUrl,
					success: function(json)
						{
							if ((json != null) && (json != '')) {
							var serverResponse = eval('(' + json + ')');
							if(serverResponse)
							{
								if(parseInt(serverResponse.AddLinkEnabled) > 0)
								{
									activateVoteLink(voteLink);
									
									voteLink.removeClass('lnkVoteOff');
									voteLink.html(serverResponse.Message);
									voteCounter.html(serverResponse.NrEntriesText);
								}
								else
								{
									voteCounter.html(serverResponse.NrEntriesText);
									
									var voteMsg = jQuery('#VoteConfirmationNotice');
									voteLink.replaceWith(voteMsg);
									voteMsg.find('h4').text(serverResponse.Message);
									
									showVotesPopup(serverResponse.Status);
									
									if(serverResponse.Status == 'log_in')
									{
										initPopupFormOverlays();
									}
								}
								voteCounter.removeClass('VotesCounterPending');
							}
							}
						},
					error: function(err)
							{
								
							}
						
				  })
	}
	
	function activateVoteLink(vLink)
	{
		vLink
			.unbind('click')
			.click(function()
					{
						var vlnk = jQuery(this);
						saveVote(vlnk);
						return false;
					})
	}
	
	function saveVote(vLink)
	{
		var voteLink = vLink;
		var voteCounter = jQuery('div#VotesCounter');
		voteLink.addClass('lnkVotePending');
		voteCounter.addClass('VotesCounterPending');
		
		var d = new Date();
		var ajaxUrl = new String(voteLink.attr('href'));
		ajaxUrl = ajaxUrl.replace('.html', '/' + d.getTime() + '.html') // custom caching for code igniter
		
		jQuery
			.ajax({
					url: ajaxUrl,
					success: function(json)
								{
									var serverResponse = eval('(' + json + ')');
									if(serverResponse)
									{
										if(parseInt(serverResponse.AddLinkEnabled) > 0)
										{
											voteLink.html(serverResponse.Message);
											activateVoteLink(voteLink);
											voteLink.removeClass('lnkVoteOff');
										}
										else
										{
											voteLink.addClass('lnkVoteOff');
											location = jQuery('input[name=redirectURL]').val();
											//var voteMsg = jQuery('#VoteConfirmationNotice');
											//voteLink.replaceWith(voteMsg);
											//voteMsg.find('h4').text(serverResponse.Message);
											//showVotesPopup(serverResponse.Status);
										}
										
										voteCounter.html(serverResponse.NrEntriesText);
										voteCounter.removeClass('VotesCounterPending');
										
									}
								},
					error: function(err)
							{
								
							}
						
				  })
	}

	function showVotesPopup(status)
	{
		var popup = jQuery('#VoteConfirmationNotice');
		popup.appendTo('body');
		if(status)
		{
			setVotesCounterEvents();
			popup.hover(function()
					{
						clearTimeout(votePopupTimer);
					 	jQuery('#VoteConfirmationNotice').stop().css({display: 'block', opacity:  1});
					},
					function()
					{
						votePopupTimer = setTimeout(hideVotesPopup, 100);
					}
				  );
			if(status == 'added')
			{
				popup.stop()
					.css({
						display: 'block'
					  })
					.fadeTo(500, 1);
			}
		}
		else
		{
			popup.stop()
				.css({
					display: 'block'
				  })
				.fadeTo(500, 1);	
		}
	}
	
	function hideVotesPopup()
	{
		var popup = jQuery('#VoteConfirmationNotice');
		popup.stop()
			.fadeTo(500, 0.1, function(){jQuery(this).css({display: 'none', opacity: 0.1})});
	}
	
	function setVotesCounterEvents()
	{
		var voteCounter = jQuery('div#VotesCounter');
		voteCounter.hover(function()
					{
						clearTimeout(votePopupTimer);
						showVotesPopup();
					},
					function()
					{
						votePopupTimer = setTimeout(hideVotesPopup, 100);
					}
				  );
	}

// utils
	function getFullHeight(el)
	{
		return el.height() + (parseInt(el.css('paddingTop'))||0) + (parseInt(el.css('paddingBottom'))||0) + (parseInt(el.css('borderTopWidth'))||0) + (parseInt(el.css('borderBottomWidth'))||0);
	}
	
	function resizeSideShadow()
	{
		jQuery('#SideContentShadow').css('height', getFullHeight(jQuery('#ContentWrapper')) + 8 + 'px');
	}

	function initSNLinks()
	{
		jQuery('a.lnkTwitter')
			.click(function()
				{
					//alert('Click on Twitter link');
					return true;
				});
			
		jQuery('a.lnkFacebook')
			.click(function()
				{
					//alert('Click on Facebook link');
					return true;
				});
	}
	
	// replacement of submit buttons with custom submit links
	function replaceSubmitButton(wrapper, cssClass)
	{
		var submitBtn = wrapper.find('input:submit');
		var submitLink = jQuery('<a href="#" class="' + cssClass + '"><span>' + submitBtn.val() + '</span></a>');
		submitBtn.replaceWith(submitLink);
		submitLink
			.click(function()
					{
						var form = jQuery(this).parents('form');
						form.submit();
						return false;
					})
	}
	function replaceSubmitButtons()
	{
		replaceSubmitButton(jQuery('form.AddCompanyForm'), 'btnAddCharity');	
	}
	
	function initSlideshows()
	{
		// Only on eBay slideshow
		jQuery('#LogoSlideshow ul')
			.cycle({
				fx: 'scrollLeft', 
				timeout: 6000, 
				pause: 1
			   });
		if(jQuery('body').hasClass('minimized'))
			jQuery('#LogoSlideshow ul').cycle('pause');
	}
	
	function initContentNav()
	{
		jQuery('ul.ContentNav a')
			.click(function()
				{
					var target = jQuery('a[namejQuery=' + jQuery(this).attr('href') + ']');
					jQuery('html,body').animate({scrollTop: target.offset().top}, 500);
					return false;
				})
	}
	
function initHeaderDisplay()
{
	var btnExpandCollapseHeader = jQuery('<a id="btnExpandCollapseHeader" href="#">Expand/Collapse</a>');
	btnExpandCollapseHeader.appendTo('#HeaderBottomBar')
	
	if(jQuery.cookie('minimizedDisplay') != null)
		btnExpandCollapseHeader.addClass('btnExpandHeader').attr('title', 'Expand')
	else
		btnExpandCollapseHeader.addClass('btnCollapseHeader').attr('title', 'Collapse');
		
	btnExpandCollapseHeader
		.click(function()
		{
			var tl = jQuery(this);
			if(tl.hasClass('btnExpandHeader'))
				expandHeader();
			else
				collapseHeader();
			
			return false;
		});
	jQuery.cookie('minimizedDisplay', '1', {expires: 365});
}

function collapseHeader()
{
	//jQuery('#LogoSlideshow ul').cycle('pause');
	jQuery('#HeaderTextArea, #TopBg, #TopBg').stop();
	jQuery('#btnExpandCollapseHeader').removeClass('btnCollapseHeader').addClass('btnExpandHeader').attr('title', 'Expand');
	jQuery('#HeaderTextArea')
		.fadeOut('fast');
	jQuery('#Header')
		.animate({height: '127px'});
	jQuery('#TopBg')
		.animate({height: '42px'});
	jQuery.cookie('minimizedDisplay', '1', {expires: 365});
}

function expandHeader()
{
	jQuery('#LogoSlideshow ul').cycle('resume');
	jQuery.cookie('minimizedDisplay', null);
	jQuery('#HeaderTextArea, #TopBg, #Header').stop();
	jQuery('#btnExpandCollapseHeader').removeClass('btnExpandHeader').addClass('btnCollapseHeader').attr('title', 'Collapse');
	jQuery('#HeaderTextArea').css({display:'block', opacity: 1});
	jQuery('#TopBg').animate({height: '413px'});
	jQuery('#Header')
		.animate({height: '498px'});
}

function initSpecialOffersDisplay()
{
	var btnExpandCollapseSpecialOffers = jQuery('<a id="btnExpandCollapseSpecialOffers" href="#">Expand/Collapse</a>');
	btnExpandCollapseSpecialOffers.appendTo('#SpecialOffersBar');
	jQuery('#SpecialOffers').attr('h', jQuery('#SpecialOffers').height());
	
	if(jQuery.cookie('minimizedSODisplay') != null)
		btnExpandCollapseSpecialOffers.addClass('btnExpandSpecialOffers').attr('title', 'Expand')
	else
		btnExpandCollapseSpecialOffers.addClass('btnCollapseSpecialOffers').attr('title', 'Collapse');
		
	btnExpandCollapseSpecialOffers
		.click(function()
		{
			var tl = jQuery(this);
			if(tl.hasClass('btnExpandSpecialOffers'))
				expandSpecialOffers();
			else
				collapseSpecialOffers();
			
			return false;
		});
	jQuery.cookie('minimizedSODisplay', '1', {expires: 365});
}

function collapseSpecialOffers()
{
	jQuery('#SpecialOffers').stop();
	jQuery('#btnExpandCollapseSpecialOffers').removeClass('btnCollapseSpecialOffers').addClass('btnExpandSpecialOffers').attr('title', 'Expand');
	jQuery('#SpecialOffers').animate({height: '1px'}, 500);
	jQuery.cookie('minimizedSODisplay', '1', {expires: 365});
}

function expandSpecialOffers()
{
	jQuery.cookie('minimizedSODisplay', null);
	jQuery('#SpecialOffers').stop();
	jQuery('#btnExpandCollapseSpecialOffers').removeClass('btnExpandSpecialOffers').addClass('btnCollapseSpecialOffers').attr('title', 'Collapse');
	jQuery('#SpecialOffers').animate({height: parseInt(jQuery('#SpecialOffers').attr('h')) + 'px'}, 500);
}
		
jQuery(function()
{
	replaceSubmitButtons();
	initVoteModules();
	resizeSideShadow();
	initSlideshows();
	initContentNav();
	initSNLinks();
//	initHeaderDisplay();
	//initSpecialOffersDisplay();
})

jQuery(window).load(function()
{
     resizeSideShadow();
})

