/**
 * ------------------------------------------------------------
*创建一个通用的工具类，用于帮助其它javascripts的生成
* -------------------------------------------------------------
*/
Ext.ns('com.faceye.ui');
Ext.ns('com.faceye.ui.util');
Ext.ns('com.faceye.components');
Ext.ns('com.faceye.components.rss');
Ext.ns('com.faceye.compoents.core.security');
Ext.ns('com.faceye.portal');
Ext.ns('com.faceye.portal.portlet');
Ext.ns('com.easou.portal.portlet');
Ext.ns('com.easou.util');
//定义全局路径
var BP='';
var DEFAULT_VIEW_PORT_ID='easou-home-viewport';
//var BP='http://192.168.1.236:8092/monitor2/';
//var BP='http://localhost/monitor2/';


/**
 * ************************************************************
 *  tree 工具类
 * 
 * *************************************************************
 */
 com.faceye.ui.util.Tree=function(el,rootName,rootId,url){
 	
 };
 /**
  * 生成分页工具条
  */
 com.faceye.ui.util.PaggingToolBar=function(pageSize,store){
 	return new com.faceye.ui.util.PagingToolBar({
 		    pageSize: pageSize,
            store: store,
            displayInfo: true,
            displayMsg: '当前显示的是 {0} - {1} of {2}',
            emptyMsg: '没有可以显示的结果集'
 	 });
 };
 
 com.faceye.ui.util.PagingToolBar=Ext.extend(Ext.PagingToolbar,{
 	   initComponent : function(){
        com.faceye.ui.util.PagingToolBar.superclass.initComponent.call(this);
        this.cursor = 0;
        this.bind(this.store);
    },
    onRender : function(ct, position){
        Ext.PagingToolbar.superclass.onRender.call(this, ct, position);
        this.first = this.addButton({
            tooltip: this.firstText,
            iconCls: "x-tbar-page-first",
            disabled: true,
            handler: this.onClick.createDelegate(this, ["first"])
        });
        this.prev = this.addButton({
            tooltip: this.prevText,
            iconCls: "x-tbar-page-prev",
            disabled: true,
            handler: this.onClick.createDelegate(this, ["prev"])
        });
//        var count = this.store.getCount();
//        alert(count);
//        var pageData=getPageData();
//        alert(pageData.total);
        this.addSeparator();
        this.add(this.beforePageText);
        this.field = Ext.get(this.addDom({
           tag: "input",
           type: "text",
           size: "3",
           value: "1",
           cls: "x-tbar-page-number"
        }).el);
        this.field.on("keydown", this.onPagingKeydown, this);
        this.field.on("focus", function(){this.dom.select();});
        this.afterTextEl = this.addText(String.format(this.afterPageText, 1));
        this.field.setHeight(18);
        this.addSeparator();
        this.next = this.addButton({
            tooltip: this.nextText,
            iconCls: "x-tbar-page-next",
            disabled: true,
            handler: this.onClick.createDelegate(this, ["next"])
        });
        this.last = this.addButton({
            tooltip: this.lastText,
            iconCls: "x-tbar-page-last",
            disabled: true,
            handler: this.onClick.createDelegate(this, ["last"])
        });
        this.addSeparator();
        this.loading = this.addButton({
            tooltip: this.refreshText,
            iconCls: "x-tbar-loading",
            handler: this.onClick.createDelegate(this, ["refresh"])
        });

        if(this.displayInfo){
            this.displayEl = Ext.fly(this.el.dom).createChild({cls:'x-paging-info'});
        }
        if(this.dsLoaded){
            this.onLoad.apply(this, this.dsLoaded);
        }
    },
    updateInfo : function(){
        if(this.displayEl){
            var count = this.store.getCount();
            var msg = count == 0 ?
                this.emptyMsg :
                String.format(
                    this.displayMsg,
                    this.cursor+1, this.cursor+count, this.store.getTotalCount()
                );
            this.displayEl.update(msg);
        }
    }
 });


/**
 * 系统通用的功能,如页头,页尾,用户登陆,用户注册等.
 */

/**
 * 用户登陆页面
 */
