		
	function setCookie(c_name,value,expiredays)
	{
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+expiredays);
		document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toUTCString()) + "; path=/";
	}

	function getCookie(c_name)
	{
	var i,x,y,ARRcookies=document.cookie.split(";");
	for (i=0;i<ARRcookies.length;i++)
	{
	  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
	  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
	  x=x.replace(/^\s+|\s+$/g,"");
	  if (x==c_name)
	  {
	    return unescape(y);
	   }
	  }
	}
	
	function imageLoadFadeIn(element)
	{
		$(element).css({ 'opacity' : 0.0 });
		$(element).css('visibility', 'visible');
		$(element).fadeTo(400, 1.0);
	}
	
	function postComment()
	{
		$.ajax({
			url: '/ajax',
			type: 'POST',
			dataType: 'json',
			data: {
				action: 'addCommentActivity',
				mediaId: $('.widget-media-activity form.activity-comment-add').attr('data-media-id'),
				message: $('.widget-media-activity form.activity-comment-add').find('textarea.comment-message').val()
			},
			success : function(data)
			{
				if (data.status == 'ok')
				{
					location.reload();
				}
				else
				{
					//if not loggedin
					if(data.status == 'notloggedin')
					{
						dialogManager.show('login');
						
						//on succesful login, try again
						$('body').attr('data-login-callback', 'postComment');
					}
				}
			}
		});
	}
	
	$(document).ready(function() 
	{		
		$('.widget-media-activity form.activity-comment-add').delegate('textarea.comment-message', 'focus', function()
		{
			commentTextarea = $(this);
			if (commentTextarea.hasClass('hasDefaultValue') == true)
			{
				commentTextarea.val('');
				commentTextarea.removeClass('hasDefaultValue');
			}
		});
		
		
		$('.tab').delegate('.tab-links ul li a', 'click', function()
		{
			parent = $(this).parents('.tab');
			
			currentIndex = parent.attr('data-current-tab');
			
			widgetIndex = $(this).attr('data-widget-index');
			
			if (currentIndex != widgetIndex)
			{
				parent.find('.tab-links a').removeClass('selected');
				$(this).addClass('selected');
				
				widgets = parent.find('.tab-widgets .widget');
				widgets.hide();
				$(widgets.get(widgetIndex)).show();
				parent.attr('data-current-tab', widgetIndex);
			}

			return false;
		});
		
		//default JS implementation of a widget with thumbnails and a previous/next button
		$('.widget-navigation-thumbs .navigation').delegate('.widget-nav-button', 'click', function()
		{
			//because 'this' scope is changing
			button = $(this);
			
			//return if this block is busy loading content
			//if(button.hasClass('busy'))
			//	return false;
			
			button.addClass('busy');
			button.siblings('.widget-nav-button').addClass('busy');
			
			pageCurrent = parseInt(button.parent().attr('data-pages-current'));
			pageCount = parseInt(button.parent().attr('data-pages-total'));
			amount = parseInt(button.parent().attr('data-amount-per-page'));
			
			widgetID = button.parent().attr('data-widget-id');
			ajaxAction = button.parent().attr('data-ajax-action');
			ajaxVars = button.parent().attr('data-ajax-vars');
			
			if (button.hasClass('next'))
			{
				if (pageCurrent+1 >= pageCount)
					return false;
				
				pageCurrent = pageCurrent + 1;
	
				if (pageCurrent > 0)
					button.siblings('.button-previous').removeClass('disabled');
	
				if (pageCurrent + 1 >= pageCount)
					button.addClass('disabled');
			}
			else if (button.hasClass('previous'))
			{
				if (pageCurrent <= 0)
					return false;
				
				pageCurrent = pageCurrent - 1;
				
				if (pageCurrent <= 0)
					$(this).addClass('disabled');

				if (pageCount > 0)
					$(this).siblings('.button-next').removeClass('disabled');
			}
			
			button.parent().attr('data-pages-current', pageCurrent);
			
			//does the page already exist? if not retrieve it.
			if(button.siblings('#page-' + pageCurrent).length == 0)
			{
				button.parent().siblings('.loading').show();
				
				$.ajax(
				{
					url     : '/ajax?action=' + ajaxAction + '&widget-id=' + widgetID + '&page=' + pageCurrent + '&amount=' + amount + '&' + ajaxVars,
					dataType: 'json',
					success : function(data)
					{ 
						if(data.status == 'ok')
						{
							button.parent().append('<ul class="tab-content" id="page-' + pageCurrent + '"></ul>');
							button.siblings('#page-' + pageCurrent).html(data.response.html);
							
							button.siblings('#page-' + pageCurrent).show();
							button.siblings('.tab-content').not('#page-' + pageCurrent).hide();
							button.parent().siblings('.loading').hide();
						}
						else {
							alert(data.result);
						}
					},
					error: function (XMLHttpRequest, textStatus, errorThrown) {
				        alert("XMLHttpRequest="+XMLHttpRequest.responseText+"\ntextStatus="+textStatus+"\nerrorThrown="+errorThrown);
				    }
				});
			}
			else 
			{
				button.siblings('#page-' + pageCurrent).show();
				button.siblings('.tab-content').not('#page-' + pageCurrent).hide();
			}
			
			//remove busy state and free up block for browsing
			button.removeClass('busy');
			button.siblings('.widget-nav-button').removeClass('busy');

			return false;
		});
		
		$('.stream-live').each(function(index, value) 
		{ 
			alert(value);
		});
		
		
		$('.widget-media-activity form.activity-comment-add').bind('submit', function()
		{
			postComment();
			
			return false;
		});
		
		$('.livestream-day li').live('click', function() {
			document.location = $(this).attr('data-destination-url');
		});
		
		$('.widget-livestream .show-more').live('click', function() 
		{	
			widgetLive = $(this).parents('ul.widget-livestream');
			
			widgetID = widgetLive.attr('data-widget-id');
			pageType = widgetLive.attr('data-type');
			//alert (widgetLive.attr('data-widget-id'));	
			
			$.ajax({
				url: '/ajax',
				type: 'GET',
				dataType: 'json',
				data: {
					action: 'getWidgetStreamLiveItems',
					widgetId: widgetLive.attr('data-widget-id'),
					streams: widgetLive.attr('data-identifier'),
					type: pageType,
					maxId: widgetLive.attr('data-lowest-id'),
					amount: 20
				},
				success : function(data)
				{
					if (data.status == 'ok')
					{
						widgetLive.find('li ul.livestream-day').append(data.response.html);
						widgetLive.attr('data-lowest-id', data.response.maxId);
					}
					else
					{
						alert ("Error");
					}
				}
			});
		});
		
		$('.widget-moderation').delegate('.action.remove-media-from-stream', 'click', function()
		{
			mediaItemId = $(this).attr('data-media-id');

			$.ajax({
				url: '/ajax',
				type: 'POST',
				dataType: 'json',
				data: {
					action: 'removeMediaFromStreams',
					mediaId: mediaItemId
				},
				success : function(data)
				{
					if (data.status == 'ok')
					{
						alert (data.message);
					}
					else
					{
						alert (data.message);
					}
				}
			});
			
			return false;
		});
		
		$('.widget-mediabar .navigation').delegate('.widget-nav-button', 'click', function()
		{
			//because 'this' scope is changing
			button = $(this);
			
			//return if this block is busy loading content
			//if(button.hasClass('busy'))
			//	return false;
			
			button.addClass('busy');
			button.siblings('.widget-nav-button').addClass('busy');
			
			pageCurrent = parseInt(button.parent().attr('data-pages-current'));
			pageCount = parseInt(button.parent().attr('data-pages-total'));
			amount = parseInt(button.parent().attr('data-amount-per-page'));
			
			widgetID = button.parent().attr('data-widget-id');
			widgetType = button.parent().attr('data-type');
			platformId = button.parent().attr('data-platform');
			ajaxAction = button.parent().attr('data-ajax-action');
			
			if(button.hasClass('next'))
			{
				if (pageCurrent+1 >= pageCount)
					return false;
				
				pageCurrent = pageCurrent + 1;
	
				if (pageCurrent > 0)
					button.siblings('.button-previous').removeClass('disabled');
	
				if (pageCurrent + 1 >= pageCount)
					button.addClass('disabled');
				

				ajaxVars = 'maxId=' + button.parent().attr('data-lowest-id');
			}
			else if (button.hasClass('previous'))
			{
				if (pageCurrent <= 0)
					return false;
				
				pageCurrent = pageCurrent - 1;
				
				if (pageCurrent <= 0)
					$(this).addClass('disabled');

				if (pageCount > 0)
					$(this).siblings('.button-next').removeClass('disabled');
				
				ajaxVars = 'minId=' + button.parent().attr('data-highest-id');
			}
			
			button.parent().attr('data-pages-current', pageCurrent);
			
			//alert('/ajax?action=' + ajaxAction + '&widgetId=' + widgetID + '&page=' + pageCurrent + '&amount=' + amount + '&' + ajaxVars + '&streams=' + button.parent().attr('data-identifier'));
			
			//does the page already exist? if not retrieve it.
			if(button.siblings('#page-' + pageCurrent).length == 0)
			{
				button.parent().siblings('.loading').show();
				
				$.ajax(
				{
					url     : '/ajax?action=' + ajaxAction + '&widgetId=' + widgetID + '&page=' + pageCurrent + '&type=' + widgetType + "&platformId=" + platformId +
								'&amount=' + amount + '&' + ajaxVars + '&streams=' + button.parent().attr('data-identifier'),
					dataType: 'json',
					success : function(data)
					{ 
						if(data.status == 'ok')
						{
							button.parent().append('<ul class="tab-content" id="page-' + pageCurrent + '"></ul>');
							button.siblings('#page-' + pageCurrent).html(data.response.html);
							
							button.siblings('#page-' + pageCurrent).show();
							button.siblings('.tab-content').not('#page-' + pageCurrent).hide();
							button.parent().siblings('.loading').hide();
							
							//set new maxId
							button.parent().attr('data-lowest-id', data.response.maxId);
							
							//set new maxId
							button.parent().attr('data-highest-id', data.response.maxId);
						}
						else {
							alert(data.result);
						}
					},
					error: function (XMLHttpRequest, textStatus, errorThrown) {
				        alert("XMLHttpRequest="+XMLHttpRequest.responseText+"\ntextStatus="+textStatus+"\nerrorThrown="+errorThrown);
				    }
				});
			}
			else 
			{
				button.siblings('#page-' + pageCurrent).show();
				button.siblings('.tab-content').not('#page-' + pageCurrent).hide();
			}
			
			//remove busy state and free up block for browsing
			button.removeClass('busy');
			button.siblings('.widget-nav-button').removeClass('busy');

			return false;
		});
		
		$('.widget-permission-request').delegate('.ajax-button', 'click', function()
		{
			$.ajax(
			{
				url: '/ajax?action=setRequestPermission',
				dataType: 'json',
				type: 'POST',
				data: $(this).parents('form').serializeArray(),
				success : function(data)
				{ 
					if(data.status == 'ok')
					{
						if ($('p.done-yes').length > 0)
						{
							$('.widget-permission-request .row').hide();
							$('.widget-permission-request .row.explanation').show();
							$('.widget-permission-request .row.explanation p').hide();
							
							if (data.choice == 'yes')
								$('.widget-permission-request p.done-yes').show();
							else if ($data.choice == 'no')
								$('.widget-permission-request p.done-no').show();
						}
						else
						{
							$('.widget-permission-request').hide();
						}	
					}
					else {
						alert(data.message);
					}
				},
				error: function (XMLHttpRequest, textStatus, errorThrown) {
			        alert("XMLHttpRequest="+XMLHttpRequest.responseText+"\ntextStatus="+textStatus+"\nerrorThrown="+errorThrown);
			    }
			});
		});
		

		$('.widget-shoutbox .media-input').live('change', function()
		{
			widgetShoutbox = $(this).parents('.widget-shoutbox');
			
			filename = $(this).val();
			if (filename.lastIndexOf('\\') > -1)
				filename = filename.substring(filename.lastIndexOf('\\'));
			
			photoExtensions = new Array('jpg', 'jpeg', 'png', 'bmp', 'tiff');
			videoExtensions = new Array('mp4', 'mov', '3gp', '3gpp', 'avi', 'mpg', 'mkv', 'flv');
			audioExtensions = new Array('mp3', 'wav', 'ogg', 'flac', 'amr');
			
			unsupportedExtensions = new Array('zip', 'rar', 'doc', 'docx', 'rtf', 'gz', 'xml', 'json', 'pdf', 'swf', 'csv', 'exe', 'bat');
			
			mediaType = 'unknown';
			
			if (filename.lastIndexOf('.') > -1 && filename.length > filename.lastIndexOf('.') + 1)
			{
				// Show media specific destinations
				extension = filename.substring(filename.lastIndexOf('.') + 1);
				extension = extension.toLowerCase();

				if (photoExtensions.indexOf(extension) > -1)
					mediaType = 'photo';
				else if (videoExtensions.indexOf(extension) > -1)
					mediaType = 'video';
				else if (audioExtensions.indexOf(extension) > -1)
					mediaType = 'audio';
				else if (unsupportedExtensions.indexOf(extension) > -1)
					mediaType = 'unsupported';
			}
			
			if (mediaType == 'unknown')
			{
				widgetShoutbox.find('form ul li').show();
			}
			else if (mediaType == 'unsupported')
			{
				alert('this file is not supported');
			}
			else
			{
				widgetShoutbox.find('form ul li').hide();
				widgetShoutbox.find('form ul li.media-'+mediaType).show();
			}

			//alert (mediaType);
		});
		

	});
