/**
 * @author iPrior
 */
var Bookmark = {
    type: false,
    id: false,
	link:false,
    comment: false,
    Confirm: function(type, id, link){
		this.link = link;
        this.type = new xmlrpcval(type, 'i4');
        this.id = new xmlrpcval(id, 'i4');
        var templ = new Template('<h3>Добавить #{type} в закладки?</h3><div><label for="bm_comment">Комментарий к закладке:</label><br /><textarea name="bm_comment" id="bm_comment" rows="5" style="width: 99%"></textarea></div><div><input onclick="javascript:Bookmark.Send();" type="button" name="button" id="OK" value="OK" /></div>');
        switch (type) {
            case 1:
                var show = {
                    type: 'пользователя'
                };
                break;
            case 2:
                var show = {
                    type: 'работу'
                };
                break;
            case 3:
                var show = {
                    type: 'проект'
                };
                break;
        }
        previewHTML(templ.evaluate(show),'Добавить закладку');
		setTimeout("$('bm_comment').focus()", 1000);
    },
    Send: function(){
        this.comment = new xmlrpcval($F('bm_comment'), 'string');
        var param = new xmlrpcval();
        if (param.addStruct({
            type: this.type,
            id: this.id,
            comment: this.comment
        }) == 0) 
            throw 'Cannot add struct to params';
        var client = new xmlrpc_client('/xmlrpc/', window.location.host);
        var msg = new xmlrpcmsg('bookmark');
        msg.addParam(param);
		//closePreviewHTML();
		Modalbox.show('<div> <p><img src="/img/loader.gif" align=left>Сохраняем закладку</p><span style="clear:both;"> </span></div>',{title:'Пожалуйста, подождите', height: 180});
        //var w = XMLRPC_Loading("Пожалуйста, подождите");
		
        try{
			var ret = client.send(msg);
			if (ret.faultCode()) 
				throw ret.faultString() + ' (' + ret.faultCode() + ')';
			
			if (ret.value().kindOf() != 'scalar') 
				throw 'Invalid kind of return value (' + ret.value().kindOf() + ')';
			
			if (ret.value().scalarTyp() != 'string') 
				throw 'Invalid type of return value (' + ret.value().scalarTyp() + ')';
			
			if (ret.value().scalarVal() != 'done') 
				throw ret.value().scalarVal();
        
			//XMLRPC_Timeout();
			this.link.update('В закладках');
			this.link.removeClassName('bookmark_no');
			this.link.addClassName('bookmark_yes');
			this.link.onclick = 0;
			this.link.href = "/setup/?cmd=bookmarks";
			this.type = false;
			this.id = false;
			this.comment = false;
			this.link = false;
			Modalbox.hide(); 
		}
		catch (err) {
			Modalbox.show('<div class="err">Ошибка : ' + err + '</div><center><button class="g_button" onClick="Modalbox.hide()">OK</button></center>','');
		}
	}
}

