var _focusFlag = false;
var _langFlag;

function loadWin(){
	searchInit(); // search rollover
	languageInit(); // select language
	$('.scrollable').jScrollPane();
	initAccordion(); // accordions
	ajaxTabs(); // sidebar tabs
	infoGall(); // gallery 1
	mediaLib(); //media library
	imgGall(); // gallery 2
	initTabs(); // simple tabs
	initAjaxPagination();
	ajaxMenu(); // top menu ajax implementation
	initMenuScroll(); // menu scroll

}
// menu scroll
function initMenuScroll() {
	var _holder = $('#main');
	var _menu = $('#sidebar');
	var _slideEl = $('ul',_menu);
	//var _maxMargin = _slideEl.height() - _menu.height();

	if (_menu.length){
		var _li = _menu.find('li');
		if (_li.length > 4) {
			var _maxMargin = 112*_li.length - 448;
			// var _duration = _li.length * 300;
			var _duration = 500;
			var _kTop = 1;
			var _kBt = 1;
			
			_holder.append('<a href="#" class="bt-arrow"></a><a href="#" class="top-arrow"></a>');
			var _up = $('a.top-arrow',_holder);
			var _bt = $('a.bt-arrow',_holder);
			_up.hide();
			
			_bt.click(function(){
				if(_slideEl.is(':not(:animated)')&& parseInt(_slideEl.css('margin-top'))>-_maxMargin){
					_up.show();
					_slideEl.animate({
						'marginTop':'-=' + 112
					},_duration,function(){
						if(parseInt(_slideEl.css('margin-top'))==-_maxMargin) _bt.hide();
					});
				}
				return false;
			});
			_up.click(function(){
				if(_slideEl.is(':not(:animated)')&& parseInt(_slideEl.css('margin-top'))<0){
					_bt.show();
					_slideEl.animate({
						'marginTop':'+=' + 112
					},_duration,function(){
						if(parseInt(_slideEl.css('margin-top'))==0) _up.hide();
					});
				}
				return false
			});
			
			/*
			_bt.mousedown(function(){
				_up.show();
				_slideEl.animate({'marginTop':-_maxMargin}, _duration*_kBt, 'linear', function(){
					_bt.hide();
				});
			}).mouseup(function(){
				_slideEl.stop();
				_kBt = (_maxMargin + parseInt(_slideEl.css('marginTop')))/_maxMargin;
				_kTop = 1-(_maxMargin + parseInt(_slideEl.css('marginTop')))/_maxMargin;
			});
			
			_up.mousedown(function(){
				_bt.show();
				_slideEl.animate({'marginTop':0}, _duration*_kTop, 'linear', function(){
					_up.hide();
				});
			}).mouseup(function(){
				_slideEl.stop();
				_kBt = (_maxMargin + parseInt(_slideEl.css('marginTop')))/_maxMargin;
				_kTop = 1-(_maxMargin + parseInt(_slideEl.css('marginTop')))/_maxMargin;
			});
			*/
		}
	}
	
}
// search
function searchInit(){
	var _box = $('.search div.form').css({opacity: 0});
	var _btn = $('.search a.src-open');
	var _f1 = true;
	var _f2 = true;
	_btn.mouseenter(function(){
		_box.stop().show().animate({opacity: 1}, 200);
	}).mouseleave(function(){
		if(_f1) _box.stop().animate({opacity: 0}, 200, function(){ $(this).hide();});
	});
	_box.mouseenter(function(){
		_box.stop().animate({opacity: 1}, 200);
		_f2 = false;
	}).mouseleave(function(){
		if(_f1) _box.stop().animate({opacity: 0}, 200, function(){ $(this).hide();});
		_f2 = true;
	});
	_box.find('input.text').each(function(){
		this._val = this.value;
		this.onfocus = function(){
			_f1 = false;
			if(this.value == this._val) this.value = '';
		}
		this.onblur = function(){
			if(this.value == '') this.value = this._val;
			_f1 = true;
			if(_f2) _box.stop().animate({opacity: 0}, 200, function(){ $(this).hide();});
		}
	});
}
// language
function languageInit(){
	$('div.chng-lang a.selector').click(function(){
		$(this).parent().find('ul').slideDown();
	});
	$('div.chng-lang a.selector').hover(function(){
		clearTimeout(_langFlag);
	},function(){
		_langFlag = setTimeout(function(){
			$('div.chng-lang ul').slideUp();
		},1000);
	});
	$('div.chng-lang ul').hover(function(){
		clearTimeout(_langFlag);
	},function(){
		clearTimeout(_langFlag);
		$('div.chng-lang ul').slideUp();
	});
}
// main menu dropdown ajax implementation
function ajaxMenu(){
	var drop_hold = $('#header .dropdown-hold');
	var _menu = $('#header #menu');
	if(_menu.length && drop_hold.length){
		var _drop = drop_hold.children('.dropdown');
		var close_drop = _drop.children('a.close');
		var drop_text = _drop.children('.inner');
		var _btn = _menu.find('a.open');
		var _loader = $('<div class="loading">loading...</div>').css('opacity', 0);
		var _a = -1;
		var _h;
		_btn.each(function(_i){
			var _el = this;
			_el._box = false;
			_el.onclick = function(){
				var t_box = this._box;
				if(_a == _i){
					$(_el).parent().removeClass('active');
					_a = -1;
					_drop.stop().animate({marginTop: - _drop.outerHeight()}, 500, function(){
						drop_hold.hide();
					});
				}
				else{
					if(_a != -1){
						_btn.eq(_a).parent().removeClass('active');
						_drop.stop().animate({marginTop: - _drop.outerHeight()}, 500, function(){
							_drop.css('margin-top', -9999);
							drop_hold.show();
							if(t_box){
								drop_text.html(t_box);
								_drop.css('margin-top', - _drop.outerHeight()).animate({marginTop: 0}, 500);
							}
							else{
								$.ajax({
									url: $(_el).attr('rel'),
									cache: false,
									dataType: 'html',
									success: function(_html){
										_el._box = _html;
										drop_text.html(_el._box);
										_drop.stop().css('margin-top', - _drop.outerHeight()).animate({marginTop: 0}, 500);
									}
								});
							}
						});
					}
					else{
						_drop.stop().css('margin-top', -9999);
						drop_hold.show();
						if(t_box){
							drop_text.html(t_box);
							_drop.css('margin-top', - _drop.outerHeight()).animate({marginTop: 0}, 500);
						}
						else{
							$.ajax({
								url: $(_el).attr('rel'),
								cache: false,
								dataType: 'html',
								success: function(_html){
									_el._box = _html;
									drop_text.html(_el._box);
									_drop.stop().css('margin-top', - _drop.outerHeight()).animate({marginTop: 0}, 500);
								}
							});
						}
					}
					$(_el).parent().addClass('active');
					_a = _i;
				}
				return false;
			}
		});
		close_drop.click(function(){
			_btn.parent().removeClass('active');
			_a = -1;
			_drop.stop().animate({marginTop: - _drop.outerHeight()}, 500, function(){
				drop_hold.hide();
			});
			return false;
		});
	}
}
// accordions 
function initAccordion() {
	$('ul.accordion .slide').hide();
	$('.scrollable').jScrollPane();
	$('ul.accordion a.opener').click(function(){
		if(!$(this).parent().hasClass('active')) {
			$(this).parent().find('.slide').slideDown(function(){
//				VSA_handleResize();
			});
			$(this).parent().addClass('active');
		}else{
			$(this).parent().find('.slide').slideUp(function(){
//				VSA_handleResize();
			});
			$(this).parent().removeClass('active');
		}
		return false;
	});
}
// ajax tabs
function ajaxTabs(){
	_tab = $('#sidebar li');
	//var _f = true;
	_tab.find('a').click(function(){
		var _page_title = $(this).attr('title');
		if(_page_title) $(document).attr('title', _page_title);
		//if (_f) {
		//	_f = false;
			if(!$(this).parent().is('.active')) {
				var _this = $(this);
				var _href = $(this).attr('href');
				if(_href) {
					$('#sidebar li').removeClass('active');
					var _this = $(this);
					$('.loading').show();
					$.ajax({
						type: "GET",
						url: _href,
						success: function(msg){
							$('.loading').hide();
							$('div.container').html('');
							$('div.container').html(msg);
							_this.parent().addClass('active');
							infoGall();
							mediaLib();
							imgGall();
							$('.scrollable').jScrollPane();
							initAccordion();
							initAjaxPagination();
							setTimeout(function(){
								$('.scrollable').jScrollPane();
								initTabs();
							},500);
						}
					});
				}
			}
		//}
		return false;
	});
}
function imgGall(){
	var _box = $('#content');
	$('ul.gall-list').each(function(){
		var _list = $(this).find('a');
		var _a = _list.parent().index(_list.parent().filter('.active:eq(0)'));
		var _img1, _img2;
		if(_a == -1) _a = 0;
		_list.eq(_a).parent().addClass('active');
		_img1 = $('<img src="'+_list.eq(_a).attr('href')+'" alt="'+_list.eq(_a).attr('rel')+'" />');
		_box.html(_img1);
		var _f = true;
		_list.click(function(){
			if(_list.index(this) != _a && _f){
				_list.eq(_a).parent().removeClass('active');
				$(this).parent().addClass('active');
				_a = _list.index(this);
				_f = false;
				_img2 = $('<img src="'+$(this).attr('href')+'" alt="'+$(this).attr('rel')+'" />');
				_img2.hide();
				_img1.fadeOut(200, function(){
					_box.append(_img2);
					_img2.fadeIn(200, function(){
						_img1.remove();
						_img1 = _img2;
						_f = true;
					});
				});
			}
			return false;
		});
	});
}
function infoGall(){
	var _box = $('#content');
	$('ul.info-list').each(function(){
		var _list = $(this).children();
		var _a = _list.index(_list.filter('.active:eq(0)'));
		if(_a == -1) _a = 0;
		_list.eq(_a).addClass('active');
		$('.loading').show();
		_box.empty();
		$.ajax({
			type: "GET",
			url: _list.eq(_a).children('a[rel="info"]').attr('href'),
			success: function(msg){
				$('.loading').hide();
				_box.html(msg);
				$('.scrollable').jScrollPane();
			}
		});
		_list.click(function(){
			if(_list.index(this) != _a && $(this).children('a[rel="info"]').length){
				_list.eq(_a).removeClass('active');
				_a = _list.index(this);
				_list.eq(_a).addClass('active');
				$('.loading').show();
				$.ajax({
					type: "GET",
					url: _list.eq(_a).children('a[rel="info"]').attr('href'),
					success: function(msg){
						$('.loading').hide();
						_box.empty().html(msg);
						$('.scrollable').jScrollPane();
					}
				});
			}
			return false;
		});
	});
}

