var messageFrame = null;

//--------------------------------------------------------------

function logIn()
{
	  var link = __('loginLink'); 	
	  messageFrame = Boxy.ask('<div class="box-message general-icon">'+__('This action is only availbable to registered users. Click %1% to register. If you are registered already, click %2% to login.', {'%1%' : __('link_to_signup'), '%2%' : __('link_to_login')})+'</div>', [__('Continue')], function(val) {
		messageFrame.hide();  
	  }, {closeable: true, title: __('Friend'), closeAfterClick: false,
	    behaviours: function(r) { 
	    	$(r).hover(
	    		function() { $(this).css("background-color", "#FFF8DC"); }, 
	    		function() { $(this).css("background-color", "#FFFFFF"); }
	    		);
	    	}
	  });
}

function addFriend(username, elem, stamp)
{
    messageFrame = Boxy.ask('<div class="box-message friend-add">'+__('Do you want to add %1% to your friend list?', {'%1%' : username})+'</div>', [__('Yes'), __('No')], function(val) {
      if (val == __('Yes'))
      {
      	$.ajax({
            data: {username: username, stamp: stamp},
            type: 'POST',
            url: $(elem).attr('href'),
            timeout: 9000,
            success: function(r) {
	            var r_idx  = r.indexOf('/');               
	            var r_status = r.substr(0,r_idx);
	            var r_body = r.substr(r_idx+1);
				
		      	newContent = Boxy.generateContent(r_body,[__('Ok')], 
		      	function(val) {
			      if (val == __('Ok'))
			      {
					messageFrame.hide();	      	
			      }
		      	});
		      messageFrame.setContent(newContent);
        	}
        }); 
      } 
      else
      {
      	messageFrame.hide();
      }     
    }, {title: __('Friend'), closeable: true, closeAfterClick: false,
	    behaviours: function(r) { 
	    	$(r).hover(
	    		function() { $(this).css("background-color", "#FFF8DC"); }, 
	    		function() { $(this).css("background-color", "#FFFFFF"); }
	    		);
	    	}
	    });
}

function removeFriend(username, elem, stamp)
{
    messageFrame = Boxy.ask('<div class="box-message friend-add">'+__('Do you really want to remove %1% from your friend list?', {'%1%' : username})+'</div>', [__('Yes'), __('No')], function(val) {
      if (val == __('Yes'))
      {
      	$.ajax({
            data: {username: username, stamp: stamp},
            type: 'POST',
            url: $(elem).attr('href'),
            timeout: 9000,
            success: function(r) {
	            var r_idx  = r.indexOf('/');               
	            var r_status = r.substr(0,r_idx);
	            var r_body = r.substr(r_idx+1);
				
		      	newContent = Boxy.generateContent(r_body,[__('Ok')], 
		      	function(val) {
			      if (val == __('Ok'))
			      {
					messageFrame.hide();	      	
			      }
		      	});
		      messageFrame.setContent(newContent);
		      if (r_status == 'success')
		      {
				$(elem).attr('href', $(elem).attr('href').replace('remove','add'));
				childs = $(elem).children();
				$(childs[0]).text(__('Add as friend'));
		      }
        	}
        }); 
      } 
      else
      {
      	messageFrame.hide();
      }     
    }, {closeable: true, title: __('Friend'), closeAfterClick: false,
	    behaviours: function(r) { 
	    	$(r).hover(
	    		function() { $(this).css("background-color", "#FFF8DC"); }, 
	    		function() { $(this).css("background-color", "#FFFFFF"); }
	    		);
	    	}
	    });
}

function addFavourite(username, elem, stamp)
{
 messageFrame = Boxy.ask('<div class="box-message favourite-add">'+__('Do you want to add %1% to your favourite list?', {'%1%' : username})+'</div>', [__('Yes'), __('No')], function(val) {
      if (val == __('Yes'))
      {
      	$.ajax({
            data: {username: username, stamp: stamp},
            type: 'POST',
            url: $(elem).attr('href'),
            timeout: 9000,
            success: function(r) {
	            var r_idx  = r.indexOf('/');               
	            var r_status = r.substr(0,r_idx);
	            var r_body = r.substr(r_idx+1);
				
		      	newContent = Boxy.generateContent(r_body,[__('Ok')], 
		      	function(val) {
			      if (val == __('Ok'))
			      {
					messageFrame.hide();	      	
			      }
		      	});
		      messageFrame.setContent(newContent);
		      if (r_status == 'success')
		      {
				$('#favouriteRemovelink').show();
				$('#favouriteRemoveImg').show();
				
				$('#favouriteAddlink').hide();
				$('#favouriteAddImg').hide();
		      }
        	}
        }); 
      } 
      else
      {
      	messageFrame.hide();
      }     
    }, {title: __('Favourite'), closeable: true, closeAfterClick: false,
	    behaviours: function(r) { 
	    	$(r).hover(
	    		function() { $(this).css("background-color", "#FFF8DC"); }, 
	    		function() { $(this).css("background-color", "#FFFFFF"); }
	    		);
	    	}
	    });
}

