function initTabs() {
	jQuery('ul.tabset').each(function(){
		var _list = jQuery(this);
		var _links = _list.find('a.tab');

		_links.each(function() {
			var _link = jQuery(this);
			var _href = _link.attr('href');
			var _tab = jQuery(_href);

			if(_link.hasClass('active')) _tab.show();
			else _tab.hide();

			_link.click(function(){
				_links.filter('.active').each(function(){
					jQuery(jQuery(this).removeClass('active').attr('href')).hide();
				});
				_link.addClass('active');
				_tab.show();
				return false;
			});
		});
	});
}

function lyrics() {
	var _lyrics = jQuery('#lyrics');
    if (!_lyrics.length) return false;
	var _url = jQuery('a',_lyrics).attr('href');
	jQuery.ajax({
		url: _url,
		dataType: (jQuery.browser.msie) ? 'text' : 'xml',
		success: function(xmlData){
			var data;
			if ( typeof xmlData == 'string') {
				data = new ActiveXObject( 'Microsoft.XMLDOM');
				data.async = false;
				data.loadXML(xmlData);
			} else {
				data = xmlData;
			}
			
			var _item = jQuery(data).find('item');
			var _i = Math.floor(_item.length * Math.random());
			var _result = jQuery("<blockquote id=\""+jQuery('id',_item.eq(_i)).text()+"\"><p>\""+jQuery('quote',_item.eq(_i)).text()+"\"</p><strong>- <a href=\""+jQuery('url',_item.eq(_i)).text()+"\">"+jQuery('author',_item.eq(_i)).text()+"</a>, <em>\""+jQuery('song',_item.eq(_i)).text()+"\"</em></strong></blockquote>");
			_lyrics.html(_result);
		},
		error : function(e){
		//	alert('lyrics ajax error!');
		}
	});
}


function fadeGallery(){
	var _swichTime = 6000;
	var _d = 500;
	jQuery('.gallery').each(function(){
		var _this = jQuery(this);
		var _list = jQuery('.gallery-holder li', _this);
		var _linksHold = jQuery('.control', _this);
		var _htmlNav ='<ul>';
		for(var i=0; i<_list.length; i++) {
			_htmlNav += '<li><a href="#">'+(i+1)+'</a></li>';
		}
		_htmlNav +='</ul>';
		_linksHold.html(_htmlNav);
		var _links = jQuery('li', _linksHold);
		var _btnPrev = jQuery('.back a',_this);
		var _btnNext = jQuery('.next a', _this);
		var _a = _list.index(_list.filter('.active:eq(0)'));
		if(_swichTime) _swichTime +=_d;
		if(_a == -1) _a = 0;
		_list.removeClass('active').css('opacity', 0).eq(_a).addClass('active').css('opacity', 1).css('opacity', 'auto');
		_links.eq(_a).addClass('active');
		var _t;
		if (_swichTime){
			_t = setTimeout(function(){
				if(_a < _list.length - 1) changeEl(_a + 1);
				else changeEl(0);
			}, _swichTime);
		}
		if (_btnPrev){
			_btnPrev.click(function(){
				var _prevItem = 0;
				if (_a > 0) _prevItem = _a-1;
				else _prevItem = _list.length-1;
				changeEl(_prevItem);
				return false;
			})
		}
		if(_links){
			_links.click(function(){
				var _ind = _links.removeClass('active').index(jQuery(this).addClass('active'));
				changeEl(_ind);
				return false;
			})
		}
		if (_btnNext){
			_btnNext.click(function(){
				var _nextItem = 0;
				if (_a < _list.length - 1) _nextItem = _a+1;
				else _nextItem = 0;
				changeEl(_nextItem);
				return false;
			})
		}
		function changeEl(_ind){
			if(_t) clearTimeout(_t);
			if(_ind != _a){
				_links.removeClass('active').eq(_ind).addClass('active');
				_list.eq(_a).removeClass('active').css({display:'block'}).animate({opacity: 0}, {queue:false, duration:_d});
				_list.eq(_ind).addClass('active').animate({opacity: 1}, {queue:false, duration:_d,complete:function(){
					jQuery(this).css('opacity', 'auto');
				}});
				_a = _ind;
			}
			if (_swichTime){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, _swichTime);
			}
		}
	});
}

jQuery.fn.sortElem = function(_options){
	// defaults options
	var _options = jQuery.extend({
		btn : 'a.btn-sort',
		list: '> li'
	},_options);

	return this.each(function(){
		var _this = this;
		_this.list = jQuery(_this).find(_options.list);
		_this.btn = jQuery(_this).find(_options.btn);
		_this.parent = _this.list.eq(0).parent();
		_this.btn.click(function(){
			if(!jQuery(this).hasClass('sorted')){
				_this.list.each(function(){
					_this.parent.prepend(jQuery(this));
				});
				_this.btn.removeClass('sorted');
				jQuery(this).addClass('sorted');
				_this.list = jQuery(_this).find(_options.list);
				_this.btn = jQuery(_this).find(_options.btn);
			}
			return false;
		});
        _this.btn.eq(0).addClass('sorted');
	});
}


function sortElem(){
	jQuery('#comments').sortElem({
		list: 'ol.comments > li'
	});
}
jQuery(document).ready(function(){
	initTabs();
	fadeGallery();
	sortElem();
    lyrics();
});