function mediaLib(){
	var _box = $('#content');
	$('div.sort-by').each(function(){
		var _list = $(this).children();
		var _a = _list.index(_list.filter('.active:eq(0)'));
		if(_a == -1) _a = 0;
		_list.eq(_a).addClass('active');
		$('.loading').show();
		_box.empty();
		$.ajax({
			type: "GET",
			url: _list.eq(_a).children('a[rel="info"]').attr('href'),
			success: function(msg){
				$('.loading').hide();
				_box.get(0).innerHTML = msg;
				$('.scrollable').jScrollPane();
			}
		});
		_list.click(function(){
			if(_list.index(this) != _a && $(this).children('a[rel="info"]').length){
				_list.eq(_a).removeClass('active');
				_a = _list.index(this);
				_list.eq(_a).addClass('active');
				$('.loading').show();
				$.ajax({
					type: "GET",
					url: _list.eq(_a).children('a[rel="info"]').attr('href'),
					success: function(msg){
						$('.loading').hide();
						_box.get(0).innerHTML = '';
						_box.get(0).innerHTML = msg;
						$('.scrollable').jScrollPane();
					}
				});
			}
			return false;
		});
	});
}

function initAjaxPagination(){
	var _pagerLink = $('.pager li a');
	var _activePageClass = 'active-page';
	var _currPage = _pagerLink.index(_pagerLink.filter('.'+_activePageClass).eq(0));
	var _loadPageContainer = $('.pager-load');
	_pagerLink.click(function(){
		_currPage = _pagerLink.index(this);
		var _pagePath = $(this).attr('href');
		if(_pagePath){
			$.ajax({
				type: "GET",
				url: _pagePath,
				success: function(msg){
					_loadPageContainer.html(msg);
					_pagerLink.removeClass(_activePageClass);
					_pagerLink.eq(_currPage).addClass(_activePageClass);
					infoGall();
					mediaLib();
					imgGall();
				}
			});
		}
		return false;
	});
	var __holder = $('.pager');
	__holder.each(function(){
		var _carousel = $(this).find('.hold');
		var _holder = _carousel.find('ul');
		var _el = _holder.find('li');
		var _elW = _holder.find('li:eq(0)').outerWidth();
		var _linkPrev = __holder.find('.lnk-prev a');
		var _linkNext = __holder.find('.lnk-next a');
		var _animated = false;
		var _slideSpeed = 200; //1 sec animation speed
		// reset
		_holder.css('marginLeft',0);
		if(_el.length>10){
			_linkNext.removeClass('disabled');
			
			// 'prev' click
			_linkPrev.click(function(){
				if(!_animated && !$(this).hasClass('disabled')){
					_linkNext.removeClass('disabled');
					_animated = true;
					_holder.animate({
						'marginLeft':'+=' + _elW
					},_slideSpeed,function(){
						if(parseInt(_holder.css('marginLeft'))>=0) _linkPrev.addClass('disabled');
						_animated = false;
					});
				}
				return false;
			});
			
			// 'next' click
			_linkNext.click(function(){
				if(!_animated && !$(this).hasClass('disabled')){
					_linkPrev.removeClass('disabled');
					_animated = true;
					_holder.animate({
						'marginLeft':'-=' + _elW
					},_slideSpeed,function(){
						if(parseInt(_holder.css('marginLeft')) <= -1*((_elW*_el.length) - _holder.parent().width())) _linkNext.addClass('disabled');
						_animated = false;
					});
				}
				return false;
			});
		}else{
			_carousel.css('width',parseInt(_elW*_el.length));
		}
	});
}

var _tFlag = true;
function initTabs(){
	$('.tabset').find('a.tab').click(function(){
		if (_tFlag) {
			_tFlag = false;
			var _this = $(this);
			var _href = $(this).attr('href');
			if(_href) {
				$('.tabset a').removeClass('active');
				var _this = $(this);
				
				$.ajax({
					type: "GET",
					url: _href,
					success: function(msg){
						_tFlag = true;
						$('#tabz div.tab').html('');
						$('#tabz div.tab').html(msg);
						_this.addClass('active');
						infoGall();
						mediaLib();
						imgGall();
						$('.scrollable').jScrollPane();
						initAccordion();
						setTimeout(function(){
							$('.scrollable').jScrollPane();
							initTabs();
						},500);
					}
				});
			}
		}
		return false;
	});
}
if(window.addEventListener)
	window.addEventListener("load", loadWin, false);
else if (window.attachEvent && !window.opera)
	window.attachEvent("onload", loadWin);
