
$(document).ready(function() {
	rez.init();
	favs.init();
	lightbox.init();
});

String.prototype.replaceAll = function(search, replace){
  	return this.split(search).join(replace);
}

var Bipper = function() {
	this.movie;
	this.sound = '/sfx/bip3.mp3';
	this.init = function() {
		var s1 = new SWFObject('/mediaplayer/mediaplayer.swf', 'bipper', '0', '0', '8');

		s1.addParam('allowfullscreen', 		'true');
		s1.addVariable('file', 				this.sound);
		s1.addVariable('javascriptid',  	'bipper');
		s1.addVariable('enablejs',      	'true');
		s1.addVariable('autostart',    		'false');

		s1.write('simpleplayer');

		this.movie = ($.browser.msie) ? window["bipper"] : document["bipper"];
		
		// Add an onclick event to arrows
		$('span.next, span.previous').click(function() {
			bipper.bip();
		});
	}
	this.bip = function() {
		this.movie.sendEvent('stop');
		this.movie.sendEvent('playpause');
	}
}

var lightbox = {
	item: new Object(),
	init: function() {
		
		$('#twitIt').click(function() {
			$('#twitterSending').html('Sending... please wait').slideDown();
			$.ajax({
				type:   	'post',
		        url:    	'/backend/dashboard/message-to-twitter',
				dataType: 	'json',
				data: 		$('#twitterForm').serialize(),
		        success: 	function(response) {
					if (!checkServerResponse(response)) { 
						$('#twitterSending').html('An error occured');
						return; 
					}
					$('#twitterSending').html('Message has been sent.');
					setTimeout(function() {
						$('#twitterSending').slideUp();
					}, 5000);
				},
			});
		});
		
		$('#lbPermalinkInput1, #lbPermalinkInput2').click(function() {
			this.select();
		});
	},
	start: function(item) {
		this.item = item;
		this.setPermalink();
		$('#lbHiddensDd').val(this.getItem().isHidden == 1 ? '0' : '1');
		this.getShortUrl();
	},
	getShortUrl: function(data) {
		if (data) {
			for (var field in data.results) {
				this.shortUrl = data.results[field].hashUrl;
				//var pref = shortUrlPrefix ? shortUrlPrefix : '[rezpondr.com]';
				var pref = '[rezpondr.com]';
				$('#twitterMessage').val(pref + ' ' + this.shortUrl + ' — ');
				$('#lbPermalinkInput2').val(this.shortUrl);
			}
		} else {
			$.getScript('http://api.bit.ly/shorten?version=2.0.0&api_key=R_1e9672b31e60d44a0192fc2b63d5cd2d&long_url=' + $('#lbPermalinkInput1').val() + '&callback=lightbox.getShortUrl&jsoncallback=?');
		}
	},
	getItem: function() {
		var items = rez.data[this.item.type];
		for (var i = 0; i < items.length; i++) {
			if (items[i].id == this.item.itemId) {
				return items[i];
			}
		}

		var fItems = favs.favItems;
		for (var i = 0; i < fItems.length; i++) {
			if (fItems[i].id == this.item.itemId) {
				
				return fItems[i];
			}
		}
		
		var fgItems = favs.gloItems;
		for (var i = 0; i < fgItems.length; i++) {
			if (fgItems[i].id == this.item.itemId) {
				return fgItems[i];
			}
		}

		
		var plItems = playlist.items;
		for (var i = 0; i < plItems.length; i++) {
			if (plItems[i].id == this.item.itemId) {
				return plItems[i];
			}
		}
	
		
		return false;
	},
	setPermalink: function() {	
		var title = this.getItem().title.toLowerCase();
		title = title.replaceAll(' ', '-');
		title = title.replaceAll(',', '');
		title = title.replaceAll('.', '');
		title = title.replaceAll('/', '');
		title = title.replaceAll('---', '-');
		title = title.replaceAll('--', '-');
		$('#lbPermalinkInput1').val(
			'http://' + subdomainName + '.rezpondr.com/' + this.item.type + '/' + this.item.itemId + '-' + title
		);
	},
	hidden: function() {
		$.ajax({
	        type:   	'post',
	        url:    	'/backend/hide-media',
			data: 		'itemId=' + this.item.itemId + '&serviceId=' + this.item.serviceId + '&' + $('#lbHiddens').serialize(),
			dataType: 	'json',
	        success: 	function(response) {
				if (!checkServerResponse(response)) { return; }
				tb_remove();
				
				if (response.result.value == '1') {
					lightbox.item.element.addClass('hidden');
				} else {
					lightbox.item.element.removeClass('hidden');
				}
			}
		});
		$('#tooltip').hide();
	},
	favs: function() {
		$.ajax({
	        type:   	'post',
	        url:    	'/backend/favs/add',
			data: 		'itemId=' + this.item.itemId + '&serviceId=' + this.item.serviceId,
			dataType: 	'json',
	        success: 	function(response) {
				if (!checkServerResponse(response)) { return; }
				tb_remove();
				scroll(0, picturePreview.getPageSize().pageHeight);
				favs.init();
			}
		});
		$('#tooltip').hide();
	},
	initTt: function() {
		$('.tt').click(function() {
			
			$('#tooltipTrigger').click();
			
			$("#example").accordion("destroy");
			$("#example").accordion();

			lightbox.start({
				serviceId: $(this).attr('s'),
				itemId: $(this).attr('i'),
				element: $(this).parent(),
				type: $(this).attr('t')
			});
		});
	}
	,
	initPcm: function(s, i, t) {//open lightbox for add favourite and comment
		$('.pcm').click(function() {
			$('#tooltipTrigger').click();
			
			$("#example").accordion("destroy");
			$("#example").accordion();	
			lightbox.start({
				serviceId: s,
				itemId: i,
				element: $(this).parent(),
				type: t
			});
			
		});
	}
}

