var Tours;
if(!Tours){
	Tours = {};
}

Tours.Manager = function(l_xDomElement){
	var _xThis = this;
	this._xDomElement = l_xDomElement;
	this._aTabs = $('.tabs li', this._xDomElement);
	this._alinkTitles = new Array('news', 'events');
	
	var l_nCount = 0;
	$(this._aTabs).each(function(){
		this.pageIndex = _xThis._alinkTitles[l_nCount];
		this.tabIndex = l_nCount;
		l_nCount++;
	})
	
	this._aPages = $('.tab-section', this._xDomElement);

	this._aPagers ={'news' : 	new Pager.Manager('news', this),
					'events' : 	new Pager.Manager('events', this)};
	
	this._nCurrentPage = 0;
	this.initListeners();
	
	this.initToggles(this._aPages[0]);
	this.initToggles(this._aPages[1]);

	var tabCount = 0;
}

Tours.Manager.prototype = {
	_xDomElement:				null,
	_aLinkTitles:				null,
	_aTabs:						null,
	_aPages:					null,
	_nCurrentPage:				null,
	_alinkTitles:				null,
	_aPagers:					null,

	initListeners:	function(){
		var _xThis = this;

		$(this._aTabs).each(function(){
			$(this).click(function(){
				pageNavigator.updateURL({'section': 'news',
										'tab': this.pageIndex, 
										'page':1,
										'item':''})
			})
		})
	},

	showItem		:function(l_xElement){
		var l_aIdSplit = $(l_xElement).attr('id').split('-');
		pageNavigator.updateURL({	'section':'news', 
									'tab': this._alinkTitles[this._nCurrentPage], 
									'page':this._aPagers[this._alinkTitles[this._nCurrentPage]].getCurrentPage(),
									'item':l_aIdSplit[l_aIdSplit.length-1]});
	},
	
	hideItem		:function(l_xElement){
		$('.visibility-toggle', l_xElement).removeClass('hide');
		$('.visibility-toggle', l_xElement).addClass('show');
		$('.visibility-toggle', l_xElement).html('SHOW');
		$(l_xElement).removeClass('visible');
		pageNavigator.updateURL({	'section':'news', 
									'tab': this._alinkTitles[this._nCurrentPage], 
									'page':this._aPagers[this._alinkTitles[this._nCurrentPage]].getCurrentPage(),
									'item':''});
	},
	
	initToggles	:	function(l_xElement){
		var _xThis = this;
		
		$('.visibility-toggle', l_xElement).click(function(){
			if($(this).hasClass('show')){
				
				_xThis.showItem($(this).parent());
			}
			else{
				_xThis.hideItem($(this).parent());
			}
		});
		
		$('h4 a', l_xElement).click(function(){
			if($(this).parent().parent().hasClass('visible')){
				_xThis.hideItem($(this).parent().parent());
			}
			else{
				_xThis.showItem($(this).parent().parent());
			}
		})
		
		$('.comment-toggle', l_xElement).click(function(){
			if ($(this).parent().siblings('.comment-container').hasClass('show')) {
				$(this).parent().siblings('.comment-container').addClass('hide');
				$(this).parent().siblings('.comment-container').removeClass('show');
			}
			else{
				$(this).parent().siblings('.comment-container').addClass('show');
				$(this).parent().siblings('.comment-container').removeClass('hide');
			}
			pageNavigator.refreshHeight($(_xThis._xDomElement).height()+500)
		})
		
		$('.comment-container', l_xElement).each(function(){
			_xThis.initCommentListeners(this)
		})
	},
	
	initCommentListeners	:	function(p_xElement){
		var _xThis = this;
		
		$('.meta-comment-input', p_xElement).focus(function(){
			if(($(this).val()=='Name')||
				($(this).val()=='Email')||
				($(this).val()=='Website')){
				$(this).val('');
			}
		})
		
		$('.meta-comment-input', p_xElement).blur(function(){
			if($(this).val()==''){
				if($(this).attr('name') == 'author'){
					$(this).val('Name');
				}
				else if($(this).attr('name') == 'email'){
					$(this).val('Email');
				}
				else if($(this).attr('name') == 'url'){
					$(this).val('Website');
				}
			}
		})
		
		
		$('.post-comment-link', p_xElement).click(function(){
			if($('.comment-body', this).val() != ''){
				
				var l_aInputs = {};
				$('input', $(this).parent().parent()).each(function(){
					l_aInputs[$(this).attr('name')] = $(this).val();
				})
				
				var l_xForm = $(this).parent().parent();
				l_aInputs['comment'] = $('.comment-body', $(this).parent().parent()).val();
				$.post('/wordpress/wp-comments-post.php', 
						l_aInputs, 
						function(p_sData){

							var l_aData = eval(p_sData);
							
							var l_xLi = $('<li />');
							
							var l_xCommentCountDiv = $('<div />').addClass('comment-count');
							var l_xCommentSpan = $('<span />').html(1)
							$(l_xCommentCountDiv).append(l_xCommentSpan);
							
							var l_xDate = $('<div />').addClass('date').html(l_aData[0].comment_date)
							var l_xUserP = $('<p />').addClass('user')
							var l_xUserSpan = $('<span />').html(l_aData[0].comment_author)
							$(l_xUserP).append(l_xUserSpan)
							$(l_xUserP).append(' says:');
							
							var l_xBody = $('<div />').addClass('body').html(l_aData[0].comment_content)
							
							var l_xCommentDiv = $('<div />').addClass('comment');

							$(l_xCommentDiv).append(l_xUserP)
							$(l_xCommentDiv).append(l_xDate)
							$(l_xCommentDiv).append(l_xBody)
							
							$(l_xLi).append(l_xCommentCountDiv);
							$(l_xLi).append(l_xCommentDiv)
							
							$('.commentlist', p_xElement).prepend(l_xLi);
							
							var l_nCount = 1;
							$('.comment-count', p_xElement).each(function(){
								$('span', this).html(l_nCount);
								l_nCount++;
							})
							
							_xThis.resetCommentForm(l_xForm);
							
							pageNavigator.refreshHeight($(_xThis._xDomElement).height()+500);
				})
			}
			else{
				$('.comment-body', this).val('Please make a comment before submitting');
			}
		})
	},
		
	resetCommentForm : function(p_xForm){
		$('.meta-comment-input', p_xForm).each(function(){
			if($(this).attr('name') == 'author'){
				$(this).val('Name');
			}
			else if($(this).attr('name') == 'email'){
				$(this).val('Email');
			}
			else if($(this).attr('name') == 'url'){
				$(this).val('Website');
			}
		})
		$('.comment-body',p_xForm).val('');
	},
	
	goToTab	:function(p_nTab){
		
		for(var i=0; i<this._alinkTitles.length;i++){
			if(p_nTab == this._alinkTitles[i]){
				var l_nTabIndex = i;
			}
		}

		if(this.tabIndex != this._nCurrentPage){
	
			$(this._aTabs[this._nCurrentPage]).removeClass('active')
			$(this._aTabs[l_nTabIndex]).addClass('active')

			$(this._aPages[this._nCurrentPage]).removeClass('active')
			$(this._aPages[l_nTabIndex]).addClass('active')

			this._nCurrentPage = l_nTabIndex;
		}
		pageNavigator.refreshHeight($(this._xDomElement).height())
	},
	
	goToPage	:	function(p_nPageIndex){

		if(p_nPageIndex != undefined){
			this._aPagers[this._alinkTitles[this._nCurrentPage]].goToPage(p_nPageIndex);	
		}
	},
	
	goToItem	: 	function(p_nItemIndex){
		$('.article', this._aPages[this._nCurrentPage]).each(function(){
			$(this).removeClass('visible');
			$('.visibility-toggle', this).html('SHOW');
			$('.visibility-toggle', this).removeClass('hide')
			$('.visibility-toggle', this).addClass('show')
		});

		$('#news-page-'+this._alinkTitles[this._nCurrentPage]+'-id-'+p_nItemIndex).addClass('visible');
		$('.visibility-toggle','#news-page-'+this._alinkTitles[this._nCurrentPage]+'-id-'+p_nItemIndex).removeClass('show')
		$('.visibility-toggle','#news-page-'+this._alinkTitles[this._nCurrentPage]+'-id-'+p_nItemIndex).addClass('hide')
		$('.visibility-toggle','#news-page-'+this._alinkTitles[this._nCurrentPage]+'-id-'+p_nItemIndex).html('HIDE')
		
		var offset = $('#news-page-'+this._alinkTitles[this._nCurrentPage]+'-id-'+p_nItemIndex).offset()
	
		if(offset.top+200> $(window).height()){
			$('html, body').animate({scrollTop: offset.top-200}, 1000);
		}
	}
}