com.faceye.compoents.core.security.LoginForm = {
	init : function() {
		var href=location.href;
		var title='用户登录';
		var rememberMe=new Ext.form.Checkbox({
			hideLabel:true,
			checked:true,
			name:'rememberme',
			boxLabel:'记住密码,两周内不用登录'
		});
		if(href.indexOf('loginFailure')!=-1){
			title='用户登录   (<font color="red">用户名或密码错误,请重新输入或联系管理员)</font>';
		}
		if(href.indexOf('login')===-1){
             title='用户登录   (<font color="red">您没有权限访问当前页面)</font>';
		}
		var container = com.faceye.ui.Container.init();
		var centerContainer = container
				.getComponent('default-center-body-container');
		var loginForm = new Ext.form.FormPanel({
			labelWidth : 80,
			frame : true,
			title : title,
			bodyStyle : 'padding:5px 5px 0',
			width : 370,
			layout : 'form',
			onSubmit : Ext.emptyFn,
			defaultType : 'textfield',
			submit : function() {
				loginForm.getForm().getEl().dom.action = BP
						+ 'j_acegi_security_check.jsp';
				loginForm.getForm().getEl().dom.submit();
			},
			items : [{
				fieldLabel : '帐户',
				name : 'j_username',
				width : 200,
				allowBlank : false,
				vtypeText : '帐户不能为空',
				validateOnBlur:true,
				tabIndex : 1
			}, {
				fieldLabel : '密码',
				width : 200,
				validateOnBlur:true,
				name : 'j_password',
				inputType : 'password',
				tabIndex : 2
			},rememberMe],
			keys:{
				key:Ext.EventObject.ENTER,
				fn:function(btn,e){
				  loginForm.getForm().submit();
			    }
			},
			buttons : [{
				text : '登陆<-<font color="red">回车试试~</font>',
				type : 'submit',
				tooltip : 'Login',
				clickEvent : 'click',
				handler : function() {
					loginForm.getForm().submit();
//					loginForm.getForm().submit({
//						url : BP+'j_acegi_security_check',
//						method : 'POST',
//						waitMsg : 'Processing the form now',
//						waitTitle : 'Member Login',
//						success : function(form, action) {
//							Ext.Msg.alert('用户登陆', '登陆成功');
//						},
//						failiure : function(form, action) {
//							if (action.failureType == 'server') {
//								var obj = Ext.util.JSON
//										.decode(action.response.responseText);
//								Ext.Msg.alert('用户登陆', '登陆失败'+obj);
//							}else{
//								Ext.Msg.alert('用户登陆', '登陆失败');
//							}
//
//						}
//					});

				}

			}]
		});
		var windowWidth=window.screen.availWidth;
		var left=windowWidth/2-370/2;
		var style='margin-left:'+left+'px;';
		centerContainer.add(loginForm);
		centerContainer.doLayout();
		container.render(Ext.getBody());
		centerContainer.getEl().applyStyles('"border:0;"');
		loginForm.getEl().applyStyles(style);
	}
};

/**
 * -------------------------------------------- 结束栏目展现
 * --------------------------------------------
 */
/**
 * 定义头部导航区域面板
 */
var HeaderPanel = new Ext.Panel({
	id : 'header-panel',
	layout : 'fit',
	region : 'north',
	contentEl : 'default-header',
	border : false

});
com.faceye.ui.HeaderPanel = {
	init : function() {
		var header;
		if (!header) {
			header = new Ext.Panel({
				id : 'header-panel',
				layout : 'fit',
				region : 'north',
				contentEl : 'default-header',
				border : false
			});
		}
		return header;
	}
};
/**
 * 版权部分
 */
var BottomLayout = new Ext.Panel({
	id : 'bottom-layout',
	layout : 'fit',
	margins : '5 5 5 5',
	// bodyStyle:'padding:5px 5px 5px 5px',
	region : 'south',
	// title:'bottom',
	height : 25,
	html : '<p align="center">2008 <a href="http://www.easou.com"> www.easou.com</a> All Rights Reserved </p>'
});
com.faceye.ui.BottomLayout = {
	init : function() {
		var bottom;
		if (!bottom) {
			bottom = new Ext.Panel({
				id : 'bottom-layout',
				layout : 'fit',
				style : '{padding:2px 2px 2px 2px}',
				region : 'south',
				// title:'bottom',
				height : 25,
				html : '<p align="center">2008 <a href="http://www.easou.com"> www.easou.com</a> All Rights Reserved </p>'
			});
		}
		return bottom;
	}
};
/**
 * log panel定义
 */
