

Ext.ns('Ps');
Ps.defs={CLTYPES:["Utfylte sjekklister","Spesielle sjekklistemaler","Standard sjekklistemaler","Egne sjekklistemaler"]};
Ps.grid={};
//en del vanlige kolonner
Ps.grid.col={defaults: {
	id: {
		header: 'ID',
		dataIndex: 'id',
		width: 20,
		hidden: true
	},
	number:{
        header: "Nr",
        width: 15,
        sortable: true,
        dataIndex: 'number',
        hidden: true
    },
	type: {
		header: 'Type',
		dataIndex: 'type',
		width: 20,
		hidden: true,
		groupRenderer:function(a,b,c){
			var t = c.data.type;
			return Ps.defs.CLTYPES[t]+(t==1||t==2?" ("+App.NAME+")":"");
		}
	},
	name: {
		header: 'Navn',
		sortable: true,
		width: 150,
		dataIndex: 'name',
		renderer: ex
	},
	description: {
		header: 'Beskrivelse',
		sortable: true,
		width: 225,
		dataIndex: 'description',
		renderer: ex
	},
	shortDescription:{
		header : 'Kort beskrivelse',
		width : 280,
		dataIndex : 'shortDescription',
		renderer : ex
	},
	freq:{
		header : 'Frekvens',
		sortable : true,
		width : 75,
		dataIndex : 'freq'
	},active:{
		header : 'Aktiv',
		dataIndex : 'active',
		width : 30,
		hidden : true
	}
}};

//			,{header: 'Opprettet', sortable: true, width: 75, dataIndex: 'created'/*,renderer:Ext.util.Format.dateRenderer('m/d/Y')*/}
//			,{header: 'Sist endret', sortable: true, width: 75, dataIndex: 'updated'}
Ps.grid.pdfBtn=function(url,txt){
	return {
		text : txt||'Rapport',tooltip:'Last ned PDF-rapport for utskrift',iconCls : 'pdf_',
		handler : function(){dl_pdf(url);}
	}
};
Ps.data={
	defaults:{
		id:{name:'id'},
		name:{name:'name'},
		description:{name:'description',allowBlank: false},
		type:{name:'type'},
		created:{name:'creates'}
	}
};

Ps.win={
	defaults:function(){
		var def ={
			    modal: true,
			    plain: true,
				maximizable: true,
				minHeight: 300,
        		minWidth: 400,
			    layout: 'fit'
			}; 
		return {			
			def:def,
			large:Ext.apply({
				width: 950,
			    height: 550
			},def),
			medium:Ext.apply({
				width:600,
				height:400
			},def)
		}
	}()
};

Ps.defaults={
	getTabPanel:function(){
		var p ={
            xtype: 'tabpanel',
            border: false,
            anchor: '100% 100%',
            activeTab: 0},
            d = {
                border: false,
                height: 'auto',
                autoScroll: true
            };
		p.defaults=Ext.apply({},d);
		return Ext.apply({},p);
	}
	,checklist:{
		rec:function(){
			var d=Ps.data.defaults;
			return [
				d.id,
				d.name,
				d.type,
				d.description,
                d.created,
				{name: 'a'},
				{name: 'b'}
		    ];
		}(),
		
		columns:function(){
			var cd =Ps.grid.col.defaults;
			return [
            	cd.id, 
            	cd.type,
            	cd.name,
            	cd.description];
		}()
	}
	,checkItems:{
		columns:function(){
			var cd =Ps.grid.col.defaults;
			return [
            	cd.id, 
            	cd.number,
            	cd.description];
		}()
	}
};
		
Ps.divTypes = {
	buildingPart:8,
	clItem:9
};

Ps.statusStore = new Ext.data.ArrayStore({
    fields: ['ordinal', 'text', 'icon'],
    idIndex: 0,
    data: [[0, 'Ikke valgt...', ''], [1, 'OK', 's_ok'], [2, 'Advarsel', 's_warning'], [3, 'Feil', 's_error'], [4, 'Under oppføring', 's_uc'], [5, 'Ferdig', 's_complete']]
});


Ps.statusTpl = new Ext.XTemplate('{status:this.f}', {
    f: function(v){
        if (v) {
            return '<img unselectable="on" class="x-tree-node-icon ' + Ps.statusStore.getById(v).data.icon + '" src="/r/images/default/s.gif">';
        }
        return '';
    }
}).compile();

Ps.LargeWin = Ext.extend(Ext.Window,{
	initComponent:function(){
		
		Ext.apply(this,Ps.win.defaults.large,{
	        border: false,
			plain: false
		});
		
		Ps.LargeWin.superclass.initComponent.call(this);
		
	}
});

Ps.updateStatus = function(status, node){
    var a = node.attributes, s = a.status || 0;
    if (status !== s) {
        Ext.Ajax.request({
            url: 'nodes/' + node.id + '/updateStatus/' + status,
            success: function(response){
                a.status = status;
                node.ui.updateText(3, Ps.statusTpl.apply({
                    status: status
                }));
                Ext.getCmp('controlTree').getSelectionModel().select(node);
                //var obj = Ext.decode(response.responseText);
            }
        })
    }
}

Ps.createKey = function(k, b){
    var s = b.text, p = s.search(k, 'i')
    if (p !== -1) {
        s = s.slice(0, p) + '<span class="key">' + s.slice(p, p + 1) + '</span>' + s.slice(p + 1);
    }
    b.text = s + ' (Ctrl+' + k.toUpperCase() + ')';
    return {
        ctrl: true,
        key: k,
        stopEvent: true,
        fn: b.handler
    };
};

Ps.createMetaFormWin = function(title,items,cb){
	var w,fp = new Ext.form.FormPanel({
		items:items,
		defaults:{
			xtype:'textfield',
			anchor:'-20'
		},
		bodyStyle:'padding:8px',
		buttons:[{
			text:'Lagre',
			iconCls:'save',
			handler:function(){
				if(fp.form.isValid()){
					cb(fp,w);
				}else{
					feil('Mangler må rettes før data kan lagres');					
				}
			}
		},{
			text:'Avbryt',
			handler:function(){w.close();}
		}]
	});
	w = new Ext.Window({
		title:title,
		hideBorders:true,
		layout:'fit',
		height:220,
		width:400,
		modal:true,
		items:[fp]
	});
	
	w.show();
}
Ps.createNemaDescFormWin =function(title,cb){
	Ps.createMetaFormWin(title,[{
            fieldLabel: 'Navn',
            name: 'name',
            allowBlank: false
        }, {
            fieldLabel: 'Beskrivelse',
            name: 'description',
            xtype: 'textarea'
        }],cb);
};

