Ext.ns('Pro.common');

Pro.common.AddBookmark = function() {
	
	var store = new Ext.data.JsonStore({
		remoteSort: false,
		fields: [
			'bookmark', 'label', 'url', 'baseurl', 'shared', 'owner', 'lock'
		],
		proxy: new Ext.data.HttpProxy({
		    url: 'data.php?class=common&feed=getbookmark&pclass='+Pro.common.pclass+'&pid='+Pro.common.pid
		})
	});
	function renderIcon(value, p, record){
	 	return String.format(
	 		'<img src="{2}/favicon.ico" align="absmiddle" width="15" height="15"/>',
	        value, record.data.label, record.data.baseurl);
	}
	function renderItem(value, p, record){
	 	return String.format(
	 		'<b><a href="{2}" target="_new" style="cursor:pointer;">{1}</a></b>',
	        value, record.data.label, record.data.url);
	}
	function renderShare(value, p, record){
		var chk='';
		if (!record.data.lock) {
			if (record.data.shared == 1)
				chk=' CHECKED ';
		 	return String.format(
		 		'<div style="text-align:center;"><input type="checkbox" '+chk+' onclick="sys.connect(null, \'common.js&runmethod=updatebookmark&bookmark='+record.data.bookmark+'\', \'nowrite\');"/></div>',
		        value, record.data.label);
		}
	}
	 
	var grid = new Ext.grid.GridPanel({
		store: store,
		height:225,
		width:500,
		id:'bookmark-list',
		layout:'fit',
		columns: [
			{header: "",  width:55,sortable: true, dataIndex: 'bookmark', renderer: renderIcon},
	    	{header: "Label",  width:240,sortable: true, dataIndex: 'bookmark', renderer: renderItem},
	    	{header: "Owner",  width:140,sortable: true, dataIndex: 'owner'},
	    	{header: "Share",  width:45,sortable: true, dataIndex: 'shared', renderer: renderShare}
		],
		emptyText: 'No bookmarks found',
		frame:false,
		iconCls: 'icon-grid'
	});
	// trigger the data store load
	grid.render('bookmark_list');
	store.load({params:{start:0, limit:10}});
}

Pro.common.GetBookmark = function() {
	var simple = new Ext.FormPanel({
		width:500,
		height:125,
		title:'Add New Bookmark',
        labelWidth: 75,
        frame:true,
        bodyStyle:'padding:5px 5px 0',
        layout: 'form',
		items: [
		{
			xtype:'textfield',
			fieldLabel: 'Name',
			name: 'label',
			allowBlank:false,
			anchor:'95%'
        },{
			xtype:'textfield',
			fieldLabel: 'Url',
			name: 'url',
			allowBlank:false,
			anchor:'95%'
        },{
			xtype: 'hidden',
			id: 'runmethod',
			name: 'runmethod',
			value:'addbookmark'
		},{
			xtype: 'hidden',
			id: 'pclass',
			name: 'pclass',
			value:Pro.common.pclass
		},{
			xtype: 'hidden',
			id: 'pid',
			name: 'pid',
			value:Pro.common.pid
		},{
			buttons: [{
				text: 'Save',
				handler: function(){
					if(simple.getForm().isValid()) {
						simple.getForm().submit({
							waitMsg:'Saving Data...',
							url: 'service.php',
							params: {request: 'common.js'},
							success: function(sObj,aObj) {
								Ext.getCmp('bookmark-list').getStore().load();
							}
						})
					}
				}
			}]
		}]
	});
	simple.render('bookmark_create');
}

Pro.common.Launch = function() {
	Ext.onReady(function(){
		Pro.common.AddBookmark();
		Pro.common.GetBookmark();
	});
}