$('document').ready(function() {
	dropDown();
	
	rbmaFeed = new FeedFetcher();
	rbmaFeed.init($('#rbma #feed'));
	
	var OtherNewsFeed  = new StudiosFeed();
	OtherNewsFeed.init();
		
	$("#accordion").accordion();
});

function dropDown() {
	var current_studio = $('#current_studio'),
		current_studio_class = current_studio.find('span').attr('class');
	
	$('#nav_items li.' + current_studio_class).hide();
			
	$('#studio_selector')
		.hover(
			function() {
				$('#nav_items').show();
				current_studio.addClass('expanded');
			},
			function() {
				$('#nav_items').hide();
				current_studio.removeClass('expanded')
			});
}

$.fn.unwrap = function() {
  this.parent(':not(body)')
    .each(function(){
      $(this).replaceWith( this.childNodes );
    });

  return this;
};

var FeedFetcher = function() {
	var feedURL = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fwww.redbullmusicacademy.com%2Ffileadmin%2Frss%2Fdailynews_rss.xml%22%20limit%203&format=json&diagnostics=true&callback=?';

	var maxLength = 250;
	var feedHTML = '';

	var fmtDate = function(rawDate) {
		/* Fixes indexOf support for IE */
		Array.prototype.indexOf=function(o,i){for(var j=this.length,i=i<0?i+j<0?0:i+j:i||0;i<j&&this[i]!==o;i++);return j<=i?-1:i}

		var day, month, year,
			month_dict	= ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
			
		rawDate = rawDate.split(' ', 4);
		day	= padZero(rawDate[1]);
		month = padZero(month_dict.indexOf(rawDate[2]) + 1);
		year = rawDate[3].slice(2,4);

		return (month +'.'+ day +'.'+ year);
	};
	
	var padZero = function(digit) {
		return (digit < 10 ? '0' : '') + digit;
	};
	
	var truncate = function(rawStr) {
		var trunc = (rawStr) ? $('<p>' + rawStr + '</p>').text() : '';

		if(trunc.length > maxLength) {
			trunc = trunc.substring(0, maxLength);
		    trunc = trunc.replace(/\w+$/, '');
		
			trunc += '...';
		}

		return trunc;
	};
	
    //return public interface
    return {
        init : function(ele) {
			var feedHTML = '';
			
			$.getJSON(feedURL, function(data) {
				$.each(data.query.results.item, function(key, value) {
					feedHTML += '<li>\
									<h4><span class="date">'+ fmtDate(value.pubDate) +' - </span>' + value.title + '</h4>\
									<p class="description">'+ truncate(value.description) + '</p>\
									<a href="'+ value.link + '" class="perm_link">Details</a>\
								</li>';
				});

				ele.html(feedHTML);
			});
        }
    }
}