var Pager;
if(!Pager){
	Pager = {};
}
Pager.Manager = function(l_sTab, p_xTourManager){
	this._xTourManager = p_xTourManager;
	this._sTabTitle = l_sTab;
	this._xDomElement = $('.tab-section.'+l_sTab);
	var _xThis = this;

	this._nCurrentPage = 1;
	this._nPageContainer = $('.pages', this._xDomElement);
	this._aLinks = $('.paginator li a', this._xDomElement );
	
	this._aPages = $('.page', this._xDomElement );
	
	var l_nCount = 1;
	$(this._aLinks).each(function(){
		$(this).click(function(){
			pageNavigator.updateURL({	'section':'news', 
										'tab': _xThis._sTabTitle, 
										'page':$(this).html(),
										'item':''});
		});
	});
	
	$('.previous', this._xDomElement).click(function(){
		if(_xThis._nCurrentPage-1 > 0){
			pageNavigator.updateURL({	'section':'news', 
										'tab': _xThis._sTabTitle, 
										'page':parseInt(_xThis._nCurrentPage)-1,
										'item':''});
		}
	});
	
	$('.next', this._xDomElement).click(function(){
		if(_xThis._nCurrentPage < _xThis._aLinks.length){
			pageNavigator.updateURL({	'section':'news', 
										'tab': _xThis._sTabTitle, 
										'page':parseInt(_xThis._nCurrentPage)+1,
										'item':''});
		}
	});
}