com.faceye.ui.LogPanel = {
	init : function() {
		var panel;
		if (!panel) {
			panel = new Ext.Panel({
				id : 'default-log-panel',
				// margins:'2 0 2 0',
				style : '{padding:2px 2px 2px 2px}',
				border:true,
				height : 65,
				contentEl : 'default-log-pic'
			});
		}
		return panel;
	}
};

/**
 * 定义通用的基础框架
 */
com.faceye.ui.Container = {
	init : function() {
		var bottom = com.faceye.ui.BottomLayout.init();
		var header = com.faceye.ui.HeaderPanel.init();
		var log = com.faceye.ui.LogPanel.init();
		var panel = new Ext.Panel({
			id : 'default-center-body-container',
			// bodyStyle : 'padding:5px',
			// margins : '5 5 5 5',
			// layout:'fit',
			style : 'padding:2px 2px 2px 2px',
			header : false
		});
		var container = new Ext.Panel({
			id : 'default-container',
			border : false,
			// layout:'fit',
			items : [header, log, panel, bottom]
		});
		// container.render(Ext.getBody());
		// // viewport.render(Ext.getBody());
		return container;
	}
};

/**
 * 定义一个简单的页面容器 主要去掉log 只留下顶部导航和尾部版权
 */
com.faceye.ui.SimpleContainer = {
	init : function() {
		var bottom = com.faceye.ui.BottomLayout.init();
		var header = com.faceye.ui.HeaderPanel.init();
		// var log = com.faceye.ui.LogPanel.init();
		var panel = new Ext.Panel({
			id : 'default-center-body-container',
			// bodyStyle : 'padding:5px',
			// margins : '5 5 5 5',
			layout : 'fit',
			style : 'padding:2px 2px 2px 2px',
			header : false
		});
		var container = new Ext.Panel({
			id : 'default-container',
			border : false,
			// layout:'fit',
			items : [header, panel, bottom]
		});
		// container.render(Ext.getBody());
		// // viewport.render(Ext.getBody());
		return container;
	}
};
/**
 * portlet 工具条
 */
com.faceye.portal.PortletTools = [{
	id : 'gear',
	handler : function() {
		Ext.Msg.alert('Message', 'The Settings tool was clicked.');
	}
}, {
	id : 'refresh',
	handler : function(e, target, panel) {
		panel.doLayout();
	}
}, {
	id : 'close',
	handler : function(e, target, panel) {
		Ext.Msg.confirm('删除自定义工具', '您确认要删除"' + panel.title + '"吗?', function(
				btn, text) {
			if (btn == 'yes') {
				var portletId = panel.id.split('_')[0];
				var portalId = panel.ownerCt.ownerCt.id;
				// 发送删除数据的请求
				Ext.Ajax.request({
					url : BP
							+ 'portalContainerAction.do?method=removeUserPortletSubscribe',
					failure : function() {
						Ext.Msg.alert('删除自定义工具条', panel.title + '删除失败！');
					},
					success : function() {
						panel.ownerCt.remove(panel, true);
						// Ext.Msg.alert('传统导航删除', '传统导航删除成功！');
					},
					params : {
						portletId : portletId,
						portalId : portalId
					}
				});
			} else {
				return;
			}
		});
	}
}];

/**
 * 向导
 */
com.faceye.Cicerone = {
	msg : function(title, format) {
		function createBox(t, s) {
			return [
					'<div class="msg">',
					'<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
					'<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>',
					t,
					'</h3>',
					s,
					'</div></div></div>',
					'<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
					'</div>'].join('');
		}
		if (!title) {
			title = 'Easou监控小贴士';
		}
		var msgCt;
		if (!msgCt) {
			msgCt = Ext.DomHelper.insertFirst(document.body, {
				id : 'msg-div'
			}, true);
		}
		msgCt.alignTo(document, 't-t', [588, 299]);
		var s = String.format.apply(String, Array.prototype.slice.call(
				arguments, 1));
		var m = Ext.DomHelper.append(msgCt, {
			html : createBox(title, s)
		}, true);
		m.slideIn('t').pause(3).ghost("t", {
			remove : true
		});
	}
};