function removeFavourite(username, elem, stamp)
{
 messageFrame = Boxy.ask('<div class="box-message favourite-add">'+__('Do you really want to remove %1% from your favourite list?', {'%1%' : username})+'</div>', [__('Yes'), __('No')], function(val) {
      if (val == __('Yes'))
      {
      	$.ajax({
            data: {username: username, stamp: stamp},
            type: 'POST',
            url: $(elem).attr('href'),
            timeout: 9000,
            success: function(r) {
	            var r_idx  = r.indexOf('/');               
	            var r_status = r.substr(0,r_idx);
	            var r_body = r.substr(r_idx+1);
				
		      	newContent = Boxy.generateContent(r_body,[__('Ok')], 
		      	function(val) {
			      if (val == __('Ok'))
			      {
					messageFrame.hide();	      	
			      }
		      	});
		      messageFrame.setContent(newContent);
		      if (r_status == 'success')
			  {
				$('#favouriteRemovelink').hide();
				$('#favouriteRemoveImg').hide();
				
				$('#favouriteAddlink').show();
				$('#favouriteAddImg').show();
			  }
        	}
        }); 
      } 
      else
      {
      	messageFrame.hide();
      }     
    }, {title: __('Favourite'), closeable: true, closeAfterClick: false,
	    behaviours: function(r) { 
	    	$(r).hover(
	    		function() { $(this).css("background-color", "#FFF8DC"); }, 
	    		function() { $(this).css("background-color", "#FFFFFF"); }
	    		);
	    	}
	    });
}

function addFavouriteStock(ticker, elem, stamp)
{
	 messageFrame = Boxy.ask('<div class="box-message favourite-add">'+__('favourite_stock Do you want to add %1% to your favourite stock list?', {'%1%' : $.trim($('#stockname_header').html())})+'</div>', [__('Yes'), __('No')], function(val) {
	      if (val == __('Yes'))
	      {
	      	$.ajax({

	            data: {ticker: ticker, stamp: stamp},
	            type: 'POST',
	            url: $(elem).attr('href'),
	            timeout: 9000,
	            success: function(r) {
		            var r_idx  = r.indexOf('/');               
		            var r_status = r.substr(0,r_idx);
		            var r_body = r.substr(r_idx+1);
					
			      	newContent = Boxy.generateContent(r_body,[__('Ok')], 
			      	function(val) {
				      if (val == __('Ok'))
				      {
						messageFrame.hide();	      	
				      }
			      	});
			      messageFrame.setContent(newContent);
			      if (r_status == 'success')
			      {
					$('#favouriteRemovelink').show();
					$('#favouriteRemoveImg').show();
					
					$('#favouriteAddlink').hide();
					$('#favouriteAddImg').hide();
			      }
	        	}	      		
	      		
	        }); 
	      } 
	      else
	      {
	      	messageFrame.hide();
	      }     
	    }, {title: __('favourite_stock Favourite stock'), closeable: true, closeAfterClick: false,
		    behaviours: function(r) { 
		    	$(r).hover(
		    		function() { $(this).css("background-color", "#FFF8DC"); }, 
		    		function() { $(this).css("background-color", "#FFFFFF"); }
		    		);
		    	}
		    });
}

function removeFavouriteStock(ticker, elem, stamp)
{
	 messageFrame = Boxy.ask('<div class="box-message favourite-add">'+__('favourite_stock Do you really want to remove %1% from your favourite stock list?', {'%1%' : ticker})+'</div>', [__('Yes'), __('No')], function(val) {
	      if (val == __('Yes'))
	      {
	      	$.ajax({

	            data: {ticker: ticker, stamp: stamp},
	            type: 'POST',
	            url: $(elem).attr('href'),
	            timeout: 9000,
	            success: function(r) {
		            var r_idx  = r.indexOf('/');               
		            var r_status = r.substr(0,r_idx);
		            var r_body = r.substr(r_idx+1);
					
			      	newContent = Boxy.generateContent(r_body,[__('Ok')], 
			      	function(val) {
				      if (val == __('Ok'))
				      {
						messageFrame.hide();	      	
				      }
			      	});
			      messageFrame.setContent(newContent);
			      if (r_status == 'success')
			      {
					$('#favouriteRemovelink').hide();
					$('#favouriteRemoveImg').hide();
					
					$('#favouriteAddlink').show();
					$('#favouriteAddImg').show();
			      }
	        	}	      		
	      		
	        }); 
	      } 
	      else
	      {
	      	messageFrame.hide();
	      }     
	    }, {title: __('favourite_stock Favourite stock'), closeable: true, closeAfterClick: false,
		    behaviours: function(r) { 
		    	$(r).hover(
		    		function() { $(this).css("background-color", "#FFF8DC"); }, 
		    		function() { $(this).css("background-color", "#FFFFFF"); }
		    		);
		    	}
		    });
}

//--------------------------------------------------------------

$(document).ready(function(){
	$('#changeRelations a,.AvatarWithOverlay .remove-small-button').click(function(){
		var actionUrl = $(this).attr('href');
		var actionUrlArray = actionUrl.split("/");
		
		// we take three last params - relation name/action/username
		// we take three last params - relation name/action/object_name
		if (actionUrlArray.length < 3) return true;
		var relation = actionUrlArray[actionUrlArray.length - 4];
		var action = actionUrlArray[actionUrlArray.length - 3];
		var object_name = actionUrlArray[actionUrlArray.length - 2];
		var stamp = actionUrlArray[actionUrlArray.length - 1];
		
		callFunction(relation, action, object_name, this, stamp);		
		//console.log('relation: '+relation+' action: '+action+' username: '+username);
		
		return false;
	});	
});
    
function callFunction(relation, action, object_name, elem, stamp)
{
	if (action == 'unlogged')
	{
		logIn();
		return;
	}
	
	if (relation == 'friend')
	{
		switch(action)
		{
			case 'add':
				addFriend(object_name, elem, stamp);
				break;
			case 'remove':
				removeFriend(object_name, elem, stamp);
				break;
		}
	}
	else if(relation == 'favourite')
	{
		switch(action)
		{
			case 'add':
				addFavourite(object_name, elem, stamp);
				break;
			case 'remove':
				removeFavourite(object_name, elem, stamp);
				break;
			case 'addStock':
				addFavouriteStock(object_name, elem, stamp);
				break;
			case 'removeStock':
				removeFavouriteStock(object_name, elem, stamp);
				break;
		}
	}	
}