/*--- tabs function ---*/
function initTabs( ){
  //console.log('initTabs()');
	$('div.tabs ul.tabset').each(function(){
		var btn_h = $(this);
		var _btn = $(this).find('a.tab');
		var _a = _btn.index(_btn.filter('.active:eq(0)'));
		if(_a == -1) _a = 0;
		_btn.removeClass('active').eq(_a).addClass('active');
		_btn.each(function(_i){
			this._box = this.href.substr(this.href.indexOf("#") + 1);
			if(this._box){
				this._box = $('#'+this._box);
				if(_i == _a) this._box.show();
				else this._box.hide();
			}
			this.onclick = function(){
				changeTab(_i);
				return false;
			}
		});
		function changeTab(_ind){
			if(_ind != _a){
				if(_btn.get(_a)._box) _btn.get(_a)._box.hide();
				if(_btn.get(_ind)._box) _btn.get(_ind)._box.show();
				_btn.eq(_a).removeClass('active');
				_btn.eq(_ind).addClass('active');
				_a = _ind;
			}
		}
	});
}
/*--- faid tabs function ---*/
function faidTabs(){
  //console.log('faidTabs()');
	var change_speed = 600; //in ms
	var nav_h = $('#faid-tabs-nav');
	if(nav_h.length){
		var _btn = nav_h.find('a.tab');
		var _a = _btn.index(_btn.filter('.active:eq(0)'));
		if(_a == -1) _a = 0;
		_btn.removeClass('active').eq(_a).addClass('active');
		_btn.each(function(_i){
			this._box = this.href.substr(this.href.indexOf("#") + 1);
			if(this._box){
				this._box = $('#'+this._box);
				if($.browser.msie && $.browser.version < 7){
					if(_i == _a) this._box.addClass('active').css('display', 'block');
					else this._box.removeClass('active').css('display', 'none');
				}
				else{
					if(_i == _a) this._box.addClass('active').css('opacity', '');
					else this._box.removeClass('active').css('opacity', 0);
				}
			}
			this.onclick = function(){
				changeTab(_i);
				return false;
			}
		});
		function changeTab(_ind){
	    //console.log('changeTab()');
			if(_ind != _a){
				if($.browser.msie && $.browser.version < 7){
					if(_btn.get(_a)._box) _btn.get(_a)._box.removeClass('active').css('display', 'none');
					if(_btn.get(_ind)._box) _btn.get(_ind)._box.addClass('active').css('display', 'block');
				}
				else{
					if(_btn.get(_a)._box) _btn.get(_a)._box.removeClass('active').animate({opacity: 0}, {queue:false, duration: change_speed});
					if(_btn.get(_ind)._box) _btn.get(_ind)._box.addClass('active').animate({opacity:''}, {queue:false, duration: change_speed});
				}
				_btn.eq(_a).removeClass('active');
				_btn.eq(_ind).addClass('active');
				_a = _ind;
			}
		}
	}
}
/*--- gallery function ---*/
function initGall(){
  //console.log('initGall()');
	var change_speed = 600; //in ms
	var _hold = $('#gallery');
	if(_hold.length){
		var _list = _hold.find('.item > ul > li');
		var btn_prev = _hold.find('.btns .prev a');
		var btn_next = _hold.find('.btns .next a');
		var _a = Math.floor(Math.random() * _list.length);
		_list.removeClass('active').css('opacity', 0).eq(_a).addClass('active').css('opacity', '');
		btn_prev.click(function(){
			if(_a > 0) changeEl(_a - 1);
			else changeEl(_list.length - 1);
			return false;
		});
		btn_next.click(function(){
			if(_a < _list.length - 1) changeEl(_a + 1);
			else changeEl(0);
			return false;
		});
		function changeEl(_ind){
	    //console.log('changeEl()');
			if(_ind != _a){
				_list.eq(_a).removeClass('active').animate({opacity: 0}, {queue:false, duration: change_speed});
				_list.eq(_ind).addClass('active').animate({opacity:''}, {queue:false, duration: change_speed});
				_a = _ind;
			}
		}
	}
}
/*--- clear inputs function ---*/
function clearInputs(){
  //console.log('clearInputs()');
	$('input:text, input:password, textarea').each(function(){
		if(!this.val) this.val = this.value;
		this.onfocus = function(){
			if(this.value == this.val) this.value = '';
		}
		this.onblur = function(){
			if(this.value == '') this.value = this.val;
		}
	});
}
/*--- random image function ---*/
function randomImg(){
  //console.log('randomImg()');
	$('div.random-img').each(function(){
		var _list = $(this).find('img');
		var _a = _list.index(_list.filter('.active:eq(0)'));
		if(_a == -1) _a = Math.floor(Math.random() * _list.length);
		_list.removeClass('active').hide().eq(_a).addClass('active').show();
	});
}

