/*
 * Bookmarks
 */
jQuery.BOOKMARKS_AUTH_PATH 		= "/bookmarks/bookmark_auth.php";
jQuery.BOOKMARKS_DELETE_PATH 	= "/bookmarks/bookmark_delete.php";
jQuery.BOOKMARKS_ADD_PATH 		= "/bookmarks/bookmark_add.php";
jQuery.BOOKMARKS_GET_PATH 		= "/bookmarks/bookmark_get.php";
//
function showLoginDialog(e){
	$("<div/>")
		.append(
			$("<iframe frameborder='no'/>")
				.attr("src", "/bookmarks/lgn.php")
				.attr("width", "400px")							
				.attr("height", "150px")
			)
		.dialog({
			title:  "Login",
			bgiframe: true,
			width: 450,
			height: 300,
			modal: true,
			position: ['top', 100],
			buttons: {
				Ok: function() {
					$(this).dialog('close');
						$.loadBookmarks();					
					}
			}
		});
	return false;
}
//
function generateLoginForm(){
	var html = $("<div> Login first </div>");
	html.append($("<button>Login</button>").button().click(showLoginDialog));
    return html;
}
//
function parseBookmarks(data){
    var div = $("<div id='bk-bkmrks' class='bk-bkmrks'>")
    var ul = $("<ul class='res web'/>");
    //
    $.each(data, function(i, val){
        var li = $("<li class='g' id='bkm-" + val.id + "'/>")
        //		
        var th_url = "http://www.shrinktheweb.com/xino.php?embed=1&STWAccessKeyId=" + STWAccessKeyId +
        "&stwsize=xlg&stwUrl=" + val.url;
		//
		if(val.image)th_url = "/bookmarks/thumb/th-" + val.image; 
        //
        $("<a/>").addClass("th").attr("href", val.url).attr("target", "_new").append($("<img/>").attr("src", th_url).attr("width", "100").attr("height", "75").attr("alt", val.title)).prependTo(li)
        //
		$("<img width='16px' height='16px' src='/bookmarks/favicons/" + val.favicon +"'/>").appendTo(li)
        $("<a/>").attr("href", val.url).attr("target", "_new")		
		.append($("<h3 class='r'/>").html(val.title)).appendTo(li)
        //
        //$("<div/>").attr("title", "Edit").addClass("edit").text("Edit").click(function(){}).appendTo(li)
        //
        //$("<div/>").attr("title", "Move").addClass("move").text("Move").appendTo(li)
        //
        $("<div/>").attr("title", "Delete").addClass("delete").text("Delete").click(function()
		{
			$.deleteFromBookmarks(val.id)
		}).appendTo(li)
        //
        $("<div class='s'/>").appendTo(li).html(limitStr(val.description, 250))
        $("<div class='vu'/>").appendTo(li).html(generateUrl(val.url))
        //
        li.appendTo(ul);
    });
    ul.appendTo(div);
    return div;
}
//
/**
 * Delete from Bookmarks by id
 * @param {Object} options
 */
jQuery.deleteFromBookmarks = function(id){
    var data = {};
	data.bmlist=id
	data.noconfirm=1;
    //
    $.get($.BOOKMARKS_DELETE_PATH, data, function(data){
		$("#bkm-" + id).remove();
    }, "text");
}
//
/**
 * Add to Bookmarks
 * @param {Object} options
 */
jQuery.addToBookmarks = function(options){
    //
    function cleanString(s){
        return s.replace(/<\/?[^>]+>/gi, '');
    }
    //	
    defOptions = {
        url: "",
        title: "",
        description: "",
        image: ""
    }
    var data = $.extend({}, defOptions, options);
    //
    data.title = cleanString(data.title);
    data.description = cleanString(data.description);
    //
    $.post($.BOOKMARKS_ADD_PATH, data, function(data){
    }, "json");
}
/**
 * Load bookmarks to options.id
 * @param {Object} options
 */
jQuery.loadBookmarks = function(options){
	if(!options)options = {};
	//
	var content = '#bookmarks-content';
	//
    defOptions = {		
        folderid: 0
    }
    var data = $.extend({}, defOptions, options);
    //	
    $.get($.BOOKMARKS_GET_PATH, data, function(data){
        //
        if (data.auth == "false") {
            return $(content).html(generateLoginForm());
        }
        //
        var flds = $("<div class='bk-flds ui-widget-header ui-corner-all'/>");
        //
        $.each(data.folders, function(index, value){
            $("<div class='bk-fld'>").css("margin-left", value.level * 10).text(value.name).appendTo(flds).click(function(e){
                options.folderid = value.id;
                $("#bk-bkmrks").html($("<img src='/im/loader.gif'/>"))
                $.loadBookmarks(options);
            });
            
        });
        //
        var bkmrks = parseBookmarks(data.bookmarks);
        //
        $(content).html("");
        $(content).append(flds);
        $(content).append(bkmrks);
        //
    }, "json");
}
/**
 * Chcek Auth
 * @param {Object} options
 */
jQuery.authBookmarks = function(success){
	if (success) {
		var data = {};
		$.get($.BOOKMARKS_AUTH_PATH, data, success, "json");
	}
}