var favs = { 
	item: new Object(),
	items: new Object(),
	favItems: new Object(),
	gloItems: new Object(),
	init: function() {
		this.load();
		$('#favsOptions select').change(function() {
			favs.load($('#favsOptions').serialize());
		});
		
		$('#favsOptionsGlob select').change(function() {
			favs.load($('#favsOptionsGlob').serialize());
		});
	},
	load: function(params) {
		$.ajax({
	        type:   	'get',
	        url:    	'/favs',
			dataType: 	'json',
			data: 		params, 
	        success: 	function(response) {
				if (!checkServerResponse(response)) { return; }
				favs.buildForSubdomain(response.result.favs.items);
				favs.buildForGlobal(response.result.favs.itemsGlobal);
				favs.favItems = response.result.favs.items;
				favs.gloItems = response.result.favs.itemsGlobal; 
				favs.data = response.result.items;
			}
		});
	},
	buildForSubdomain: function(data) {
		$('#favsContainer').fadeOut(function() {
			$('#favsContainer').empty();
			$.each(data, function(i, m) {
				var li = $('<li />').appendTo('#favsContainer');
				
				switch(m.type)
				{
					/*case 'flickr':
						var a = $('<a class="picturePreview" />').appendTo(li).attr({
								href: m.pData.substring(0, m.pData.length - 6) + m.pData.substring(m.pData.length - 4),
								rel: m.pData.substring(0, m.pData.length - 6) + m.pData.substring(m.pData.length - 4),
								title: m.title
							});
							
						var img = $('<img alt="thumbnail" class="itemThumbnail"/>').appendTo(a).attr({
							src: m.pData,
							title: m.title
						});
						$('<br />').appendTo(li);
				
						break;*/
					default:
						var img = $('<img alt="thumbnail" class="itemThumbnail" />').appendTo(li).attr({
							src: m.pData,
							title: m.title
						});
											
						img.click(function(u)
						{
							rez.showFav(m);
						});
						$('<br />').appendTo(li);

						break;
				}
			});
			$('#favsContainer').fadeIn();
		});
		
	},
	buildForGlobal: function(data) {
		$('#favsContainerGlobal').fadeOut(function() {
			$('#favsContainerGlobal').empty();
			$.each(data, function(i, m) {
				var li = $('<li />').appendTo('#favsContainerGlobal');
				
				switch(m.type)
				{
					case 'flickr':
						var a = $('<a class="picturePreview" />').appendTo(li).attr({
								href: m.pData.substring(0, m.pData.length - 6) + m.pData.substring(m.pData.length - 4),
								rel: m.pData.substring(0, m.pData.length - 6) + m.pData.substring(m.pData.length - 4),
								title: m.title
							});
							
						var img = $('<img alt="thumbnail" class="itemThumbnail"/>').appendTo(a).attr({
							src: m.pData,
							title: m.title
						});
						$('<br />').appendTo(li);
				
						break;
					default:
						var img = $('<img alt="thumbnail" class="itemThumbnail" />').appendTo(li).attr({
							src: m.pData,
							title: m.title
						});
						
						img.click(function(s, u, l)
						{
							rez.showFav(m.type, m.url, m.link);
						});
						$('<br />').appendTo(li);

						break;
				}
			});
			$('#favsContainerGlobal').fadeIn();
		});
	}
}