function addFlag(content_id, reason){
    
    $.post(
        baseUrl + "/index/flag/add",
        {
            content_id : content_id,
            reason     : reason
        },
        function(data){
            if(data.success){
                // notify user
            }else{
                // notify user
            }
        },
        "json"
    );
    
}

function enableSwitchClick(event){
    if ($(this).hasClass("enabled")) {
		$(this).removeClass("enabled")
               .addClass("disabled");

		$("#" + this.id + "-input").val(1);
	} else {
		$(this).removeClass("disabled")
               .addClass("enabled");

		$("#" + this.id + "-input").val(0);
	}
	return false;
}

function privateSwitchClick(event){
    var el = $(this);
    
    if (el.hasClass('info_public')) {
		el.removeClass('info_public');
		el.addClass('info_private');
		var toId = this.id+'-input';
		$('#'+this.id+'-input').attr('value', '1');
		el.siblings('input.privacy').val('1');
	} else if (el.hasClass('info_private')) {
		el.removeClass('info_private');
		el.addClass('info_public');
		$('#'+this.id+'-input').attr('value', '0');
		el.siblings('input.privacy').val('0');
	}
	return false;
}

function privatePublicClick(event){
    var invis = null;
	var theid = null;
	
	theid = $(this).text();
	 			
	if ($(this).hasClass('info_public')) {
		$(this).removeClass('info_public');
		$(this).addClass('info_private');
		invis = "private";
	} else if ($(this).hasClass('info_private')){				
		$(this).removeClass('info_private');
		$(this).addClass('info_public');
		invis = "public";
	}
	
	$.post( baseUrl+'/index/content/processpublic', {id: theid, visible: invis}, function (data){
		//console.log("success ");
	});			

	return false;
}


$(document).ready( function() {
	
    $('.enableSwitch').click(enableSwitchClick);

	$('.privateSwitch').each(function() {
		$(this).click(privateSwitchClick);
	});
		
	$('.privatePublic').each(function(){
		$(this).click(privatePublicClick);
	});
	
	$('.showtag').click(function(){		
		$(this).parent().siblings('.add_tags').toggle('fast');
		return false;
	});
	
	
//	$('#dialog').jqm();
//$("#links").load("/Main_Page #jq-p-Getting-Started li");
//$('#element').load(url, {id: content_id);
		
	$('.link_top_padding, .confirmation_link').click(function(){
		$('.child-'+this.id).show('slow');
		return false;		
	});
	
	$('.blockfollower').click(function(){
		$('.block_confirmation_box#block_confirmation_box_'+this.id).show('slow');
		return false;		
	});
	
	$('.unblockfollower').click(function(){
		$('.unblock_confirmation_box#unblock_confirmation_box_'+this.id).show('slow');
		return false;		
	});
	
	$('.block_confirm_no, .unblock_confirm_no').click(function(){
	    $(this).parent().parent().hide('slow');
	    return false;
	});
	
	$('.confirm_no').click(function() {
	    $('.child-'+this.id).hide('slow');
	    return false;
	});
	
	
});

function revealadminfilter(width) {
	$("#exportarea").hide();
	$("#exportarealink").show();
	
	$("#filtercontrols").hide();
	$("#filterarea").css({position:'', width:'', marginLeft:'', padding:''});

	$("#filterarea").css({position:'static',float:''});
	$("#filterarea").animate({width:width+'px', marginLeft:'100px'}, 600, 'linear', function() { 
		$("#filterarea").css({margin:'15px auto', padding:'10px', float:'none'});
	});
	$("#filtercontrols").slideDown(400);
	$("#filterspacingbreak").slideUp(400);
	$("#adminfilterreveallink").hide();
	
	$("#exportcontrols").hide();
	$("#exportarea").css({position:'', width:'', marginLeft:'', padding:''});
	$("#adminexportreveallink").show();	
	
	$("#exportarealink").css({position:'relative',float:'left'});
}

function revealadminexport(width) {
	$("#exportarea").show();
	$("#exportarealink").hide();
	
	$("#filtercontrols").hide();
	$("#filterarea").css({position:'', width:'120px', margin:'5px', padding:'0px'});
	$("#adminfilterreveallink").show();
	
	$("#exportarea").css({position:'static',float:''});
	
	$("#exportarea").animate({width:width+'px', marginLeft:'100px'}, 600, 'linear', function() { 
		$("#exportarea").css({margin:'15px auto', padding:'10px', float:'none'});
	});
	$("#exportcontrols").slideDown(400);
	$("#filterspacingbreak").slideUp(400);
	$("#adminexportreveallink").hide();
	
	$("#filterarea").css({position:'relative',float:'left'});
}