com.faceye.SingleCicerone = {
	msg : function(title, format) {
		function createBox(t, s) {
			return [
					'<div class="msg" style="border:2px solid #FF3300;">',
					'<div class="x-box-tl" style="background-color:#FFD6D2;"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
					'<div class="x-box-ml" style="background-color:#FFFFCE;"><div class="x-box-mr"><div class="x-box-mc"><h4>',
					t,
					'</h4>',
					s,
					'</div></div></div>',
					'<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
					'</div>'].join('');
		}
		if (!title) {
			title = 'Easou监控小秘书';
		}
		var msgCt;
		if (!msgCt) {
			msgCt = Ext.DomHelper.insertFirst(document.body, {
				id : 'msg-div'
			}, true);
		}
		msgCt.alignTo(Ext.getBody(), 't');
		var s = String.format.apply(String, Array.prototype.slice.call(
				arguments, 1));
		var m = Ext.DomHelper.append(msgCt, {
			html : createBox(title, s)
		}, true);
		m.slideIn('t').pause(2).ghost("t", {
			remove : true
		});
	}
};
/**
 * 判断用户是否已经登陆
 */
com.faceye.ui.UserLogin = {
	is : function() {
		var flag = false;
		var store = new Ext.data.JsonStore({
			url : BP + 'portalContainerAction.do?method=isAtMyPlace',
			root : 'rows',
			autoLoad : true,
			success : true,
			fields : ['login']
		});
		return store;
		// store.load({
		// callback : function(r, options, success) {
		// if (r[0].data.login === 'yes') {
		// flag = true;
		// } else {
		// flag = false;
		// }
		// }
		// });
		// store.reload();
		// return flag;
	}
};
com.faceye.ui.util.Tools={
	numFormat:function(value,num){
		var a_int=parseInt(value*Math.pow(10,(num+1)));//乘以10的num+1次方
 if (a_int==0)
  return "0.00";
 var a_str=a_int.toString();//转成字符串
 
 if (a_str.substring(0,1)!="-")//正数
 {
  var b_str=a_str.substring(a_str.length-1,a_str.length);//取最后一位
  var b_int=parseInt(b_str);
  if (b_int>=5)
   a_int=a_int+10;
 }
 else//负数
 {
  var b_str=a_str.substring(a_str.length-1,a_str.length);
  var b_int=parseInt(b_str);
  if (b_int>=5)
   a_int=a_int-10;
 }
 a_str=a_int.toString();
 var leftlength=a_str.length-(num+1);//小数点左侧取的位数
 var rightlength=(num+1);//小数点右侧取的位数
 var leftstr = a_str.substring(0,leftlength);//小数点左侧的数
 var rightstr = a_str.substring(a_str.length-rightlength,a_str.length);
 rightstr = rightstr.substring(0,num);//小数点右侧的数
 var c_str=leftstr+"."+rightstr;//重新组合字符串
 
 
 if (value.toString().substring(0,3)=="-0.")
  c_str="-0."+rightstr;
 if(value.toString().substring(0,2)=="0.")
  c_str="0."+rightstr;
 
 return c_str;
	}
};
com.easou.util.ComponentUtil={
  destroyPortlet:function(){
  	alert(Ext.getCmp(DEFAULT_VIEW_PORT_ID).getId());
  	var p=Ext.getCmp(DEFAULT_VIEW_PORT_ID).findByType('portlet');
  	alert(p.length);
  	if(p&&p.length>0){
  		for(i=0;i<p.length;i++){
  			p[i].destroy();
  		}
  	}
  }
};
com.easou.util.GridTools={
	destroyGrids:function(){
		var _grids=Ext.getCmp(DEFAULT_VIEW_PORT_ID).findByType('grid');
		alert(_grids.length);
        if(_grids && _grids.length>0){
        	for(i=0;i<_grids.length;i++){
        		_grids[i].destroy();
        	}
        }
	}
};