function wwwEventFeed(feedUrl,limit,portletType) {
	$.getJSON(feedUrl, function (data) {
		var $rssFeed = data.rss.channel.item;
		if ($rssFeed !== undefined) {
			$.each($rssFeed.slice(0, limit), function (i) {
				var title  	= truncateString(this.title.split(' - ')[1], 70),
				timeAndDate = this.title.split(' - ')[0].replace(/\b\d{4}\b/, ''),
				date		= timeAndDate.split(',')[0].replace(/^\s+|\s+$/g,""),
				time		= timeAndDate.split(',')[1].replace(/^\s+|\s+$/g,""),
				desc  		= this.description,
				link  		= this.link;
				
				if (time === '') { time = 'All Day'; }
				
				if (portletType === 'side') {
					var $eventsPortlet = $('.events-portlet'), last = '';
					if(i == limit-1) {last = 'class="last"'};
						$($eventsPortlet).find('.list').append('<li '+ last +' ><a href="'+ link +'">'  + title + '</a><br />' + date + ' | ' + time + '</li>');
				} else {
						var $calendarFeed = portletType === 'body' ? $('.container .calendar') : $('.events .content');
						$('<div class="eventline"></div>').append('<div class="timedate"><p>' + 
													date + '</p><p class="time">' + 
													time + '</p></div><div class="title"><a href="' + link + '">' + 
													title + '</a></div><div class="cf"></div>').appendTo($calendarFeed);
					}
			});
		} else {
        	if (portletType === 'side') {
				var $eventsPortlet = $('.events-portlet'), url = location.href;
				if(url.toLowerCase().indexOf('reddot') != -1) {
       				 $($eventsPortlet).find('.list').append('<li><p>There are no current events in your calendar.</p><p>Please visit <a href="http://cal.unmc.edu">cal.unmc.edu</A> to add events.</p></li>');
     			} else {
        			$($eventsPortlet).find('.list').append('<li>No current events at this time</li>');
				 }
					
			}
		}
	});

	String.prototype.trim= function() {
		a=this.replace(/^\s+/,'');
		return a.replace(/\s+$/,'');
	};
}

function wwwNewsFeed(feedUrl,limit,portletType) {
	$.getJSON(feedUrl, function (data) {
		var $rssFeed = data.rss.channel.item,
			$newsFeed = $('#newsFeed');

		$.each($rssFeed.slice(0, limit), function () {
			var title = this.title,
			desc  = portletType === 'body' ? truncateString(this.description, 45) : truncateString(this.description, 80),
			link  = this.link,
			image = this.unmcimage,
			category = this.category;
			if (image === undefined || image.indexOf('dev') !== -1) {
				image = 'http://www.unmc.edu/wwwimages/news_placeholder.jpg';
			}
			
			if (portletType === 'body') {
				$('.news ul').append('<li><a href="'+ link +'" alt="'+ title +'">' + title + '</a><br />' + desc + '</li>');
			} else if (portletType === 'side') {
				$('.research-news ul').append('<li><a href="'+ link +'" alt="'+ title +'">' + title + '</a></li>');
			} else {
				$('<div class="box"></div>').append('<h4>' + category + '</h4><div><a href="' + link + '"><img src="' + image + '" alt="' + title + '"/></a></div><ul><li><a href="' + link + '">' + title + '</a></li><li>' + desc + '</li></ul>').appendTo($newsFeed);
			}
		});
	});
}

function truncateString(targetString, charLimit) {
	if (targetString.length > charLimit) {
		return $.trim(targetString.substring(0, charLimit).replace(/\s*[^\s]+$/, '')) + "...";
	} else {
		return targetString
	}
}

function tabHack() {
	var path = window.location.pathname,
		$tabs = $('.main-nav ul a'),
		$breadcrumbs = $('.breadcrumbs a');

	$.each($tabs, function(){
			var $tab  = $(this);

		if ($tab.attr('href') === path) {
			$tab.addClass('currentTab');
		} 

		$.each($breadcrumbs, function() {
			if($(this).text() === $tab.text()) {
				$tab.addClass('currentTab');
			};
		});
	});
}


$(document).ready(function(){
	faidTabs();
	initTabs();
	initGall();
	randomImg();
	clearInputs();
	tabHack();
});