/* USER HOME LAYOUT/WIDGET FUNCTIONS */
function updateColumn(e) {
	$.post(baseUrl + '/users/home/save-widget-order', { order_str: e.sortable('serialize') });
}

function saveLayout() {
	var col1 = $('#user_column_1').sortable('serialize');
	var col2 = $('#user_column_2').sortable('serialize');
	
	var minimized = '';
	var totalMin = 0;
	$('.minimized').each(function(i) {
		if ($(this).hasClass('minimized')) {
			if (i != 0) {
				minimized += '&';
			}
			minimized += 'minimized[]='+this.id;
			totalMin = i;
		}
	});
	
	var hidden = '';
	var totalHid = 0;
	$('.hidden').each(function(i) {
		if ($(this).hasClass('hidden')) {
			if (i != 0) {
				hidden += '&';
			}
			hidden += 'hidden[]='+this.id;
			totalHid = i;
		}
	});
	
	var postUrl = baseUrl + '/users/home/save-widget-layout';
	$.post(postUrl, { col1: col1 , col2: col2 , minimized: minimized, hidden: hidden});
}

function disabledClick(e) {
	$(e).removeClass('disabledWidget');
	var widgetId = $(e).parent().attr('id').replace(/_li/, '');
	$('#'+widgetId).show().removeClass('hidden');
	
	saveLayout();
	
	return false;
}

/** Friending Funtions **/

/**
 * addFriend
 *
 * @param int friend_id
 * @param function callback - must take two parameters (boolean success, string message)
 */
function addFriend(id, callback){
    var params = {
        friendId : id,
        format: 'json'
    };
    
    $.ajax({
        url  : baseUrl + '/users/friends/add-friend',
        data : params,
        dataType : 'json',
        success : function(response){
            callback(response.success, response.message);
        },
        error   : function(){
            callback(false, 'unknown error occured');
        }
    });
    
}

function deleteCommentConfirm(el){
    $(el).parent().siblings('.confirmation_box').show('slow');
}

/**
 * deleteComment
 * 
 * @param int comment_id
 */
function deleteComment(comment_id){
    $('p#comment-' + comment_id).fadeOut('slow');
    
    $.post(
        baseUrl + '/index/comments/delete',
        {
            id : comment_id,
            format : 'json'
        },
        function(){
            if(typeof currentPageComments != 'undefined' && typeof updateCommentPage != 'undefined'){
                updateCommentPage(currentPageComments);
            }
        }
    );
}

function addTag(content_id, tag, callback){
    
    
    
}

/**
 * el is the <a> that called this
 */
function deleteTag(content_id, tag_id, el){
    if(confirm('Are you sure you want to remove this tag?')){
        $(el).parent().fadeOut('slow');
        
        //$this->view->url(array('module'=>'index', 'controller'=>'tags','action'=>'unlink', 'id'=>$tag['tag_id'], 'content_id'=>$page->content_id), 'default')
        $.post(
            baseUrl + '/index/tags/unlink',
            {
                id         : tag_id,
                content_id : content_id,
                format     : 'json'
            }
        );  
    }
   
    return false;
}

/**
 * Updates tab displayed in extended content pane
 *
 * @param element el The <a> that should be active onced clicked
 * @param string name
 */
function displayMetaContent(el, name){
    
    var element = $(el);
    
    element.siblings().removeClass('active');
    element.addClass('active');
    
    if(name == 'comments' && commentsLoaded == false){
        // only load comments when necessary
        updateCommentPage(1);
    }
    
    // get the meta content that should be displayed, show it, and hide siblings
    $('#meta_content #meta_content_' + name).show().siblings().hide();
    
    return false;
    
}

/**
 * Hide prompt flag
 *
 * @param int content_id
 */
function completeContentFlag(content_id){
    $('#flag_confirmation_box p#flagprompt').hide();
    $('#flag_confirmation_box p#flagdone').show();
    addFlag(content_id);
}