Pager.Manager.prototype = {
	_xDomElement		:null,
	_aPages				:null,
	_aLinks				:null,
	_nCurrentPage		:null,
	_nPageContainer		:null,
	_sTabTitle			:null,
	_xTourManager		:null,
	
	goToPage	:function(p_nPage){
		_xThis = this;
		if(p_nPage != this._nCurrentPage){
			if(this._nCurrentPage == 1){
				$('.previous', this._xDomElement).removeClass('inactive')
			}
			else if(this._nCurrentPage == this._aLinks.length){
				$('.next', this._xDomElement).removeClass('inactive')
			}

			if($('#'+this._sTabTitle+'-blog-page-'+parseInt(p_nPage), this._xDomElement).length ==1){
				
				$(this._aLinks).each(function(){
					$(this).removeClass('active')
				});
				$(this._aLinks[p_nPage-1]).addClass('active');
				
				$(this._aPages).each(function(){
					if($(this).attr('id')==_xThis._sTabTitle+'-blog-page-'+parseInt(p_nPage)){
						$(this).addClass('active');
					}
					else{
						$(this).removeClass('active');
					}
				});
				this._nCurrentPage = p_nPage;
			}
			else{
				this.getPage(p_nPage)
			}

			if(this._nCurrentPage == 1){
				$('.previous', this._xDomElement).addClass('inactive')
			}
			else if(this._nCurrentPage == this._aLinks.length){
				$('.next', this._xDomElement).addClass('inactive')
			}
		}
	},
	
	getPage	:function(p_nPage){
		var _xThis = this;

		$.get('/api/'+this._sTabTitle+'Blog.php',
			{'page':p_nPage},
			function(p_sData){
				var l_xElement = null;
				$(_xThis._aPages).each(function(){
					var idParts = $(this).attr('id').split(this._sTabTitle+'-blog-page-')
					if(idParts[1] > p_nPage){
						l_xElement = this;
					}
				});
				
				if(l_xElement == null)
					l_xElement = _xThis._aPages[_xThis._aPages.length-1];
				
				$(l_xElement).after(p_sData);
				
				_xThis._xTourManager.initToggles(p_sData);
				
				_xThis._aPages = $(_xThis._nPageContainer).children();
				_xThis.goToPage(p_nPage);
				_xThis._xTourManager.initToggles('#'+_xThis._sTabTitle+'-blog-page-'+p_nPage);
				
				pageNavigator.refreshHeight($(_xThis._xTourManager._xDomElement).height())
			}
		)
	},
	
	getCurrentPage	:	function(){
		return this._nCurrentPage;
	}
}