var StudiosFeed = function(url) {
	
	var locale = $('#WTsp').val();
	
	var feedURLs = {		
		us: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fwww.redbullusa.com%2Fcs%2FSatellite%3FassetTypes%3DRB_Video%252CRB_Gallery%252CRB_Article%252CRB_AudioCollection%26c%3DSiteEntry%26cid%3D1237398815511%26locale%3D1237401840060%26maxRows%3D20%26p%3D1242852990773%26pageCount%3D1%26pagename%3DRedBull%252FFeed%252FFeedSubscription%26searchPageName%3DLA%2BStudio%26searchPageType%3DRBCATEGORY%26searchSortBy%3DDATE%26searchString%3DLA%2BStudio%26searchType%3DCategoryBased%26site%3DRedBullUSA%26sortOrder%3DDesc%22%20limit%201%20&format=json&diagnostics=true&callback=?",

		gb: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fwww.redbull.co.uk%2Fcs%2FSatellite%3FassetTypes%3DRB_Video%252CRB_Gallery%252CRB_Article%252CRB_AudioCollection%26c%3DSiteEntry%26cid%3D1237398815511%26locale%3D1237404256307%26maxRows%3D20%26p%3D1242850700298%26pageCount%3D1%26pagename%3DRedBull%252FFeed%252FFeedSubscription%26searchPageName%3DLondon%2BStudio%26searchPageType%3DRBCATEGORY%26searchSortBy%3DDATE%26searchString%3DLondon%2BStudio%26searchType%3DCategoryBased%26site%3DRedBullUK%26sortOrder%3DDesc%22%20limit%201%20&format=json&callback=?",
		
		nz: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fwww.redbull.co.nz%2Fcs%2FSatellite%3FassetTypes%3DRB_Video%252CRB_Gallery%252CRB_Article%252CRB_AudioCollection%26c%3DSiteEntry%26cid%3D1237398815511%26locale%3D1237405203925%26maxRows%3D20%26p%3D1242852938842%26pageCount%3D1%26pagename%3DRedBull%252FFeed%252FFeedSubscription%26searchPageName%3DAuckland%2BStudio%26searchPageType%3DRBCATEGORY%26searchSortBy%3DDATE%26searchString%3DAuckland%2BStudio%26searchType%3DCategoryBased%26site%3DRedBullNZ%26sortOrder%3DDesc%22%20limit%201%20&format=json&callback=?",

		za: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fwww.redbull.co.za%2Fcs%2FSatellite%3FassetTypes%3DRB_Video%252CRB_Gallery%252CRB_Article%252CRB_AudioCollection%26c%3DSiteEntry%26cid%3D1237398815511%26locale%3D1237405781497%26maxRows%3D20%26p%3D1242853560191%26pageCount%3D1%26pagename%3DRedBull%252FFeed%252FFeedSubscription%26searchPageName%3DCape%2BTown%2BStudio%26searchPageType%3DRBCATEGORY%26searchSortBy%3DDATE%26searchString%3DCape%2BTown%2BStudio%26searchType%3DCategoryBased%26site%3DRedBullZA%26sortOrder%3DDesc%22%20limit%201&format=json&diagnostics=true&callback=?",

		nl: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fwww.redbull.nl%2Fcs%2FSatellite%3FassetTypes%3DRB_Video%252CRB_Gallery%252CRB_Article%252CRB_AudioCollection%26c%3DSiteEntry%26cid%3D1237398815511%26locale%3D1238617975504%26maxRows%3D20%26p%3D1243010769301%26pageCount%3D1%26pagename%3DRedBull%252FFeed%252FFeedSubscription%26searchPageName%3DAmsterdam%2BStudio%26searchPageType%3DRBCATEGORY%26searchSortBy%3DDATE%26searchString%3DAmsterdam%2BStudio%26searchType%3DCategoryBased%26site%3DRedBullNL%26sortOrder%3DDesc%22%20limit%201&format=json&diagnostics=true&callback=?"
			
	};
		
	function parse(result, studio) {		
		// var localeToStudio = {
		// 	us: 'Los Angeles Studio',
		//           
		// 	gb: 'London Studio',
		//           
		// 	nz: 'Auckland Studio',
		// 
		// 	za: 'Cape Town Studio'
		// }

		var localeMeta = {
			us: {
				studio: 'Los Angeles Studio',
				url: 'http://www.redbullusa.com/cs/Satellite/en_US/LA-Studio/001242852990773'
			},
          
			gb: {
				studio: 'London Studio',
				url: 'http://www.redbull.co.uk/cs/Satellite/en_UK/Music-and-Entertainment/Music/London-Studio/001242850700298'
			},
          
			nz: {
				studio: 'Auckland Studio',
				url: 'http://www.redbull.co.nz/cs/Satellite/en_NZ/Auckland-Studio/001242852938842'
			},

			za: {
				studio: 'Cape Town Studio',
				url: 'http://www.redbull.co.za/cs/Satellite/en_ZA/Cape-Town-Studio/001242853560191'
			},

			nl: {
				studio: 'Amsterdam Studio',
				url: 'http://www.redbull.nl/cs/Satellite/du_NL/Amsterdam-Studio/001243010769301'
			}			

		};
				
		var description = result.description;
				description = isArray(description) ? description[1] : description;
		
		var assetType = $(description).find('a').text().split(' ');
				assetType = (assetType.length == 3) ? assetType[2] : assetType[1];
		
		var feedHTML = '<li class="clearfix ' + studio + '">\
											<h3 class="clearfix"><a href="' + localeMeta[studio].url + '">' + localeMeta[studio].studio + '</a></h3> \
											<h4 class="' + assetType.toLowerCase() + '"><a href="' + result.link + '"> ' + result.title + '</a><span> - ' + parseDate(result.pubDate) + '</span></h4> \
											<div class="body clearfix">' + description + '</div>\
											<a class="more_studio" href="' + localeMeta[studio].url + '">more from the ' + localeMeta[studio].studio + '</a>\
										</li>';
		
		$('#feed_list')	
			.append(feedHTML)
			.show();
	}
	
	function getFeed(feedURL, i) {		
		$.ajax({
				url: feedURL,
				dataType: 'jsonp',					
				success: function(result){
					parse(result.query.results.item, i);
				}
		});
	}
	
	function isArray(ele) {
		return (typeof ele == "object" && typeof ele.length == "number" && typeof ele.push == 'function');
	}
	
	function parseDate(pubDate) {
		if (pubDate == null) return '';
		
		var arr = pubDate.split(' ');
		return arr[1] + ' ' + arr[2] + ' ' + arr[3];
	}
	
	return {
		
		init: function(itemCount) {			
			$.each(feedURLs, function(i, n) {
				(i != locale) && getFeed(n, i);
			});
		}
		
	}
};
