信呼OA版本v2.3.8

This commit is contained in:
雨中磐石
2022-08-14 16:47:40 +08:00
parent 4640677d27
commit e3fcd913e3
1405 changed files with 133635 additions and 73 deletions

7
mode/bootstrap3.3/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

433
mode/bootstrapplugin/jquery-bootsform.js vendored Normal file
View File

@@ -0,0 +1,433 @@
/**
* bootstable 表单录入插件
* caratename雨中磐石(rainrock)
* caratetime2014-04-06 21:40:00
* email:admin@rockoa.com
* homepage:www.rockoa.com
*/
(function ($) {
function bootsform(element, options){
var obj = element;
var can = options;
var rand = can.rand;
var me = this;
this.form = null;
this.editdata = {};
this.itemsdata = {};
this.init = function(){
if(rand=='')rand=js.getrand();
if(!can.window)return;
can.windowid = 'window_'+rand+'';
var s = this._create();
js.tanbody(can.windowid, can.title, can.width, can.height,{bbar:'none',html:s,titlecls:can.saveCls});
can.render = ''+can.windowid+'_body';
obj = $('#'+can.render+'');
this.createafter();
$('#cancel_'+rand+'').focus();
};
this.forminit = function(){
this.createafter();
};
this.createafter = function(){
this.form = document['form_'+rand+''];
var saveid = can.saveid;
if(saveid=='')saveid = 'save_'+rand+'';
$('#'+saveid+'').click(function(){
me._save(this, 0);
});
$('#cancel_'+rand+'').click(function(){
me._cancel(this);
});
var a = can.items,b=[],i;
if(can.requiredfields!='')b = can.requiredfields.split(',');
for(i=0; i<a.length; i++){
if(a[i].required)b.push(a[i].name);
}
for(i=0; i<b.length; i++){
$(this.form[b[i]]).change(function(){
me.isValid();
});
$(this.form[b[i]]).blur(function(){
me.isValid();
});
}
if(obj){
obj.find("button[changeuser]").click(function(){
me._changeuser($(this));
return false;
});
obj.find("button[changeclear]").click(function(){
me._changeclear($(this));
return false;
});
obj.find("button[changedate]").click(function(){
me._changedate($(this));
return false;
});
}
};
this._changeuser = function(o){
var cn = o.attr('changeuser');
var ssa = this.itemsdata[cn].changeuser;
if(!ssa)ssa={};
ssa.nameobj = this.form[cn];
if(ssa.idname){
ssa.value = this.getValue(ssa.idname);
ssa.idobj = this.form[ssa.idname];
}
js.getuser(ssa);
};
this._changedate = function(o){
var viev = o.attr('changedate'),atr='',
inpu = o.attr('inputid');
var cans = {view:viev,inputid:inpu,initshow:true};
o.rockdatepicker(cans);
};
this._changeclear = function(o){
var cn = o.attr('changeclear');
var ssa = this.itemsdata[cn].changeuser;
if(!ssa)ssa={};
if(ssa.idname){
this.setValue(ssa.idname, '');
}
this.setValue(cn, '');
};
this._create = function(){
var s = '',a=can.items,i,i1,style='padding:10px';
if(can.bodyheight!=0)style+=';height:'+can.bodyheight+'px';
s+='<div align="center" style="'+style+';overflow-y:auto" >';
s+='<form id="form_'+rand+'" name="form_'+rand+'" style="padding:0px;maring:0px">';
s+='<input name="id" value="0" type="hidden">';
s+='<table width="'+can.bodywidth+'">';
for(i=0; i<a.length; i++){
can.items[i] = js.applyIf(a[i], can.defaultfields);
a[i] = can.items[i];
this.itemsdata[a[i].name] = a[i];
var bl=a[i].blankText,bt='',attr = a[i].attr;
if(!bl)bl='';if(!attr)attr='';
if(a[i].required)bt='<font color="red">*</font>';
if(a[i].readOnly)attr+=' readonly';
if(a[i].repEmpty)attr+=' onblur="this.value=strreplace(this.value)"';
if(a[i].type=='number')attr+=' onfocus="js.focusval=this.value" onblur="js.number(this)"';
var inp = '<input placeholder="'+bl+'" '+attr+' type="'+a[i].type+'" value="'+a[i].value+'" name="'+a[i].name+'" class="form-control">';
if(a[i].type=='checkbox'){
if(a[i].checked)attr+=' checked';
inp = '<label><input name="'+a[i].name+'" '+attr+' value="1" type="checkbox"> '+a[i].labelBox+'</label>';
}else if(a[i].type=='textarea'){
inp = '<textarea placeholder="'+bl+'" '+attr+' name="'+a[i].name+'" class="form-control" style="height:'+a[i].height+'px">'+a[i].value+'</textarea>';
}else if(a[i].type=='select'){
inp = '<select name="'+a[i].name+'" class="form-control">';
var sto = a[i].store;
for(i1=0;i1<sto.length;i1++){
inp+='<option value="'+sto[i1][a[i].valuefields]+'">'+sto[i1][a[i].displayfields]+'</option>';
}
inp += '</select>';
}else if(a[i].type=='changeuser'){
inp = '<div class="input-group"><input placeholder="'+bl+'" readonly class="form-control" name="'+a[i].name+'" >';
inp+= '<span class="input-group-btn">';
if(a[i].clearbool)inp+= '<button class="btn btn-default" changeclear="'+a[i].name+'" type="button"><i class="icon-remove"></i></button>';
inp+= '<button class="btn btn-default" changeuser="'+a[i].name+'" type="button"><i class="icon-search"></i></button>';
inp+= '</span></div>';
}else if(a[i].type=='date'){
inp = '<div class="input-group"><input readonly class="form-control" id="'+a[i].name+'-'+rand+'-inputid" name="'+a[i].name+'" >';
inp+= '<span class="input-group-btn">';
inp+= '<button class="btn btn-default" '+attr+' changedate="'+a[i].view+'" inputid="'+a[i].name+'-'+rand+'-inputid" type="button"><i class="icon-calendar"></i></button>';
inp+= '</span></div>';
}else if(a[i].type=='html'){
inp = a[i].html;
}
if(a[i].type == 'hidden'){
s+='<tr><td></td><td>'+inp+'</td></tr>';
}else{
s+='<tr na="'+a[i].name+'">';
s+='<td align="'+can.labelAlign+'" style="padding-right:5px" width="'+can.labelWidth+'">'+bt+''+a[i].labelText+'</td>';
s+='<td style="padding:5px" align="left">'+inp+'</td>'
s+='</tr>';
}
}
s+='</table>';
s+='</form>';
s+='</div>';
s+='<div style="padding:8px 10px;background:#eeeeee;line-height:30px" align="right"><span id="msgview_'+rand+'"></span>&nbsp;';
s+=' <button type="button" class="btn btn-'+can.saveCls+'" disabled id="save_'+rand+'"><i class="icon-save"></i>&nbsp;'+can.saveText+'</button>';
if(can.cancelbtn)s+='&nbsp; <button type="button" class="btn btn-default" id="cancel_'+rand+'"><i class="icon-remove"></i>&nbsp;取消</button>';
s+='</div>';
return s;
};
this.setVisited=function(na, bo){
var o = obj.find("tr[na='"+na+"']");
if(bo){o.show();}else{o.hide();}
};
this.isValid = function(){
var bo= false,o;
var a = can.items,s='';
for(i=0; i<a.length; i++){
if(a[i].required){
if(isempt(this.getValue(a[i].name))){
bo = true;
s = a[i].tipText;
if(!s)s=''+a[i].labelText+'不能为空';
break;
}
}
}
if(!bo && can.requiredfields!=''){
a = can.requiredfields.split(',');
for(i=0; i<a.length; i++){
if(isempt(this.getValue(a[i]))){
bo = true;
s = '*是必填的';
break;
}
}
}
o = get('save_'+rand+'');
if(o){
o.disabled=bo;
o.title=s;
}
this.isValidText = s;
return bo;
};
this._cancel = function(o1){
if(can.windowid!='')js.tanclose(can.windowid);
};
this.close = function(){
this._cancel();
};
this.save = function(o1){
this._save(o1, 1);
};
this.signature= function(da, url){
var time = parseInt(js.now('time')*0.001);
var siaa = ''+NOWURL+''+url+''+da.tablename_postabc+''+time+'_'+adminid+'';
var sign = md5(siaa);
da.sys_signature= sign;
da.sys_timeature= time;
return da;
};
this._save = function(o1, lx){
if(this.isValid()){
this.setmsg(this.isValidText);
return;
}
var data = this.getValues(),ac,ebo=false,s,i;
var fids = can.submitfields.split(',');
for(i=0;i<fids.length;i++){
ac = fids[i];
if(data[ac]!=this.editdata[ac]){
ebo = true;
break;
}
}
if(!ebo && lx == 0 && can.pdedit){
//this.setmsg('数据没修改,不用保存','#F92FB6');
//return;
};
s = can.submitcheck(data, me);
if(typeof(s)=='string' && s){
this.setmsg(s);
return;
}
this.setmsg('处理中...','#ff6600');
for(ac in can.params)data[ac]=can.params[ac];
if(typeof(s)=='object'){
for(ac in s)data[ac]=s[ac];
}
data.tablename_postabc = jm.encrypt(can.tablename);
data.submitfields_postabc = jm.base64encode(can.submitfields);
data.aftersaveaction = can.aftersaveaction;
data.beforesaveaction = can.beforesaveaction;
data.editrecord_postabc = can.editrecord;
data.sysmodenumabc = can.modenum;
o1.disabled = true;
$.ajax({
type:'post',
url:can.url,
data:this.signature(data, can.url),
success:function(da){
var a = js.decode(da);
if(a.success){
me.setmsg(a.msg, 'green');
if(can.autoclose){
js.msg('success', a.msg);
me._cancel();
}
can.success(a, me);
}else{
o1.disabled = false;
me.setmsg(a.msg);
if(!a.msg)js.msg('msg', da);
can.error();
}
},
error:function(e){
o1.disabled = false;
me.setmsg('Error:'+e.responseText+'');
can.error();
}
});
};
this.getValue = function(na){
var o = this.form[na];
if(!o)return '';
return o.value;
};
this.setValue = function(na,val){
var o = this.form[na];
if(!o)return;
o.value = val;
};
this.setUrl = function(url){
can.url = url;
};
this.setmsg = function(txt,col){
if(!col)col='red';
var msgid = can.msgviewid;
if(msgid == '')msgid='msgview_'+rand+'';
$('#'+msgid+'').html(js.getmsg(txt,col));
};
this.getValues=function(){
var da ={},i,ona='',o;
for(i=0;i<this.form.length;i++){
o = this.form[i];
var type = o.type,
val = o.value,
na = o.name;
if(type=='checkbox'){
val = '0';
if(o.checked)val='1';
da[na] = val;
}else if(type=='radio'){
if(o.checked)da[na] = val;
}else{
da[na] = val;
}
if(na.indexOf('[]')>-1){
if(ona.indexOf(na)<0)ona+=','+na+'';
}
}
if(ona != ''){
var onas = ona.split(',');
for(i=1; i<onas.length; i++){
da[onas[i].replace('[]','')] = js.getchecked(onas[i]);
}
}
return da;
};
this.getType = function(na){
var o = this.form[na];
if(!o)return '';
return a.type;
};
this.setValues=function(da, otf){
var na,type,v,o,i,
fis = can.submitfields.split(',');
if(otf){
var otfs = otf.split(',');
for(i=0; i<otfs.length; i++)fis.push(otfs[i]);
}
for(i=0;i<fis.length;i++){
na = fis[i];
o = this.form[na];
if(!o)continue;
type= o.type;
v = da[na];
if(v==null)v='';
da[na] = v;
if(type == 'checkbox'){
o.checked=(v=='1')?true:false;
}else{
o.value = v;
}
}
this.setValue('id', da.id);
this.editdata = da;
this.isValid();
};
this.reset=function(){
this.form.reset();
};
this.getField=function(na){
return this.form[na];
};
this.setTitle = function(tit){
$('#'+can.windowid+'_title').html(tit);
};
this.load = function(url){
this.setmsg('加载中...');
$.get(url, function(da){
var a = js.decode(da);
me._loadback(a);
});
};
this._loadback = function(a){
can.load(a, this, this.form);
if(a.data)this.setValues(a.data);
this.setmsg('');
can.loadafter(a,this.form);
};
this.setReadOnly = function(na){
if(na){
this.getField(na).readOnly = true;
}else{
for(var i=0;i<this.form.length;i++){
this.form[i].readOnly = true;
}
}
};
this.setDisabled = function(na){
if(na){
this.getField(na).disabled = true;
}else{
for(var i=0;i<this.form.length;i++){
this.form[i].disabled = true;
}
}
}
};
$.bootsform = function(options){
var defaultVal = {
items:[],labelWidth:90,width:500,height:400,
labelAlign:'right',saveCls:'primary',
tablename:'', //对应表名
modenum:'', //对应模块编号
url:js.getajaxurl('publicsave','index'),
submitfields:'',autoclose:true,cancelbtn:true,
params:{},bodywidth:'90%',addCls:'primary',editCls:'info',bodyheight:0,isedit:0,
render:'',saveText:'确定',window:true,windowid:'',
editrecord:'false', //是否保存修改记录
defaultfields:{type:'text',blankText:'',labelText:'',required:false,readOnly:false,labelBox:'',attr:'',value:''},
success:function(){},loadafter:function(){},
load:function(){},
aftersaveaction:'', //保存后处理方法
beforesaveaction:'', //保存前处理方法
requiredfields:'',
error:function(){},saveid:'',msgviewid:'',rand:'',
pdedit:true,
submitcheck:function(){return ''}
};
var can = $.extend({}, defaultVal, options);
if(can.isedit==0){
can.saveCls = can.addCls;
can.title = '<i class="icon-plus"></i> 新增 '+can.title+'';
}
if(can.isedit==1){
can.saveCls = can.editCls;
can.title = '<i class="icon-edit"></i> 编辑 '+can.title+'';
}
var clsa = new bootsform(false, can);
clsa.init();
return clsa;
};
})(jQuery);

View File

@@ -0,0 +1,41 @@
/**
双击编辑格
*/
(function ($) {
function bootsoedit(element, options){
var obj = element;
var can = options;
var rand = js.getrand();
var me = this;
this.init = function(){
obj[can.trigger](function(event){
me.setcontent(this, event);
});
};
this.setcontent = function(o1, e){
alert(1);
}
};
$.fn.bootsoedit = function(options){
var defaultVal = {
trigger:'click',
fields:'',
data:[],//当前数据
title:''
};
return this.each(function(){
var can = $.extend({}, defaultVal, options);
var clsa = new bootsoedit($(this), can);
clsa.init();
return clsa;
});
};
})(jQuery);

View File

@@ -0,0 +1,904 @@
/**
* bootstable 表格插件
* caratename雨中磐石(rainrock)
* caratetime2014-04-06 21:40:00
* email:admin@rockoa.com
* homepage:www.rockoa.com
*/
(function ($) {
function bootstable(element, options){
var obj = element;
var can = options;
var rand = js.getrand();
var me = this;
this.data = can.data;
this.count = 0;
this.page = 1;
this.changedata = {};
this.changeid = 0;
this.bool = false;
this.where = can.where;
this.highorderstr = '';
this.otherparams = {};
this.loadci = 0;
this.options= can;
this.init = function(){
this.tablename=can.tablename;
can.tablename=jm.encrypt(can.tablename);
this._init();
this._create();
if(can.autoLoad){
this._loaddata(1);
}
if(can.fanye)this._fanye();
};
this.getData= function(fid){
var a = this.data;
if(fid)a= this.json[fid];
if(!isNaN(fid))a= this.data[fid];
return a;
};
this.getCount= function(){
return this.count;
};
this.getJson= function(){
return this.json;
};
this._init = function(){
var sas = can.modedir;
if(!sas)sas='index:';
sas = sas.split(':');
if(can.url=='')can.url = js.getajaxurl('publicstore', sas[0], sas[1]);
if(can.cellurl=='')can.cellurl = js.getajaxurl('publicsavevalue', sas[0], sas[1]);
this.setColumns(can.columns);
s='<div style="position:relative;'+can.bodyStyle+'" id="tablebody_'+rand+'"></div><div id="tablefanye_'+rand+'"></div>';
obj.html(s);
$('#tablebody_'+rand+'').scroll(function(){
me._scrollTopla($(this));
});
if(can.tree)window['stabletree'+rand+'']=function(j,o1){me.stabletree(j,o1)}
};
this.setColumns=function(cols){
can.columns=cols;var a,i;
for(i=0; i<can.columns.length; i++){
a = can.columns[i];
if(typeof(a.align)=='undefined')can.columns[i].align='center';
if(a.dataIndex=='caozuo')can.columns[i] = this._caozuochengs(a,i);
}
};
this.getcolumns = function(){
return can.columns;
};
this.setCans = function(cas){
for(var i in cas)can[i]=cas[i];
};
this._create = function(){
var a = can.columns;
var s = '',i,len=a.length,val,s1,s2='',cols,s3='',s4='',s5='',le,st,ov,j,j1,na,attr,sty='',hs='',dis,dlen=this.data.length;
s+='<table id="tablemain_'+rand+'" class="table table-striped table-bordered table-hover" style="margin:0px">';
if(!can.hideHeaders){
s+='<thead><tr><th width="40"></th>';
if(can.checked)s+='<th width="40"><div align="center"><input id="seltablecheck_'+rand+'" type="checkbox"></div></th>';
for(i=0;i<len;i++){
hs = '';
attr = '';
cols = a[i].colspan;
if(can.sort == a[i].dataIndex)hs='style="color:#3399FF"';
if(a[i].width)attr+=' width="'+a[i].width+'"';
if(a[i].tooltip)attr+=' title="'+a[i].tooltip+'"';
if(cols && cols>1)attr+=' colspan="'+cols+'"';
s+='<th nowrap '+attr+'><div '+hs+' align="'+a[i].align+'" lfields="'+a[i].dataIndex+'">';
if(can.celleditor&&a[i].editor)s+='<i class="icon-pencil"></i>&nbsp;';
s+=a[i].text;
if(a[i].sortable){
s+='&nbsp;';
if(can.sort == a[i].dataIndex){
s+='<i tempsort="'+i+'" lx="'+((can.dir=='desc')?'asc':'desc')+'" class="icon-sort-'+((can.dir=='desc')?'down':'up')+' cursor"></i>';
}else{
s+='<i tempsort="'+i+'" lx="desc" class="icon-sort cursor"></i>';
}
}
s+='</div></th>';
if(cols>1)i=i+cols-1;
}
s+='</tr></thead>';
}
s+='<tbody id="tbody_'+rand+'">';
s+='</tbody></table>';
$('#tablebody_'+rand+'').html(s);
for(j=0;j<dlen;j++){
s=this.createrows(j);
$('#tbody_'+rand+'').append(s);
}
s='';
this.trobj = obj.find('tr[dataid]');
this.trobj.click(function(event){
me._itemclick(this, event);
});
this.trobj.dblclick(function(event){
me._itemdblclick(this, event);
});
if(typeof(can.celldblclick)=='function'){
obj.find('td[cell]').dblclick(function(event){
me._celldblclick(this, event);
});
}
if(can.celleditor){
var o = obj.find('td[fields]');
o[can.celledittype](function(){
me._celleditla(this);
});
}
obj.find("a[temp='caozuomenu_"+rand+"']").click(function(){
me._caozuochengss(this);
return false;
});
$('#seltablecheck_'+rand+'').click(function(){
js.selall(this, 'tablecheck_'+rand+'');
});
obj.find('i[tempsort]').click(function(){
me._clickorder(this);
});
};
this.insert=function(d, funs,inid){
d = js.apply({id:'auto'}, d);
this.data.push(d);
var j = this.data.length-1;
var s=this.createrows(j);
this.count++;
if(!inid){
$('#tbody_'+rand+'').append(s);
}else{
obj.find('tr[dataid="'+inid+'"]').after(s);
}
if(typeof(funs)=='function'){
funs(this,j);
}
};
this.createrows=function(j){
var a = can.columns;
var s = '',i,len=a.length,val,s1,s2='',s3='',s4='',s5='',le,st,ov,j,j1,na,attr,sty='',hs='',dis,trsty='',xu;
ov = this.data[j];
s3 = can.rendertr(ov, this, j);
s4 = can.rowsbody(ov, this, j);
if(s4)s5='rowspan="2"';
if(!s3 && ((can.statuschange && ov.status==0) || (ov.ishui==1) || (ov.status==5))){
trsty='color:#aaaaaa;';
}
if(ov.trbgcolor)trsty+='background:'+ov.trbgcolor+';';
if(ov.trstyle)trsty+=''+ov.trstyle+';';
if(trsty)trsty='style="'+trsty+'"';
s='<tr clickbo="false" oi="'+j+'" dataid="'+ov.id+'" '+s3+' '+trsty+'>';
xu = ov.trxu;if(!xu)xu=j+1+can.pageSize*(this.page-1);
s+='<td '+s5+' align="right" width="40">'+xu+'</td>';
if(can.checked){
dis = '';
if(ov.checkdisabled)dis='disabled';
s+='<td align="center" width="40"><input oi="'+j+'" name="tablecheck_'+rand+'" '+dis+' value="'+ov.id+'" type="checkbox"></td>';
}
for(i=0;i<len;i++){
na = a[i].dataIndex;
val = ov[na];
attr= '';
sty = '';
if(isempt(val)){
val = '';
this.data[j][na]=val;
}
if(a[i].type == 'checkbox'){
s1 = '<img height="20" width="20" src="images/checkbox'+val+'.png">';
}else{
s1 = val;
}
if(typeof(a[i].renderer)=='function'){
s3 = a[i].renderer(val, ov, j);
if(!isempt(s3))s1=s3;
}
s2 = '';
if(i == 0 && can.tree){
st = ov.stotal;
le = ov.level;
for(j1=1;j1<le;j1++)s2+='<img src="images/white.gif" class="icons">&nbsp; ';
s2 += '<i onclick="stabletree'+rand+'('+j+',this)" class="icon-'+((st>0)?'folder-close-alt':'file-alt')+'"></i>&nbsp;';
}
if(can.celleditor &&a[i].editor)attr+=' fields="'+na+'"';
if(a[i].width)attr+=' width="'+a[i].width+'"';
if(typeof(a[i].renderstyle)=='function'){
s3 = a[i].renderstyle(val, ov, j);
if(!isempt(s3))sty+=''+s3+';';
}
if(typeof(a[i].renderattr)=='function'){
s3 = a[i].renderattr(val, ov, j);
if(!isempt(s3))attr+=' '+s3+'';
}
s+='<td align="'+a[i].align+'" '+attr+' style="'+sty+'" row="'+j+'" cell="'+i+'">'+s2+''+s1+'</td>';
}
s+='</tr>';
if(s4)s+='<tr><td colspan="'+(len+1)+'">'+s4+'</td></tr>';
return s;
};
this._tredat={};
this.stabletree=function(j,o1){
if(!can.loadtree)return;
var ov = this.data[j];
if(!ov.stotal || ov.stotal<1 || this._tredat[j])return;
var das = this._loaddata(1, true);
das.pvalue = ov.id;
das.level = ov.level+1;
this.bool = true;
this._tredat[j]=true;
o1.className='icon-spinner';
$.ajax({
url:can.url,type:can.method,data:das,dataType:'json',
success:function(ret){
o1.className='icon-folder-open-alt';
me.showtreeda(ret.rows,das.pvalue);
me.bool = false;
},
error: function(e){
o1.className='icon-folder-close-alt';
js.msg('msg',e.responseText);
me.bool = false;
}
});
};
this.showtreeda=function(da,pj){
if(!da)return;var len = da.length,o1,i;if(len==0)return;
for(i=len-1;i>=0;i--){
this.insert(da[i],false,pj);
if(can.celleditor){
o1 = obj.find('tr[dataid="'+da[i].id+'"]').find('td[fields]');
o1[can.celledittype](function(){
me._celleditla(this);
});
}
}
this.trobj = obj.find('tr[dataid]');
this.trobj.unbind();
this.trobj.click(function(event){
me._itemclick(this, event);
});
this.trobj.dblclick(function(event){
me._itemdblclick(this, event);
});
obj.find("a[temp='caozuomenu_"+rand+"']").unbind().click(function(){
me._caozuochengss(this);
return false;
});
};
this._celldblclick = function(o1,e){
var o = $(o1);
var cell = parseFloat(o.attr('cell')), row = parseFloat(o.attr('row'));
var farr = can.columns[cell],
d = this.data[row];
can.celldblclick(farr, d, o1, cell, row, e);
};
this._scrollTopla= function(o){
if(can.hideHeaders)return;
var top = o.scrollTop();
if(top<40){
var o1 = $('#headerla_'+rand+'');
o1.hide();
o1.html('');
}else{
var off = obj.offset();
var a = can.columns,s='',i,len=a.length,w1,o2;
if(!get('headerla_'+rand+'')){
s = '<div style="position:fixed;left:'+(off.left)+'px;top:'+(off.top)+'px;width:100%;height:34px;overflow:hidden; background:rgba(255,255,255,0.5);border-bottom:1px #dddddd solid;z-index:2" id="headerla_'+rand+'"></div>';
obj.append(s);
}
var o1 = $('#headerla_'+rand+'');
o1.show();
o1.css({left:''+(off.left)+'px',top:''+(off.top)+'px',width:''+($('#tablemain_'+rand+'').width())+'px'});
if(o1.html()==''){
s = '';
s+='<table class="table table-striped table-bordered" style="margin:0px" width="100%">';
s+='<tr style="background:white"><th width="40"></th>';
if(can.checked)s+='<th width="40"></th>';
for(i=0;i<len;i++){
o2 = obj.find("div[lfields='"+a[i].dataIndex+"']");
w1 = o2[0].clientWidth-1;
w1 = 'width:'+w1+'px';
s+='<th><div style="'+w1+'" align="'+a[i].align+'">'+o2.html()+'</div></th>';
}
s+='</tr>';
s+='</table>';
o1.html(s);
}
}
};
this._celleditla = function(o1){
if(this.bool)return;
var o = $(o1),
fields = o.attr('fields'),
row = parseFloat(o.attr('row')),
cell = parseFloat(o.attr('cell'));
var a = this.data[row],i,len,sel,d,
b = can.columns[cell],
l = o.offset(),
w = o1.clientWidth,
h = o1.clientHeight,
at = '',
v = a[fields];
$('#edittable_'+rand+'').remove();
if(b.editorbefore && !b.editorbefore(a))return;
if(!b.textmsg)b.textmsg='';
var s = '<div id="edittable_'+rand+'" style="position:absolute;z-index:2;left:'+(l.left)+'px;top:'+(l.top+h)+'px">';
s+='<div style="border:1px #cccccc solid;background:white;padding:10px;box-shadow:0px 0px 10px rgba(0,0,0,0.3); border-radius:10px">';
s+=' <div>&nbsp;<b>'+b.text+'</b>&nbsp;<span id="msgteita_'+rand+'">'+b.textmsg+'</span></div>';
s+=' <div class="blank10"></div>';
var wss = 200;
if(b.editorwidth)wss=b.editorwidth;
var flx = b.type,attr=b.editorattr;
if(!flx)flx='text';
if(!attr)attr='';
if(b.repEmpty)attr+=' onblur="this.value=strreplace(this.value)" ';
if(flx=='checkbox'){
if(v=='1')at='checked';
s+='<div><label><input type="checkbox" id="inputedit_'+rand+'" '+at+' value="1"> '+b.text+'</label></div>';
}else if(flx=='textarea'){
s+='<div><textarea type="text" style="width:'+wss+'px;height:100px" '+attr+' id="inputedit_'+rand+'" class="input">'+v+'</textarea></div>';
}else if(flx=='select' && b.store){
d=b.store;
s+='<div><select style="width:'+wss+'px" id="inputedit_'+rand+'" '+attr+' class="input">';
len=b.store.length;for(i=0;i<len;i++){
sel='';if(d[i][0]==v||d[i][1]==v)sel='selected';
s+='<option value="'+d[i][0]+'" '+sel+'>'+d[i][1]+'</option>';
}
s+='</select></div>';
}else if(flx=='date'){
s+='<div><input type="text" style="width:'+wss+'px" id="inputedit_'+rand+'" '+attr+' class="input datesss" onclick="js.datechange(this)" readonly value="'+v+'"></div>';
}else{
s+='<div><input type="'+flx+'" style="width:'+wss+'px" id="inputedit_'+rand+'" '+attr+' class="input" value="'+v+'"></div>';
}
s+=' <div class="blank10"></div>';
if(!can.cellautosave)s+=' <div><a id="inputeditsave_'+rand+'" href="javascript:"><i class="icon-ok"></i> 确定</a >&nbsp; &nbsp; <a href="javascript:" class="hui" onclick="$(\'#edittable_'+rand+'\').remove()"><i class="icon-remove"></i> 取消</a></div>';
s+='</div>';
s+='<div align="center"><div class="arrow-down"></div></div>';
s+='</div>';
$('body').append(s);
var o2 = get('edittable_'+rand+'');
var jg = (w-o2.clientWidth)*0.5;
$(o2).css({left:''+(l.left+jg)+'px',top:''+(l.top-o2.clientHeight)+'px'});
var o3 = get('inputedit_'+rand+'');
o3.focus();
$(o3).keyup(function(e){
if(e.keyCode==13)this.blur();
});
var arr = {oldvalue:v,fields:fields,type:b.type,id:a.id,obj:o,row:row}
if(can.cellautosave){
$(o3).blur(function(){
me._editforcuschen(this, arr, b);
});
}else{
$('#inputeditsave_'+rand+'').click(function(){
me._editforcuschen(this, arr, b);
});
}
};
this.signature= function(da, url){
var time = parseInt(js.now('time')*0.001);
var siaa = ''+NOWURL+''+url+''+da.tablename+''+time+'_'+adminid+'';
var sign = md5(siaa);
da.sys_signature= sign;
da.sys_timeature= time;
return da;
};
this._editforcuschen = function(o1, a, farr){
var o1= get('inputedit_'+rand+'');
var v = o1.value,ov = a.oldvalue;
if(a.type=='checkbox')if(!o1.checked)v='0';
var selv= v+'';
if(a.type=='select')selv=o1.options[o1.selectedIndex].text;
if(v==ov || selv==ov){
$('#edittable_'+rand+'').remove();
return;
}
var vid = 'msgteita_'+rand+'';
js.setmsg('处理中...','#ff6600',vid);
o1.disabled = true;
this.bool = true;
var data = {tablename:can.tablename,id:a.id,fieldname:a.fields,value:v,fieldsafteraction:can.fieldsafteraction};
$.ajax({
data:this.signature(data, can.cellurl),type:'post',url:can.cellurl,
success:function(bstr){
me.bool = false;
$('#edittable_'+rand+'').remove();
if(bstr!='success'){
js.msg('msg', bstr);
return;
}
js.setmsg('处理完成','green',vid);
var ohtml = a.obj.html();
ohtml = ohtml.replace(ov, v);
if(a.type=='checkbox')ohtml='<img height="20" width="20" src="images/checkbox'+v+'.png">';
if(a.type=='select')ohtml=selv;
a.obj.html(ohtml);
me.data[a.row][a.fields] = v;
if(farr.editorafter)farr.editorafter();//保存后处理
},
error:function(e){
js.msg('msg',e.responseText);
me.bool = false;
}
});
};
this._itemclick= function(o1, e){
var o = $(o1);
if(can.selectColor){
this.trobj.css('background','');
o.css('background', can.selectColor);
}else{
this.trobj.removeClass(can.selectcls);
o.addClass(can.selectcls);
}
var oi = parseFloat(o.attr('oi'));
var a = this.data[oi];
this.changedata = a;
this.changeid = a.id;
can.itemclick(a, oi, e);
};
this._itemdblclick= function(o1, e){
var o = $(o1),oi,lxs,o1,cell,farr,o2;
oi = parseFloat(o.attr('oi'));
o2 = e.target;
lxs = o2.nodeName.toLowerCase();
if(lxs!='td'){
o2 = e.target.parentNode;
lxs = o2.nodeName.toLowerCase();
}
if(lxs=='td'){
o1 = $(o2);
cell= parseFloat(o1.attr('cell'));
farr= can.columns[cell];
if(farr.editor)return;//单元格是编辑就退出
}
can.itemdblclick(this.changedata, oi, e);
};
this._loaddata = function(p, donbo){
if(this.bool)return;
this.changeid= 0;
this.loadci++;
this.changedata = {};
var url = can.url;
var das = {tablename_abc:can.tablename,defaultorder:can.defaultorder,keywhere:can.keywhere,where:this.where,sort:can.sort,dir:can.dir,loadci:this.loadci,storebeforeaction:can.storebeforeaction,storeafteraction:can.storeafteraction,modenum:can.modenum},
s='',of=obj.offset();
das.keywhere=jm.encrypt(das.keywhere.replace(/\'/g, '[F]'));
das.where = jm.encrypt(das.where.replace(/\'/g, '[F]'));
das.start = can.pageSize*(p-1);
das.page = p;
das.limit = can.pageSize;
if(!can.fanye)das.limit = can.limit;
das = js.apply(das, can.params);
das = js.apply(das, this.otherparams);
if(donbo)return das;
this.page = p;
var o1 = $('#tablebody_'+rand+'');
var h= o1.height()-2,w= o1.width()-2;
s='<div id="modeshow_'+rand+'" style="filter:Alpha(opacity=20);opacity:0.2;height:'+h+'px;width:'+w+'px;overflow:hidden;z-index:3;position:absolute;left:1px;line-height:'+h+'px;top:1px;background:#000000;color:white" align="center"><img src="images/mloading.gif" align="absmiddle">&nbsp;加载中...</div>';
o1.append(s);
can.beforeload();
this.bool = true;
$.ajax({
url:url,type:can.method,data:das,
success:function(da){
if(!get('tablebody_'+rand+''))return;
var a = js.decode(da);
if(!a.rows){
if(a.msg)da=a.msg;
js.msg('msg',da);
}else{
me._loaddataback(a);
}
$('#modeshow_'+rand+'').remove();
me.bool = false;
},
error: function(e){
$('#modeshow_'+rand+'').remove();
js.msg('msg',e.responseText);
me.bool = false;
}
});
};
this.exceldown = function(bt, lxs,ocsn){
if(this.bool)return;
var excelfields='',excelheader='',i,a=can.columns;
var np = (lxs==2) ? this.page : 1;
var das = this._loaddata(np, true);
das.limit = 10000;
das.execldown = 'true';
if(!bt)bt=nowtabs.name;
das.exceltitle = bt;
for(i=0;i<a.length;i++){
if(!a[i].notexcel){
excelfields+=','+a[i].dataIndex+'';
excelheader+=','+a[i].text+'';
}
}
das.excelfields = excelfields.substr(1);
das.excelheader = excelheader.substr(1);
if(lxs==1)return das;
if(lxs==2){
das.limit = can.pageSize;
}
if(ocsn)for(i in ocsn)das[i]=ocsn[i];
das.exceltitle = jm.encrypt(das.exceltitle);
das.excelfields = jm.encrypt(das.excelfields);
das.excelheader = jm.encrypt(das.excelheader);
this.bool = true;
js.msg('wait', '导出处理中...');
$.ajax({
url:can.url,type:'POST',data:das,dataType:'json',
success:function(a1){
var lex = (nwjsgui)?'_self':'_blank';
if(!a1.downCount)a1.downCount = a1.totalCount;
js.msg('success', '处理成功,共有记录'+a1.totalCount+'条/导出'+a1.downCount+'条,点我直接<a class="a" href="'+a1.url+'" target="'+lex+'">[下载]</a>', 60);
me.bool=false;
},
error:function(e){
js.msg('msg','err:'+e.responseText);
me.bool = false;
}
});
};
this.exceldownnow = function(bt){
this.exceldown(bt,2);
};
this.setparams = function(cans, relo){
if(!cans)cans={};
this.otherparams = js.apply(this.otherparams,cans);
this.page = 1;
if(relo)this.reload();
};
this._loaddataback=function(a){
this._tredat={};
this.json = a;
this.data = a.rows;
this.count = a.totalCount;
can.loadbefore(a, this);
this._create();
this._initfany();
can.load(a, this, this.loadci);
};
this.loadData = function(d){
this._loaddataback(d);
};
this._clickorder = function(o1){
if(this.loadci==0)return;
var o,oi,a,dir,sort;
o = $(o1);
oi = parseFloat(o.attr('tempsort'));
a = can.columns[oi];
sort = a.dataIndex;
dir = o.attr('lx');
this.order(sort, dir);
};
this.remove = function(ids){
var sid = ids.split(','),id,i;
for(i=0;i<sid.length;i++){
id = sid[i];
obj.find("tr[dataid='"+id+"']").remove();
if(id == this.changeid){
this.changeid= 0;
this.changedata = {};
}
}
};
this.hiderows=function(ids){
var sid = ids.split(','),id,i;
for(i=0;i<sid.length;i++){
id = sid[i];
obj.find("tr[dataid='"+id+"']").hide();
if(id == this.changeid){
this.changeid= 0;
this.changedata = {};
}
}
};
this.showrows=function(id){
var sid = ids.split(','),id,i;
for(i=0;i<sid.length;i++){
id = sid[i];
obj.find("tr[dataid='"+id+"']").show();
}
};
this.showallrows=function(){
obj.find("tr[dataid']").show();
}
this.order = function(a, b){
if(!a)return;
if(!b)b='asc';
can.sort = a;
can.dir = b;
this.reload();
};
this.highorder = function(str){
if(!str)str='';
this.highorderstr = str;
this.reload();
};
this.search = function(w, jg, slx){
if(!w)w='';
if(jg)w = this.where+' '+w;
var s = can.outsearch(this);
if(s)w+=' '+s+'';
this.where = w;
this._loaddata(1);
return w;
};
this.reload = function(){
this._loaddata(this.page);
};
this.del = function(csa){
if(this.bool)return;
var a = js.apply({msg:'确定要删除选中的{s}条记录吗?',success:function(){},checked:false,check:function(){}},csa);
var s = ''+this.changeid+'',xz;
if(a.checked)s=this.getchecked();
if(s=='0'||s==''){
js.msg('msg','没有选中记录');
return;
}
xz = s.split(',').length;
a.msg = a.msg.replace('{s}', ''+xz+'');
js.confirm(a.msg,function(lx){
a.check(lx);
if(lx=='yes'){
me._delok(s, a);
}
});
};
this.getchecked = function(){
return js.getchecked('tablecheck_'+rand+'');
};
this.getcheckobj = function(){
return $("input[name='tablecheck_"+rand+"']");
};
this.getcheckdata= function(){
var o = this.getcheckobj(),len=o.length,i,o1,d=[];
for(i=0;i<len;i++){
o1=o[i];
if(o1.checked){
oi=parseFloat($(o1).attr('oi'));
d.push(this.data[oi]);
}
}
return d;
};
this._delok = function(sid, ds){
js.msg('wait','删除'+sid+'中...');
this.bool=true;
var url = ds.url;if(!url)url=js.getajaxurl('publicdel','index');
var ss = js.apply({modenum:can.modenum,table:can.tablename,id:sid},ds.params);
$.ajax({
url:url,type:'POST',data:ss,dataType:'json',
success:function(a1){
me.bool=false;
if(a1.code==200){
js.msg('success','删除成功');
ds.success();
me.reload();
}else{
js.msg('msg',a1.msg);
}
},
error:function(e){
js.msg('msg','err:'+e.responseText);
me.bool = false;
}
});
};
this.settishi=function(nr){
$('#bottomtishi_'+rand+'').html(nr);
};
this._fanye = function(){
var s = '';
s='<div style="margin-top:10px" class="btn-toolbar" role="toolbar">'+
'<div class="btn-group">'+
'<button id="shouye_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="首页" class="btn btn-default">&laquo;</button>'+
'<button id="shang_'+rand+'" data-toggle="tooltip" data-placement="top" title="上一页" type="button" disabled class="btn btn-default">&lt;</button>'+
'<button id="nowye_'+rand+'" type="button" disabled class="btn btn-default"> 第<span id="pages_'+rand+'">1</span>页/共<span id="maxpage_'+rand+'">0</span>页 <span class="caret"></span></button>'+
'<button id="next_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="下一页" disabled class="btn btn-default">&gt;</button>'+
'<button id="lastye_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="尾页" disabled class="btn btn-default">&raquo;</button>'+
'</div> '+
'<div class="btn-group">'+
' <button id="refresh_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="刷新" class="btn btn-default"><i class="icon-refresh"></i></button>'+
'</div> '+
'<div class="btn-group" id="bottomtishi_'+rand+'"></div>'+
'<div class="btn-group" style="float:right; padding-top:3px">'+
'<span>共记录<span id="zjilu_'+rand+'">0</span>条</span> &nbsp;'+
'每页<input maxlength="3" onblur="js.number(this)" onfocus="js.focusval=this.value" id="pagesize_'+rand+'" type="number" value="'+can.pageSize+'" style="width:40px;text-align:center;height:24px;border:1px #dddddd solid;margin:0px 2px;font-size:12px">条&nbsp;'+
'</div>'+
'</div>';
$('#tablefanye_'+rand+'').html(s);
$('#shouye_'+rand+'').click(function(){me.firstPage();});
$('#shang_'+rand+'').click(function(){me.backPage();});
$('#next_'+rand+'').click(function(){me.nextPage();});
$('#lastye_'+rand+'').click(function(){me.lastPage();});
$('#refresh_'+rand+'').click(function(){me.reload();});
$('#nowye_'+rand+'').rockmenu({
top:33,width:150,
data:[{name:'第1页',p:1}],
beforeshow:function(o){
o.setData(me._getpaged());
o.setValue('第'+me.page+'页');
},
itemsclick:function(a){
me.gotoPage(a.p);
}
});
var o1 = $('#pagesize_'+rand+'');
o1.blur(function(){me.setpageSize(this.value);});
o1.keyup(function(e){if(e.keyCode==13)this.blur()});
};
this._getpaged = function(){
var a = [],i=1,j=1,b,bg;
i = this.page-5;
j = this.page+5;
if(i<1)i=1;
if(j>this.maxPage)j=this.maxPage;
for(b=i;b<=j;b++){
a.push({name:'第'+b+'页',p:b});
}
return a;
};
this._initfany = function(){
if(!can.fanye)return;
$('#zjilu_'+rand+'').html(''+this.count+'');
$('#pages_'+rand+'').html(''+this.page+'');
this.maxPage = Math.ceil(this.count/can.pageSize);
$('#maxpage_'+rand+'').html(''+this.maxPage+'');
var bo1=false,bo2=false;
if(this.maxPage <=1 || this.page<=1){
bo1 = true;
}
get('shouye_'+rand+'').disabled=bo1;
get('shang_'+rand+'').disabled=bo1;
if(this.maxPage <=1){
get('nowye_'+rand+'').disabled=true;
}else{
get('nowye_'+rand+'').disabled=false;
}
if(this.maxPage <=1 || this.page>=this.maxPage){
bo2 = true;
}
get('next_'+rand+'').disabled=bo2;
get('lastye_'+rand+'').disabled=bo2;
};
this._next = function(oi){
var p = this.page+oi;
if(p<=0)p=1;
if(p>=this.maxPage)p=this.maxPage;
this._loaddata(p);
};
this.firstPage = function(){
this._loaddata(1);
};
this.backPage = function(){
this._next(-1);
};
this.nextPage = function(){
this._next(1);
};
this.gotoPage = function(p){
this._loaddata(p);
};
this.lastPage = function(){
this._loaddata(this.maxPage);
};
this.setpageSize = function(p){
p = parseFloat(p);
if(p<=0)p=can.pageSize;
$('#pagesize_'+rand+'').val(''+p+'');
if(can.pageSize == p)return;
can.pageSize = p;
this.page = 1;
this.reload();
};
this._caozuochengs=function(a,oj){
a.renderer=function(v,d,oi){
var s='<a oi="'+oi+'" oj="'+oj+'" style="TEXT-DECORATION:none" temp="caozuomenu_'+rand+'">操作<i class="icon-angle-down"></i></a>';
if(!d.id)s='&nbsp;';
return s;
};
a.notexcel=true;
return a;
};
this._caozuochengss=function(o1){
var oi,d,num,mid,modename,o2;
o2= $(o1);
oi= parseFloat(o2.attr('oi'));
oj= parseFloat(o2.attr('oj'));
d = this.getData(oi);
num=can.modenum;if(num=='')num=this.tablename;
mid = d.id;if(d.modenum)num=d.modenum;
modename=can.modename;if(d.modename)modename=d.modename;
new optmenuclass(o1,num,mid,this,modename,oi,can.columns[oj]);
};
this.geturlparams=function(bt,ocans){
var cshu = this.exceldown(bt, 1),i;
cshu.tablename_abc = jm.uncrypt(cshu.tablename_abc);
cshu = js.apply(cshu,ocans);
return [can.url, cshu];
}
};
/**
表格中常用方法
1、reload(); //刷新数据源
2、getchecked();//获取复选框对应记录ID聚
3、getcheckdata();//获取复选框选中的数据数组[]
4、insert({name:''});//表格中插入一行
5、setparams({key:''},true);//设置参数并搜索
6、geturlparams();获取当前Url地址参数,订阅时用到的
*/
if(typeof(bootsSelectColor)!='string')bootsSelectColor= '';
$.fn.bootstable = function(options){
var defaultVal = {
columns:[], //表头
selectColor:bootsSelectColor, //选中时行颜色
pageSize:15, //默认分页数
limit:0, //没有分页时展示条数
bodyStyle:'',
height:0, //高度
url:'', //请求地址
celleditor:false, //是否可编辑单元格
cellautosave:true, //编辑单元格是否自动保存
celledittype:'dblclick', //编辑单元格用双击
cellurl:'', //编辑单元格保存地址
fieldsafteraction:'', //编辑单元格时保存后触发
data:[], //初始数据
autoLoad:true, //是否初始化后就加载
tree:false, //是否树形显示
itemdblclick:function(){}, //双击行调用
searchwidth:500, //没用
defaultorder:'', //默认排序
where:'', //条件
hideHeaders:false, //是否隐藏头部表头
modename:'', //对应模块名称
modenum:'', //对应模块编号
statuschange:true, //当行的status=0时自动变成灰色
checked:false, //是否多选
fanye:false, //是否可翻页
sort:'', //排序字段
dir:'', //排序类型desc和asc
storeafteraction:'', //数据源请求后先处理函数
storebeforeaction:'',//数据源请求时先处理函数,可返回条件字段等
loadtree:false,
modedir:'', //当前文件路径,一般都是写:'{mode}:{dir}'
keywhere:'', //条件
params:{}, //其他参数
tablename:'', //请求数据表格名如有指定modenum会加载对应模块上设置的表
selectcls:'success', //选中样式
itemclick:function(da, index, e){}, //单击行触发
beforeload:function(){}, //数据加载前触发
load:function(){}, //数据加载完成后触发
loadbefore:function(){}, //数据加载完成后但还没有渲染出来时触发
outsearch:function(){return ''}, //外搜索条件
searchview:'', //没用
method:'POST', //post请求
rendertr:function(){return ''}, //少用
rowsbody:function(){return ''}, //少用
celldblclick:false //没用
};
if(typeof(bootstableobj)=='undefined')bootstableobj={};
var can = $.extend({}, defaultVal, options);
var clsa = new bootstable($(this), can);
clsa.init();
if(can.modenum!='')bootstableobj[can.modenum]=clsa;
return clsa;
};
})(jQuery);

View File

@@ -0,0 +1,341 @@
/**
bootsform
*/
(function ($) {
function bootstigger(element, options){
var obj = element;
var can = options;
var rand = can.rand;
var me = this;
//初始化
this.init = function(){
this.mainidss = 'main_'+rand+'';
if(can.namedisplay=='')can.namedisplay=''+can.name+'_text';
var s = '<div class="input-group">';
s += ' <input readonly class="form-control form-select" name="'+can.namedisplay+'" placeholder="'+can.placeholder+'" id="display_'+rand+'">';
s += ' <input type="hidden" id="value_'+rand+'" name="'+can.name+'" >';
s += ' <span class="input-group-btn">';
if(can.clearbool){
s += ' <button class="btn btn-default" id="downclear_'+rand+'" type="button"><i class="icon-remove"></i></button>';
}
s += ' <button class="btn btn-default" id="down_'+rand+'" type="button"><i class="icon-caret-down"></i></button>';
s += ' </span>';
s += '</div>';
var s1 = '<div id="div_'+rand+'" style="position:relative;">'+s+'</div>';
obj.html(s1);
$('#down_'+rand+'').click(function(){
me._down(this);
});
if(can.clearbool){
$('#downclear_'+rand+'').click(function(){
me._downclear(this);
});
}
this.setDefault(can.value, can.data);
this._loadbool = false;
this._fistload(0);//自动加载
};
this._down = function(o1){
var o = $(o1);//
if(!get(this.mainidss)){
var s = '<div >';
s += '<table width="100%"><tr>';
s += ' <td><input id="keysou_'+rand+'" style="height:32px;line-height:20px;background:white;border:1px #cccccc solid;margin:5px;padding:3px;width:100%" ></td>';
s += ' <td><button id="keysoubtn_'+rand+'" style="height:32px;background:white;border:1px #cccccc solid;padding:0px 10px" type="button"><i class="icon-search"></i></button></td>';
s += ' </tr></table>';
s += '</div>';
var w = can.width;
if(w==0)w = obj.width()-2;
var s1 = '<div id="'+this.mainidss+'" style="position:absolute;z-index:120;background:white;left:1px;top:33px;padding:0px;width:'+w+'px;border:1px #dddddd solid;box-shadow:0 0 5px rgba(0, 0, 0, 0.3);display:none">';
s1+=s;
s1+='<div id="list_'+rand+'" class="select-list" style="overflow-y:auto"></div>';
s1+='</div>';
$('#div_'+rand+'').append(s1);
this._showdata(can.data);
js.addbody(rand, 'hide', this.mainidss);
if(!this._loadbool)this._fistload(1);
$('#keysou_'+rand+'').keyup(function(e){
me._soukeysss(this, e);
return false;
});
$('#keysoubtn_'+rand+'').click(function(){
me._soukeybtn(this);
return false;
});
}
$('#'+this.mainidss+'').toggle();
if(get(this.mainidss).style.display!='none'){
get('keysou_'+rand+'').focus();
this._setselcol();
this._showeizhi();
}
};
this._showdata = function(a){
var s = '',i,val1,s1,len = a.length;
this.nowdata = a;
for(i=0; i<len && i<can.maxlist; i++){
val1 = a[i][can.valuefields];
s+= '<div oi="'+i+'" val="'+val1+'" class="div01">';
if(can.checked){
s+='<input type="checkbox" val="'+val1+'" name="checkbox_'+rand+'" value="'+i+'"> ';
}
s1= can.renderer(a[i], this);
if(!s1){
s+= a[i][can.displayfields];
}else{
s+= s1;
}
s+= '</div>';
}
var o = $('#list_'+rand+'');
o.html(s);
o.find("div.div01").click(function(){
me._itemsclick(this);
});
if(can.checked){
o.find("input[type='checkbox']").click(function(){
me._itemscheckclick(this);
});
}
var h = can.height,h1 = i*can.listheight;
if(h1>h)h1 = h;
o.css('height',''+h1+'px');
this._setselcol();
};
this._showeizhi= function(){
var o,jg,t;
o = $('#'+this.mainidss+'');
jg = $('#div_'+rand+'').offset().top+o.height()-winHb()+10;
t = 33;
if(jg>0)t = 0-jg;
o.css('top',''+t+'px');
};
this._setselcol= function(){
var vals = this.getValue(),i,o1,val1;
var o = $('#list_'+rand+'').find("div[val]");
o.removeClass();
o.addClass('div01');
var o2 = $('#list_'+rand+'').find("input[type='checkbox']");
o2.attr('checked', false);
if(vals!=''){
var a = vals.split(',');
for(i=0; i<a.length; i++){
o1 = $('#list_'+rand+'').find("div[val='"+a[i]+"']");
o1.removeClass();
o1.addClass('div02');
}
vals = ','+vals+',';
for(i=0; i<o2.length; i++){
o1 = o2[i];
val1 = $(o1).attr('val');
if(vals.indexOf(','+val1+',')>-1)o1.checked=true;
}
}
};
this._cenghide = function(){
$('#'+this.mainidss+'').hide();
};
this._itemsclick = function(o1){
if(can.checked)return;
var o = $(o1);
var oi = parseInt(o.attr('oi'));
var d = this.nowdata[oi],
nae = d[can.displayfields],
val = d[can.valuefields];
$('#display_'+rand+'').val(nae);
$('#value_'+rand+'').val(val);
$('#display_'+rand+'').focus();
can.itemsclick(d, this, oi);
this._cenghide();
};
this._itemscheckclick = function(o1){
var s = js.getchecked('checkbox_'+rand+'');
var nae='',val='',i,s1,d,oi;
if(s!=''){
s1 = s.split(',');
for(i=0;i<s1.length;i++){
oi = s1[i];
d = this.nowdata[oi];
nae+=','+d[can.displayfields];
val+=','+d[can.valuefields];
}
}
if(nae!=''){
nae = nae.substr(1);
val = val.substr(1);
}
$('#display_'+rand+'').val(nae);
$('#value_'+rand+'').val(val);
this._setselcol();
};
//设置默认值
this.setDefault = function(vs1,a){
var nae = can.display,
val = vs1,
i,d;
var sval = ','+val+',',vslss,oi=0;
for(i=0; i<a.length; i++){
d = a[i];vslss = ','+d[can.valuefields]+',';
if(sval.indexOf(vslss)>-1){
if(!can.checked){
nae = d[can.displayfields];
break;
}else{
if(oi==0)nae='';
nae+=','+d[can.displayfields];
oi++;
}
}
}
if(nae.substr(0,1)==',')nae=nae.substr(1);
$('#display_'+rand+'').val(nae);
$('#value_'+rand+'').val(val);
};
this.getValue = function(){
return $('#value_'+rand+'').val();
};
this.getRawValue = function(){
return $('#display_'+rand+'').val();
};
this.setValue = function(val){
this.setDefault(val, can.data);
};
this.setRawValue = function(v, v1){
$('#display_'+rand+'').val(v);
$('#value_'+rand+'').val(v1);
};
this._load = function(url){
if(isempt(url))return;
if(get('list_'+rand+'')){
$('#list_'+rand+'').html('<div align="center" style="padding:20px"><img src="images/mloading.gif"></div>');
}
$.post(url,{key:$('#keysou_'+rand+'').val()},function(da){
var a = js.decode(da);
me._loadbool = true;
me._loadback(a);
});
};
//搜索
this._soukeysss = function(o1, e){
var code = e.keyCode;
if(code==13){
this._soukeybtn();
}else{
this._soukey();
}
//38 39 40 41
//js.msg('msg',code)
}
this._soukey = function(){
clearTimeout(this._soukeytime);
this._soukeytime = setTimeout(function(){
me._soukey1();
},300);
};
this._soukey1 = function(){
var d=[],i,bo,k,d1,
val = strreplace($('#keysou_'+rand+'').val()),
a = can.data;
if(a.length<=0 || this._oldvalue==val)return;
if(!isempt(val)){
val = val.toLowerCase();
for(i=0; i<a.length; i++){
if(d.length>10)break;
d1 = a[i];bo = false;
for(k in d1){
if(!isempt(d1[k])){
if(d1[k].toLowerCase().indexOf(val)==0){
bo = true;break;
}};
}
if(bo)d.push(d1);
}
}else{
d = a;
}
this._showdata(d);
this._oldvalue = val;
};
this._soukeybtn = function(){
if(can.url==''){
this._soukey();
}else{
this._fistload(1);
}
};
this._loadback = function(a){
this.setData(a);
};
this._fistload = function(lx){
if(!can.autoLoad && lx==0 )return;
if(can.url=='')return;
this._load(can.url);
};
this._downclear = function(){
this.setValue('');
$('#display_'+rand+'').focus();
};
this.reload = function(url){
if(!url)url = can.url;
this._load(can.url);
};
this.setData = function(a, naf, nafid){
can.data = a;
if(get('list_'+rand+'')){
this._showdata(a);
this.setValue(this.getValue());
}
if(naf)can.displayfields=naf;
if(nafid)can.valuefields=nafid;
};
this.setDisabled = function(bo){
get('down_'+rand+'').disabled = bo;
get('display_'+rand+'').disabled = bo;
if(can.clearbool)get('downclear_'+rand+'').disabled = bo;
};
this.hide = function(){
obj.hide();
};
this.show = function(){
obj.show();
};
this.setVisible=function(bo){
if(bo){
this.show();
}else{
this.hide();
}
};
};
$.fn.bootstigger = function(options){
var defaultVal = {
items:[],rand:js.getrand(),name:'',namedisplay:'',data:[],
displayfields:'name',valuefields:'name',
renderer:function(){return ''},listheight:38,
itemsclick:function(){},height:300,width:0,placeholder:'',
maxlist:1000,//最多列表数
checked:false,
clearbool:false,
value:'',display:'',
autoLoad:false,url:'',load:function(){}
};
var can = $.extend({}, defaultVal, options);
clsa = new bootstigger($(this), can);
clsa.init();
return clsa;
};

272
mode/bootstrapplugin/jquery-bootstree.js vendored Normal file
View File

@@ -0,0 +1,272 @@
/**
* bootstable 表格树形插件
* caratename雨中磐石(rainrock)
* caratetime2014-04-06 21:40:00
* email:admin@rockoa.com
* homepage:www.rockoa.com
*/
(function ($) {
function bootstree(element, options){
var obj = element;
var can = options;
var rand = can.rand;
var me = this;
this.bool = false;
this.changedata = false;
//初始化
this.init = function(){
if(rand=='')rand=js.getrand();
this._init();
this._create();
if(can.autoLoad && !isempt(can.url))this._load();
};
this._init = function(){
var a,s,i;
for(i=0; i<can.columns.length; i++){
a = can.columns[i];
if(typeof(a.align)=='undefined')can.columns[i].align='center';
if(a.xtype=='treecolumn')can.columns[i].align='left';
}
s='<div style="position:relative;border:1px #dddddd solid;" class="bootstree" id="treebody_'+rand+'"></div>';
obj.html(s);
};
this._create = function(){
var a = can.columns;
var s = '',i,len=a.length,hs;
this._zoi = -1;
this._zoiarr = [];
this.changedata = false;
if(!can.hideHeaders){
s+='<div>';
s+='<ul style="border-bottom:1px #dedede solid;border-top-width:0px;margin:0">';
if(can.checked)s+='<li style="width:40px;text-align:center"><input id="seltablecheck_'+rand+'" type="checkbox"></li>';
for(i=0;i<len;i++){
hs = '';
s+='<li '+hs+' style="width:'+a[i].width+';text-align:'+a[i].align+'">&nbsp;&nbsp;';
if(can.celleditor&&a[i].editor)s+='<i class="icon-pencil"></i>&nbsp;';
s+='<b>'+a[i].text+'</b>';
s+='</li>';
}
s+='</ul>';
s+='</div>';
}
s+=this._createjd(can.data, 0, 'treenode');
$('#treebody_'+rand+'').html(s);
obj.find("i[temp='nodeclick']").click(function(){
me._explade(this);
});
this.trobj = obj.find('ul[dataid]');
this.trobj.click(function(event){
me._itemclick(this, event, 0);
});
this.trobj.dblclick(function(event){
me._itemdblclick(this, event);
});
$('#seltablecheck_'+rand+'').click(function(){
js.selall(this, 'treecheck_'+rand+'');
});
}
this.viewreload = function(){
this._create();
};
this._itemclick= function(o1, e, lx){
this.trobj.css('background','');
var o = $(o1);
o.css('background', can.selectColor);
var oi = parseFloat(o.attr('oi'));
var a = this._zoiarr[oi];
this.changedata = a;
this.changeid = a.id;
if(lx==0)can.itemclick(a, oi, e);
if(lx==1)can.itemdblclick(a, oi, e);
};
this._itemdblclick=function(o1,e){
this._itemclick(o1,e,1)
};
this._explade = function(o){
var o1 = $(o);
var sid = o1.attr('nodeclick');
var exp = o1.attr('expanded');
if(exp=='true'){
obj.find("div[nodexu='"+sid+"']").hide();
o1.attr('expanded','false');
}else{
obj.find("div[nodexu='"+sid+"']").show();
o1.attr('expanded','true');
}
}
this._createjd = function(d, oi, xlx){
var a = can.columns;
var s = '',i,len=d.length,j,jlen = a.length,s1,ionc,s2='',s3,id, diss='',ov;
for(i=0;i<len;i++){
id = xlx+'_'+i;
s2 = '';
if(d[i].children){
if(d[i].children.length>0){
diss = '';
if(!d[i].expanded)diss='none';
s2= this._createjd(d[i].children, oi+1, id);
s2 = '<div style="display:'+diss+';" nodexu="'+id+'">'+s2+'</div>';
}
}
this._zoi++;
ov = d[i];
this._zoiarr[this._zoi] = ov;
s+='<ul oi="'+this._zoi+'" style="margin:0" dataid="'+ov.id+'">';
if(can.checked){
s+='<li style="width:40px;text-align:center"><input name="treecheck_'+rand+'" value="'+this._zoi+'" type="checkbox"></li>';
}
for(j=0;j<jlen;j++){
s1 = ov[a[j].dataIndex];
if(!s1)s1='';
if(typeof(a[j].renderer)=='function'){
s3 = a[j].renderer(s1, ov);
if(!isempt(s3))s1=s3;
}
s+='<li style="width:'+a[j].width+';text-align:'+a[j].align+'">';
if(a[j].xtype == 'treecolumn'){
ionc = 'folder-close-alt';
if(s2=='')ionc='file-alt';
if(ov.icons)ionc = ov.icons;
s+= '<div style="padding-left:'+(24*oi+10)+'px">';
s+= this._getshlist(ov, this._zoi);
s+= ' <i nodeclick="'+id+'" style="cursor:pointer" class="icon-'+ionc+'"';
if(s2 != '')s+=' temp="nodeclick"';
if(ov.expanded)s+=' expanded="true"';
s+= '></i> ';
s+= s1;
s+= '</div>';
}else{
s+= s1;
}
s+='</li>';
}
s+='</ul>';
s+=s2;
}
return s;
};
this._getshlist = function(a, oi){
var s= '',chk='',dis='';
if(typeof(a.checked)=='boolean'){
if(a.checked)chk='checked';
if(a.disabled)dis='disabled';
s = '<input name="treecheck_'+rand+'" '+chk+' '+dis+' value="'+oi+'" type="checkbox" >';
}
return s;
};
//获取选中
this.getchecked = function(){
var s = js.getchecked('treecheck_'+rand+''),
o = $("input[name='treecheck_"+rand+"']");
var a = [],i;
if(s!=''){
var a1 = s.split(',');
for(i=0; i<a1.length; i++){
oi = parseInt(a1[i]);
a.push(this._zoiarr[oi]);
}
}else if(o.size()==0){
if(this.changedata)a.push(this.changedata);
}
return a;
};
this.setparams = function(cans, relo){
if(!cans)cans={};
can.params = js.apply(can.params,cans);
if(relo)this._load();
};
this._load = function(){
if(this.bool)return;
var h= obj.height()-2,
w= obj.width()-2,
s = '';
s='<div id="modeshow_'+rand+'" style="filter:Alpha(opacity=20);opacity:0.2;height:'+h+'px;width:'+w+'px;overflow:hidden;z-index:3;position:absolute;left:0px;line-height:'+h+'px;top:0px;background:#000000;color:white" align="center"><img src="images/mloading.gif" align="absmiddle"></div>';
$('#treebody_'+rand+'').append(s);
this.bool = true;
var parm = can.params;
$.ajax({
type:can.method,url:can.url,
data:parm,
success:function(da){
if(!get('treebody_'+rand+''))return;
var a = js.decode(da);
me._loaddataback(a);
$('#modeshow_'+rand+'').remove();
me.bool = false;
},
error: function(e){
$('#modeshow_'+rand+'').remove();
js.msg('msg',e.responseText);
me.bool = false;
}
});
};
this._loaddataback = function(a){
var d = a.rows ? a.rows : a;
can.data = d;
this._create();
can.load(a, this);
};
this.reload = function(){
this._load();
};
this.loadData = function(d){
this._loaddataback(d);
};
this.del = function(csa){
if(this.bool)return;
var a = js.apply({msg:'确定要删除选中的记录吗?',success:function(){},checked:false,check:function(){},id:this.changeid,url:'',params:{}},csa);
if(!a.id ||a.url==''||a.id=='0')return;
js.confirm(a.msg,function(lx){
if(lx=='yes'){
me._delok(a);
}
});
};
this._delok = function(ds){
js.msg('wait','删除中...');
this.bool=true;
var url = ds.url,ss = js.apply({id:ds.id},ds.params);
$.ajax({
url:url,type:'POST',data:ss,dataType:'json',
success:function(a1){
me.bool=false;
if(a1.code==200){
js.msg('success','删除成功');
ds.success();
me.reload();
}else{
js.msg('msg',a1.msg);
}
},
error:function(e){
js.msg('msg','err:'+e.responseText);
me.bool = false;
}
});
};
};
$.fn.bootstree = function(options){
var defaultVal = {
data:[],rand:'',columns:[],hideHeaders:false,selectColor:'#DFF0D8',method:'GET',
itemdblclick:function(){},checked:false,autoLoad:true,url:'',params:{},
itemclick:function(da, index, e){},load:function(){}
};
var can = $.extend({}, defaultVal, options);
var clsa = new bootstree($(this), can);
clsa.init();
return clsa;
};
})(jQuery);

BIN
mode/icons/attach.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

BIN
mode/icons/crop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

BIN
mode/icons/date.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

BIN
mode/icons/email.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 641 B

BIN
mode/icons/email_go.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

410
mode/kindeditor/kindeditor-min.js vendored Normal file
View File

@@ -0,0 +1,410 @@
/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http://www.kindsoft.net/license.php */(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;c<d;c++)if(a===b[c])return c;return-1}function m(a,b){if(Z(a))for(var c=0,d=a.length;c<d;c++){if(b.call(a[c],c,a[c])===!1)break}else for(c in a)if(a.hasOwnProperty(c)&&b.call(a[c],c,a[c])===!1)break}function B(a){return a.replace(/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,
"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&/^\d+$/.test(a)?a+b:a}function t(a){var b;return a&&(b=/(\d+)/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function fa(a){return a.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&amp;/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+
d.substr(1):d});return a}function ya(a){function b(a){a=parseInt(a,10).toString(16).toUpperCase();return a.length>1?a:"0"+a}return a.replace(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/ig,function(a,d,e,g){return"#"+b(d)+b(e)+b(g)})}function u(a,b){var b=b===i?",":b,c={},d=Z(a)?a:a.split(b),e;m(d,function(a,b){if(e=/^(\d+)\.\.(\d+)$/.exec(b))for(var d=parseInt(e[1],10);d<=parseInt(e[2],10);d++)c[d.toString()]=!0;else c[b]=!0});return c}function Ja(a,b){return Array.prototype.slice.call(a,b||0)}
function l(a,b){return a===i?b:a}function E(a,b,c){c||(c=b,b=null);var d;if(b){var e=function(){};e.prototype=b.prototype;d=new e;m(c,function(a,b){d[a]=b})}else d=c;d.constructor=a;a.prototype=d;a.parent=b?b.prototype:null}function eb(a){var b;if(b=/\{[\s\S]*\}|\[[\s\S]*\]/.exec(a))a=b[0];b=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;b.lastIndex=0;b.test(a)&&(a=a.replace(b,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return eval("("+a+")");throw"JSON parse error";}function Rb(a,b,c){a.addEventListener?a.addEventListener(b,c,fb):a.attachEvent&&a.attachEvent("on"+b,c)}function za(a,b,c){a.removeEventListener?a.removeEventListener(b,c,fb):a.detachEvent&&a.detachEvent("on"+b,c)}function gb(a,b){this.init(a,b)}function hb(a){try{delete a[$]}catch(b){a.removeAttribute&&
a.removeAttribute($)}}function aa(a,b,c){if(b.indexOf(",")>=0)m(b.split(","),function(){aa(a,this,c)});else{var d=a[$]||null;d||(a[$]=++ib,d=ib);v[d]===i&&(v[d]={});var e=v[d][b];e&&e.length>0?za(a,b,e[0]):(v[d][b]=[],v[d].el=a);e=v[d][b];e.length===0&&(e[0]=function(b){var c=b?new gb(a,b):i;m(e,function(b,d){b>0&&d&&d.call(a,c)})});J(c,e)<0&&e.push(c);Rb(a,b,e[0])}}function ha(a,b,c){if(b&&b.indexOf(",")>=0)m(b.split(","),function(){ha(a,this,c)});else{var d=a[$]||null;if(d)if(b===i)d in v&&(m(v[d],
function(b,c){b!="el"&&c.length>0&&za(a,b,c[0])}),delete v[d],hb(a));else if(v[d]){var e=v[d][b];if(e&&e.length>0){c===i?(za(a,b,e[0]),delete v[d][b]):(m(e,function(a,b){a>0&&b===c&&e.splice(a,1)}),e.length==1&&(za(a,b,e[0]),delete v[d][b]));var g=0;m(v[d],function(){g++});g<2&&(delete v[d],hb(a))}}}}function jb(a,b){if(b.indexOf(",")>=0)m(b.split(","),function(){jb(a,this)});else{var c=a[$]||null;if(c){var d=v[c][b];if(v[c]&&d&&d.length>0)d[0]()}}}function Ka(a,b,c){b=/^\d{2,}$/.test(b)?b:b.toUpperCase().charCodeAt(0);
aa(a,"keydown",function(d){d.ctrlKey&&d.which==b&&!d.shiftKey&&!d.altKey&&(c.call(a),d.stop())})}function ba(a){for(var b={},c=/\s*([\w\-]+)\s*:([^;]*)(;|$)/g,d;d=c.exec(a);){var e=B(d[1].toLowerCase());d=B(ya(d[2]));b[e]=d}return b}function I(a){for(var b={},c=/\s+(?:([\w\-:]+)|(?:([\w\-:]+)=([^\s"'<>]+))|(?:([\w\-:"]+)="([^"]*)")|(?:([\w\-:"]+)='([^']*)'))(?=(?:\s|\/|>)+)/g,d;d=c.exec(a);){var e=(d[1]||d[2]||d[4]||d[6]).toLowerCase();b[e]=(d[2]?d[3]:d[4]?d[5]:d[7])||""}return b}function Sb(a,b){return a=
/\s+class\s*=/.test(a)?a.replace(/(\s+class=["']?)([^"']*)(["']?[\s>])/,function(a,d,e,g){return(" "+e+" ").indexOf(" "+b+" ")<0?e===""?d+b+g:d+e+" "+b+g:a}):a.substr(0,a.length-1)+' class="'+b+'">'}function Tb(a){var b="";m(ba(a),function(a,d){b+=a+":"+d+";"});return b}function ia(a,b,c,d){function e(a){for(var a=a.split("/"),b=[],c=0,d=a.length;c<d;c++){var e=a[c];e==".."?b.length>0&&b.pop():e!==""&&e!="."&&b.push(e)}return"/"+b.join("/")}function g(b,c){if(a.substr(0,b.length)===b){for(var e=[],
h=0;h<c;h++)e.push("..");h=".";e.length>0&&(h+="/"+e.join("/"));d=="/"&&(h+="/");return h+a.substr(b.length)}else if(f=/^(.*)\//.exec(b))return g(f[1],++c)}b=l(b,"").toLowerCase();a.substr(0,5)!="data:"&&(a=a.replace(/([^:])\/\//g,"$1/"));if(J(b,["absolute","relative","domain"])<0)return a;c=c||location.protocol+"//"+location.host;if(d===i)var h=location.pathname.match(/^(\/.*)\//),d=h?h[1]:"";var f;if(f=/^(\w+:\/\/[^\/]*)/.exec(a)){if(f[1]!==c)return a}else if(/^\w+:/.test(a))return a;/^\//.test(a)?
a=c+e(a.substr(1)):/^\w+:\/\//.test(a)||(a=c+e(d+"/"+a));b==="relative"?a=g(c+d,0).substr(2):b==="absolute"&&a.substr(0,c.length)===c&&(a=a.substr(c.length));return a}function U(a,b,c,d,e){a==null&&(a="");var c=c||"",d=l(d,!1),e=l(e,"\t"),g="xx-small,x-small,small,medium,large,x-large,xx-large".split(","),a=a.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function(a,b,c,d){return b+c.replace(/<(?:br|br\s[^>]*)>/ig,"\n")+d}),a=a.replace(/<(?:br|br\s[^>]*)\s*\/?>\s*<\/p>/ig,"</p>"),a=a.replace(/(<(?:p|p\s[^>]*)>)\s*(<\/p>)/ig,
"$1<br />$2"),a=a.replace(/\u200B/g,""),a=a.replace(/\u00A9/g,"&copy;"),a=a.replace(/\u00AE/g,"&reg;"),a=a.replace(/<[^>]+/g,function(a){return a.replace(/\s+/g," ")}),h={};b&&(m(b,function(a,b){for(var c=a.split(","),d=0,e=c.length;d<e;d++)h[c[d]]=u(b)}),h.script||(a=a.replace(/(<(?:script|script\s[^>]*)>)([\s\S]*?)(<\/script>)/ig,"")),h.style||(a=a.replace(/(<(?:style|style\s[^>]*)>)([\s\S]*?)(<\/style>)/ig,"")));var f=[],a=a.replace(/(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>(\s*)/g,
function(a,n,q,r,K,ja,i){var n=n||"",q=q||"",l=r.toLowerCase(),o=K||"",r=ja?" "+ja:"",i=i||"";if(b&&!h[l])return"";r===""&&kb[l]&&(r=" /");lb[l]&&(n&&(n=" "),i&&(i=" "));La[l]&&(q?i="\n":n="\n");d&&l=="br"&&(i="\n");if(mb[l]&&!La[l])if(d){q&&f.length>0&&f[f.length-1]===l?f.pop():f.push(l);i=n="\n";K=0;for(ja=q?f.length:f.length-1;K<ja;K++)n+=e,q||(i+=e);r?f.pop():q||(i+=e)}else n=i="";if(o!==""){var z=I(a);if(l==="font"){var L={},F="";m(z,function(a,b){if(a==="color")L.color=b,delete z[a];a==="size"&&
(L["font-size"]=g[parseInt(b,10)-1]||"",delete z[a]);a==="face"&&(L["font-family"]=b,delete z[a]);a==="style"&&(F=b)});F&&!/;$/.test(F)&&(F+=";");m(L,function(a,b){b!==""&&(/\s/.test(b)&&(b="'"+b+"'"),F+=a+":"+b+";")});z.style=F}m(z,function(a,d){Ub[a]&&(z[a]=a);J(a,["src","href"])>=0&&(z[a]=ia(d,c));(b&&a!=="style"&&!h[l]["*"]&&!h[l][a]||l==="body"&&a==="contenteditable"||/^kindeditor_\d+$/.test(a))&&delete z[a];if(a==="style"&&d!==""){var e=ba(d);m(e,function(a){b&&!h[l].style&&!h[l]["."+a]&&delete e[a]});
var g="";m(e,function(a,b){g+=a+":"+b+";"});z.style=g}});o="";m(z,function(a,b){a==="style"&&b===""||(b=b.replace(/"/g,"&quot;"),o+=" "+a+'="'+b+'"')})}l==="font"&&(l="span");return n+"<"+q+l+o+r+">"+i}),a=a.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function(a,b,c,d){return b+c.replace(/\n/g,'<span id="__kindeditor_pre_newline__">\n')+d}),a=a.replace(/\n\s*\n/g,"\n"),a=a.replace(/<span id="__kindeditor_pre_newline__">\n/g,"\n");return B(a)}function nb(a,b){a=a.replace(/<meta[\s\S]*?>/ig,
"").replace(/<![\s\S]*?>/ig,"").replace(/<style[^>]*>[\s\S]*?<\/style>/ig,"").replace(/<script[^>]*>[\s\S]*?<\/script>/ig,"").replace(/<w:[^>]+>[\s\S]*?<\/w:[^>]+>/ig,"").replace(/<o:[^>]+>[\s\S]*?<\/o:[^>]+>/ig,"").replace(/<xml>[\s\S]*?<\/xml>/ig,"").replace(/<(?:table|td)[^>]*>/ig,function(a){return a.replace(/border-bottom:([#\w\s]+)/ig,"border:$1")});return U(a,b)}function ob(a){if(/\.(rm|rmvb)(\?|$)/i.test(a))return"audio/x-pn-realaudio-plugin";if(/\.(swf|flv)(\?|$)/i.test(a))return"application/x-shockwave-flash";
return"video/x-ms-asf-plugin"}function pb(a){return I(unescape(a))}function Ma(a){var b="<embed ";m(a,function(a,d){b+=a+'="'+d+'" '});b+="/>";return b}function qb(a,b){var c=b.width,d=b.height,e=b.type||ob(b.src),g=Ma(b),h="";/\D/.test(c)?h+="width:"+c+";":c>0&&(h+="width:"+c+"px;");/\D/.test(d)?h+="height:"+d+";":d>0&&(h+="height:"+d+"px;");c=/realaudio/i.test(e)?"ke-rm":/flash/i.test(e)?"ke-flash":"ke-media";c='<img class="'+c+'" src="'+a+'" ';h!==""&&(c+='style="'+h+'" ');c+='data-ke-tag="'+escape(g)+
'" alt="" />';return c}function Aa(a,b){if(a.nodeType==9&&b.nodeType!=9)return!0;for(;b=b.parentNode;)if(b==a)return!0;return!1}function Ba(a,b){var b=b.toLowerCase(),c=null;if(!Vb&&a.nodeName.toLowerCase()!="script"){var d=a.ownerDocument.createElement("div");d.appendChild(a.cloneNode(!1));d=I(fa(d.innerHTML));b in d&&(c=d[b])}else try{c=a.getAttribute(b,2)}catch(e){c=a.getAttribute(b,1)}b==="style"&&c!==null&&(c=Tb(c));return c}function Ca(a,b){function c(a){if(typeof a!="string")return a;return a.replace(/([^\w\-])/g,
"\\$1")}function d(a,b){return a==="*"||a.toLowerCase()===c(b.toLowerCase())}function e(a,b,c){var e=[];(a=(c.ownerDocument||c).getElementById(a.replace(/\\/g,"")))&&d(b,a.nodeName)&&Aa(c,a)&&e.push(a);return e}function g(a,b,c){var e=c.ownerDocument||c,g=[],h,f,j;if(c.getElementsByClassName){e=c.getElementsByClassName(a.replace(/\\/g,""));h=0;for(f=e.length;h<f;h++)j=e[h],d(b,j.nodeName)&&g.push(j)}else if(e.querySelectorAll){e=e.querySelectorAll((c.nodeName!=="#document"?c.nodeName+" ":"")+b+"."+
a);h=0;for(f=e.length;h<f;h++)j=e[h],Aa(c,j)&&g.push(j)}else{e=c.getElementsByTagName(b);a=" "+a+" ";h=0;for(f=e.length;h<f;h++)if(j=e[h],j.nodeType==1)(b=j.className)&&(" "+b+" ").indexOf(a)>-1&&g.push(j)}return g}function h(a,b,d,e){for(var g=[],d=e.getElementsByTagName(d),h=0,f=d.length;h<f;h++)e=d[h],e.nodeType==1&&(b===null?Ba(e,a)!==null&&g.push(e):b===c(Ba(e,a))&&g.push(e));return g}function f(a,b){var c=[],j,k=(j=/^((?:\\.|[^.#\s\[<>])+)/.exec(a))?j[1]:"*";if(j=/#((?:[\w\-]|\\.)+)$/.exec(a))c=
e(j[1],k,b);else if(j=/\.((?:[\w\-]|\\.)+)$/.exec(a))c=g(j[1],k,b);else if(j=/\[((?:[\w\-]|\\.)+)\]/.exec(a))c=h(j[1].toLowerCase(),null,k,b);else if(j=/\[((?:[\w\-]|\\.)+)\s*=\s*['"]?((?:\\.|[^'"]+)+)['"]?\]/.exec(a)){c=j[1].toLowerCase();j=j[2];if(c==="id")k=e(j,k,b);else if(c==="class")k=g(j,k,b);else if(c==="name"){c=[];j=(b.ownerDocument||b).getElementsByName(j.replace(/\\/g,""));for(var n,r=0,q=j.length;r<q;r++)n=j[r],d(k,n.nodeName)&&Aa(b,n)&&n.getAttribute("name")!==null&&c.push(n);k=c}else k=
h(c,j,k,b);c=k}else{k=b.getElementsByTagName(k);n=0;for(r=k.length;n<r;n++)j=k[n],j.nodeType==1&&c.push(j)}return c}var k=a.split(",");if(k.length>1){var n=[];m(k,function(){m(Ca(this,b),function(){J(this,n)<0&&n.push(this)})});return n}for(var b=b||document,k=[],q,r=/((?:\\.|[^\s>])+|[\s>])/g;q=r.exec(a);)q[1]!==" "&&k.push(q[1]);q=[];if(k.length==1)return f(k[0],b);var r=!1,K,l,i,o,p,z,L,F,s,t;z=0;for(lenth=k.length;z<lenth;z++)if(K=k[z],K===">")r=!0;else{if(z>0){l=[];L=0;for(s=q.length;L<s;L++){o=
q[L];i=f(K,o);F=0;for(t=i.length;F<t;F++)p=i[F],r?o===p.parentNode&&l.push(p):l.push(p)}q=l}else q=f(K,b);if(q.length===0)return[]}return q}function V(a){if(!a)return document;return a.ownerDocument||a.document||a}function W(a){if(!a)return w;a=V(a);return a.parentWindow||a.defaultView}function Wb(a,b){if(a.nodeType==1){var c=V(a);try{a.innerHTML='<img id="__kindeditor_temp_tag__" width="0" height="0" style="display:none;" />'+b;var d=c.getElementById("__kindeditor_temp_tag__");d.parentNode.removeChild(d)}catch(e){f(a).empty(),
f("@"+b,c).each(function(){a.appendChild(this)})}}}function Na(a,b,c){o&&A<8&&b.toLowerCase()=="class"&&(b="className");a.setAttribute(b,""+c)}function Oa(a){if(!a||!a.nodeName)return"";return a.nodeName.toLowerCase()}function Xb(a,b){var c=W(a),d=ga(b),e="";c.getComputedStyle?(c=c.getComputedStyle(a,null),e=c[d]||c.getPropertyValue(b)||a.style[d]):a.currentStyle&&(e=a.currentStyle[d]||a.style[d]);return e}function G(a){a=a||document;return P?a.body:a.documentElement}function ca(a){var a=a||document,
b;o||Yb||Pa?(b=G(a).scrollLeft,a=G(a).scrollTop):(b=W(a).scrollX,a=W(a).scrollY);return{x:b,y:a}}function D(a){this.init(a)}function rb(a){a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset;return a}function Qa(a,b,c){function d(d,e,g){var h=d.nodeValue.length,k;b&&(k=d.cloneNode(!0),k=e>0?k.splitText(e):k,g<h&&k.splitText(g-e));if(c){var n=d;e>0&&(n=d.splitText(e),a.setStart(d,e));g<h&&(d=n.splitText(g-e),a.setEnd(d,0));f.push(n)}return k}function e(){c&&a.up().collapse(!0);
for(var b=0,d=f.length;b<d;b++){var e=f[b];e.parentNode&&e.parentNode.removeChild(e)}}function g(e,l){for(var i=e.firstChild,o;i;){o=(new M(h)).selectNode(i);n=o.compareBoundaryPoints(ka,a);n>=0&&q<=0&&(q=o.compareBoundaryPoints(la,a));q>=0&&r<=0&&(r=o.compareBoundaryPoints(da,a));r>=0&&m<=0&&(m=o.compareBoundaryPoints(ma,a));if(m>=0)return!1;o=i.nextSibling;if(n>0)if(i.nodeType==1)if(q>=0&&r<=0)b&&l.appendChild(i.cloneNode(!0)),c&&f.push(i);else{var p;b&&(p=i.cloneNode(!1),l.appendChild(p));if(g(i,
p)===!1)return!1}else if(i.nodeType==3&&(i=i==k.startContainer?d(i,k.startOffset,i.nodeValue.length):i==k.endContainer?d(i,0,k.endOffset):d(i,0,i.nodeValue.length),b))try{l.appendChild(i)}catch(ja){}i=o}}var h=a.doc,f=[],k=a.cloneRange().down(),n=-1,q=-1,r=-1,m=-1,l=a.commonAncestor(),i=h.createDocumentFragment();if(l.nodeType==3)return l=d(l,a.startOffset,a.endOffset),b&&i.appendChild(l),e(),b?i:a;g(l,i);c&&a.up().collapse(!0);for(var l=0,o=f.length;l<o;l++){var p=f[l];p.parentNode&&p.parentNode.removeChild(p)}return b?
i:a}function na(a,b){for(var c=b;c;){var d=f(c);if(d.name=="marquee"||d.name=="select")return;c=c.parentNode}try{a.moveToElementText(b)}catch(e){}}function sb(a,b){var c=a.parentElement().ownerDocument,d=a.duplicate();d.collapse(b);var e=d.parentElement(),g=e.childNodes;if(g.length===0)return{node:e.parentNode,offset:f(e).index()};var h=c,j=0,k=-1,n=a.duplicate();na(n,e);for(var q=0,r=g.length;q<r;q++){var i=g[q],k=n.compareEndPoints("StartToStart",d);if(k===0)return{node:i.parentNode,offset:q};if(i.nodeType==
1){var l=a.duplicate(),m,o=f(i),p=i;o.isControl()&&(m=c.createElement("span"),o.after(m),p=m,j+=o.text().replace(/\r\n|\n|\r/g,"").length);na(l,p);n.setEndPoint("StartToEnd",l);k>0?j+=l.text.replace(/\r\n|\n|\r/g,"").length:j=0;m&&f(m).remove()}else i.nodeType==3&&(n.moveStart("character",i.nodeValue.length),j+=i.nodeValue.length);k<0&&(h=i)}if(k<0&&h.nodeType==1)return{node:e,offset:f(e.lastChild).index()+1};if(k>0)for(;h.nextSibling&&h.nodeType==1;)h=h.nextSibling;n=a.duplicate();na(n,e);n.setEndPoint("StartToEnd",
d);j-=n.text.replace(/\r\n|\n|\r/g,"").length;if(k>0&&h.nodeType==3)for(c=h.previousSibling;c&&c.nodeType==3;)j-=c.nodeValue.length,c=c.previousSibling;return{node:h,offset:j}}function tb(a,b){var c=a.ownerDocument||a,d=c.body.createTextRange();if(c==a)return d.collapse(!0),d;if(a.nodeType==1&&a.childNodes.length>0){var e=a.childNodes,g;b===0?(g=e[0],e=!0):(g=e[b-1],e=!1);if(!g)return d;if(f(g).name==="head")return b===1&&(e=!0),b===2&&(e=!1),d.collapse(e),d;if(g.nodeType==1){var h=f(g),j;h.isControl()&&
(j=c.createElement("span"),e?h.before(j):h.after(j),g=j);na(d,g);d.collapse(e);j&&f(j).remove();return d}a=g;b=e?0:g.nodeValue.length}c=c.createElement("span");f(a).before(c);na(d,c);d.moveStart("character",b);f(c).remove();return d}function ub(a){function b(a){if(f(a.node).name=="tr")a.node=a.node.cells[a.offset],a.offset=0}var c;if(H){if(a.item)return c=V(a.item(0)),c=new M(c),c.selectNode(a.item(0)),c;c=a.parentElement().ownerDocument;var d=sb(a,!0),a=sb(a,!1);b(d);b(a);c=new M(c);c.setStart(d.node,
d.offset);c.setEnd(a.node,a.offset);return c}d=a.startContainer;c=d.ownerDocument||d;c=new M(c);c.setStart(d,a.startOffset);c.setEnd(a.endContainer,a.endOffset);return c}function M(a){this.init(a)}function Ra(a){if(!a.nodeName)return a.constructor===M?a:ub(a);return new M(a)}function Q(a,b,c){try{a.execCommand(b,!1,c)}catch(d){}}function vb(a,b){var c="";try{c=a.queryCommandValue(b)}catch(d){}typeof c!=="string"&&(c="");return c}function Sa(a){var b=W(a);return H?a.selection:b.getSelection()}function wb(a){var b=
{},c,d;m(a,function(a,g){c=a.split(",");for(var h=0,f=c.length;h<f;h++)d=c[h],b[d]=g});return b}function Ta(a,b){return xb(a,b,"*")||xb(a,b)}function xb(a,b,c){c=c||a.name;if(a.type!==1)return!1;b=wb(b);if(!b[c])return!1;for(var c=b[c].split(","),b=0,d=c.length;b<d;b++){var e=c[b];if(e==="*")return!0;var g=/^(\.?)([^=]+)(?:=([^=]*))?$/.exec(e),h=g[1]?"css":"attr",e=g[2],g=g[3]||"";if(g===""&&a[h](e)!=="")return!0;if(g!==""&&a[h](e)===g)return!0}return!1}function Ua(a,b){a.type==1&&(yb(a,b,"*"),yb(a,
b))}function yb(a,b,c){c=c||a.name;if(a.type===1&&(b=wb(b),b[c])){for(var c=b[c].split(","),b=!1,d=0,e=c.length;d<e;d++){var g=c[d];if(g==="*"){b=!0;break}var h=/^(\.?)([^=]+)(?:=([^=]*))?$/.exec(g),g=h[2];h[1]?(g=ga(g),a[0].style[g]&&(a[0].style[g]="")):a.removeAttr(g)}b&&a.remove(!0)}}function Va(a){for(;a.first();)a=a.first();return a}function ea(a){if(a.type!=1||a.isSingle())return!1;return a.html().replace(/<[^>]+>/g,"")===""}function Zb(a,b,c){m(b,function(b,c){b!=="style"&&a.attr(b,c)});m(c,
function(b,c){a.css(b,c)})}function oa(a){this.init(a)}function zb(a){a.nodeName&&(a=V(a),a=Ra(a).selectNodeContents(a.body).collapse(!1));return new oa(a)}function Wa(a){var b=a.moveEl,c=a.moveFn,d=a.clickEl||b,e=a.beforeDrag,g=[document];(a.iframeFix===i||a.iframeFix)&&f("iframe").each(function(){if(!/^https?:\/\//.test(ia(this.src||"","absolute"))){var a;try{a=Xa(this)}catch(b){}if(a){var c=f(this).pos();f(a).data("pos-x",c.x);f(a).data("pos-y",c.y);g.push(a)}}});d.mousedown(function(a){function j(a){a.preventDefault();
var b=f(V(a.target)),e=R((b.data("pos-x")||0)+a.pageX-p),a=R((b.data("pos-y")||0)+a.pageY-s);c.call(d,r,l,m,o,e,a)}function k(a){a.preventDefault()}function n(a){a.preventDefault();f(g).unbind("mousemove",j).unbind("mouseup",n).unbind("selectstart",k);i.releaseCapture&&i.releaseCapture()}a.stopPropagation();var i=d.get(),r=t(b.css("left")),l=t(b.css("top")),m=b.width(),o=b.height(),p=a.pageX,s=a.pageY;e&&e();f(g).mousemove(j).mouseup(n).bind("selectstart",k);i.setCapture&&i.setCapture()})}function S(a){this.init(a)}
function Ya(a){return new S(a)}function Xa(a){a=f(a)[0];return a.contentDocument||a.contentWindow.document}function $b(a,b,c,d){var e=[Za===""?"<html>":'<html dir="'+Za+'">','<head><meta charset="utf-8" /><title></title>',"<style>","html {margin:0;padding:0;}","body {margin:0;padding:5px;}",'body, td {font:14px/1.5 微软雅黑,"sans serif",tahoma,verdana,helvetica;line-height:25px;}',"body, p, div {word-wrap: break-word;}","p {margin:5px 0;text-indent:2em;}","table {border-collapse:collapse;}","img {border:0;}","noscript {display:none;}","table.ke-zeroborder td {border:1px dotted #AAA;}",
"img.ke-flash {","\tborder:1px solid #AAA;","\tbackground-image:url("+a+"common/flash.gif);","\tbackground-position:center center;","\tbackground-repeat:no-repeat;","\twidth:100px;","\theight:100px;","}","img.ke-rm {","\tborder:1px solid #AAA;","\tbackground-image:url("+a+"common/rm.gif);","\tbackground-position:center center;","\tbackground-repeat:no-repeat;","\twidth:100px;","\theight:100px;","}","img.ke-media {","\tborder:1px solid #AAA;","\tbackground-image:url("+a+"common/media.gif);","\tbackground-position:center center;",
"\tbackground-repeat:no-repeat;","\twidth:100px;","\theight:100px;","}","img.ke-anchor {","\tborder:1px dashed #666;","\twidth:16px;","\theight:16px;","}",".ke-script, .ke-noscript, .ke-display-none {","\tdisplay:none;","\tfont-size:0;","\twidth:0;","\theight:0;","}",".ke-pagebreak {","\tborder:1px dotted #AAA;","\tfont-size:0;","\theight:2px;","}","</style>"];Z(c)||(c=[c]);m(c,function(a,b){b&&e.push('<link href="'+b+'" rel="stylesheet" />')});d&&e.push("<style>"+d+"</style>");e.push("</head><body "+
(b?'class="'+b+'"':"")+"></body></html>");return e.join("\n")}function pa(a,b){if(a.hasVal()){if(b===i){var c=a.val();return c=c.replace(/(<(?:p|p\s[^>]*)>) *(<\/p>)/ig,"")}return a.val(b)}return a.html(b)}function qa(a){this.init(a)}function Ab(a){return new qa(a)}function Bb(a,b){var c=this.get(a);c&&!c.hasClass("ke-disabled")&&b(c)}function Da(a){this.init(a)}function Cb(a){return new Da(a)}function ra(a){this.init(a)}function $a(a){return new ra(a)}function sa(a){this.init(a)}function Db(a){return new sa(a)}
function ab(a){this.init(a)}function ta(a){this.init(a)}function Eb(a){return new ta(a)}function bb(a,b){var c=document.getElementsByTagName("head")[0]||(P?document.body:document.documentElement),d=document.createElement("script");c.appendChild(d);d.src=a;d.charset="utf-8";d.onload=d.onreadystatechange=function(){if(!this.readyState||this.readyState==="loaded")b&&b(),d.onload=d.onreadystatechange=null,c.removeChild(d)}}function Fb(a){var b=a.indexOf("?");return b>0?a.substr(0,b):a}function cb(a){for(var b=
document.getElementsByTagName("head")[0]||(P?document.body:document.documentElement),c=document.createElement("link"),d=Fb(ia(a,"absolute")),e=f('link[rel="stylesheet"]',b),g=0,h=e.length;g<h;g++)if(Fb(ia(e[g].href,"absolute"))===d)return;b.appendChild(c);c.href=a;c.rel="stylesheet"}function Gb(a,b){if(a===i)return N;if(!b)return N[a];N[a]=b}function Hb(a){var b,c="core";if(b=/^(\w+)\.(\w+)$/.exec(a))c=b[1],a=b[2];return{ns:c,key:a}}function Ib(a,b){b=b===i?f.options.langType:b;if(typeof a==="string"){if(!O[b])return"no language";
var c=a.length-1;if(a.substr(c)===".")return O[b][a.substr(0,c)];c=Hb(a);return O[b][c.ns][c.key]}m(a,function(a,c){var g=Hb(a);O[b]||(O[b]={});O[b][g.ns]||(O[b][g.ns]={});O[b][g.ns][g.key]=c})}function Ea(a,b){if(!a.collapsed){var a=a.cloneRange().up(),c=a.startContainer,d=a.startOffset;if(X||a.isControl())if((c=f(c.childNodes[d]))&&c.name=="img"&&b(c))return c}}function ac(){var a=this;f(a.edit.doc).contextmenu(function(b){a.menu&&a.hideMenu();if(a.useContextmenu){if(a._contextmenus.length!==0){var c=
0,d=[];for(m(a._contextmenus,function(){if(this.title=="-")d.push(this);else if(this.cond&&this.cond()&&(d.push(this),this.width&&this.width>c))c=this.width});d.length>0&&d[0].title=="-";)d.shift();for(;d.length>0&&d[d.length-1].title=="-";)d.pop();var e=null;m(d,function(a){this.title=="-"&&e.title=="-"&&delete d[a];e=this});if(d.length>0){b.preventDefault();var g=f(a.edit.iframe).pos(),h=$a({x:g.x+b.clientX,y:g.y+b.clientY,width:c,css:{visibility:"hidden"},shadowMode:a.shadowMode});m(d,function(){this.title&&
h.addItem(this)});var g=G(h.doc),j=h.div.height();b.clientY+j>=g.clientHeight-100&&h.pos(h.x,t(h.y)-j);h.div.css("visibility","visible");a.menu=h}}}else b.preventDefault()})}function bc(){function a(a){for(a=f(a.commonAncestor());a;){if(a.type==1&&!a.isStyle())break;a=a.parent()}return a.name}var b=this,c=b.edit.doc,d=b.newlineTag;if(!(o&&d!=="br")&&(!Y||!(A<3&&d!=="p"))&&!(Pa&&A<9)){var e=u("h1,h2,h3,h4,h5,h6,pre,li"),g=u("p,h1,h2,h3,h4,h5,h6,pre,li,blockquote");f(c).keydown(function(f){if(!(f.which!=
13||f.shiftKey||f.ctrlKey||f.altKey)){b.cmd.selection();var j=a(b.cmd.range);j=="marquee"||j=="select"||(d==="br"&&!e[j]?(f.preventDefault(),b.insertHtml("<br />"+(o&&A<9?"":"\u200b"))):g[j]||Q(c,"formatblock","<p>"))}});f(c).keyup(function(e){if(!(e.which!=13||e.shiftKey||e.ctrlKey||e.altKey)&&d!="br")if(Y){var e=b.cmd.commonAncestor("p"),j=b.cmd.commonAncestor("a");j&&j.text()==""&&(j.remove(!0),b.cmd.range.selectNodeContents(e[0]).collapse(!0),b.cmd.select())}else if(b.cmd.selection(),e=a(b.cmd.range),
!(e=="marquee"||e=="select"))if(g[e]||Q(c,"formatblock","<p>"),e=b.cmd.commonAncestor("div")){for(var j=f("<p></p>"),k=e[0].firstChild;k;){var n=k.nextSibling;j.append(k);k=n}e.before(j);e.remove();b.cmd.range.selectNodeContents(j[0]);b.cmd.select()}})}}function cc(){var a=this,b=a.edit.doc;f(b).keydown(function(c){if(c.which==9)if(c.preventDefault(),a.afterTab)a.afterTab.call(a,c);else{var c=a.cmd,d=c.range;d.shrink();d.collapsed&&d.startContainer.nodeType==1&&(d.insertNode(f("@&nbsp;",b)[0]),c.select());
a.insertHtml("&nbsp;&nbsp;&nbsp;&nbsp;")}})}function dc(){var a=this;f(a.edit.textarea[0],a.edit.win).focus(function(b){a.afterFocus&&a.afterFocus.call(a,b)}).blur(function(b){a.afterBlur&&a.afterBlur.call(a,b)})}function T(a){return B(a.replace(/<span [^>]*id="?__kindeditor_bookmark_\w+_\d+__"?[^>]*><\/span>/ig,""))}function Fa(a){return a.replace(/<div[^>]+class="?__kindeditor_paste__"?[^>]*>[\s\S]*?<\/div>/ig,"")}function Jb(a,b){if(a.length===0)a.push(b);else{var c=a[a.length-1];T(b.html)!==T(c.html)&&
a.push(b)}}function Kb(a,b){var c=this.edit,d=c.doc.body,e,g;if(a.length===0)return this;c.designMode?(e=this.cmd.range,g=e.createBookmark(!0),g.html=d.innerHTML):g={html:d.innerHTML};Jb(b,g);var h=a.pop();T(g.html)===T(h.html)&&a.length>0&&(h=a.pop());c.designMode?(c.html(h.html),h.start&&(e.moveToBookmark(h),this.select())):f(d).html(T(h.html));return this}function ua(a){function b(a,b){ua.prototype[a]===i&&(c[a]=b);c.options[a]=b}var c=this;c.options={};m(a,function(c){b(c,a[c])});m(f.options,
function(a,d){c[a]===i&&b(a,d)});var d=f(c.srcElement||"<textarea/>");if(!c.width)c.width=d[0].style.width||d.width();if(!c.height)c.height=d[0].style.height||d.height();b("width",l(c.width,c.minWidth));b("height",l(c.height,c.minHeight));b("width",s(c.width));b("height",s(c.height));if(ec&&(!fc||A<534))c.designMode=!1;c.srcElement=d;c.initContent="";c.plugin={};c.isCreated=!1;c._handlers={};c._contextmenus=[];c._undoStack=[];c._redoStack=[];c._firstAddBookmark=!0;c.menu=c.contextmenu=null;c.dialogs=
[]}function Lb(a,b){function c(a){m(N,function(b,c){wa(c)&&c.call(a,KindEditor)});return a.create()}b=b||{};b.basePath=l(b.basePath,f.basePath);b.themesPath=l(b.themesPath,b.basePath+"themes/");b.langPath=l(b.langPath,b.basePath+"lang/");b.pluginsPath=l(b.pluginsPath,b.basePath+"plugins/");if(l(b.loadStyleMode,f.options.loadStyleMode)){var d=l(b.themeType,f.options.themeType);cb(b.themesPath+"default/default.css");cb(b.themesPath+d+"/"+d+".css")}if((d=f(a))&&d.length!==0){if(d.length>1)return d.each(function(){Lb(this,
b)}),_instances[0];b.srcElement=d[0];var e=new ua(b);_instances.push(e);if(O[e.langType])return c(e);bb(e.langPath+e.langType+".js?ver="+encodeURIComponent(f.DEBUG?Ga:Ha),function(){c(e)});return e}}function va(a,b){f(a).each(function(a,d){f.each(_instances,function(a,c){if(c&&c.srcElement[0]==d)return b.call(c,a),!1})})}if(!w.KindEditor){if(!w.console)w.console={};if(!console.log)console.log=function(){};var Ha="4.1.10 (2013-11-23)",p=navigator.userAgent.toLowerCase(),o=p.indexOf("msie")>-1&&p.indexOf("opera")==
-1,Yb=p.indexOf("msie")==-1&&p.indexOf("trident")>-1,Y=p.indexOf("gecko")>-1&&p.indexOf("khtml")==-1,X=p.indexOf("applewebkit")>-1,Pa=p.indexOf("opera")>-1,ec=p.indexOf("mobile")>-1,fc=/ipad|iphone|ipod/.test(p),P=document.compatMode!="CSS1Compat",H=!w.getSelection,A=(p=/(?:msie|firefox|webkit|opera)[\/:\s](\d+)/.exec(p))?p[1]:"0",Ga=(new Date).getTime(),R=Math.round,f={DEBUG:!1,VERSION:Ha,IE:o,GECKO:Y,WEBKIT:X,OPERA:Pa,V:A,TIME:Ga,each:m,isArray:Z,isFunction:wa,inArray:J,inString:xa,trim:B,addUnit:s,
removeUnit:t,escape:C,unescape:fa,toCamel:ga,toHex:ya,toMap:u,toArray:Ja,undef:l,invalidUrl:function(a){return!a||/[<>"]/.test(a)},addParam:function(a,b){return a.indexOf("?")>=0?a+"&"+b:a+"?"+b},extend:E,json:eb},lb=u("a,abbr,acronym,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,img,input,ins,kbd,map,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"),mb=u("address,applet,blockquote,body,center,dd,dir,div,dl,dt,fieldset,form,frameset,h1,h2,h3,h4,h5,h6,head,hr,html,iframe,ins,isindex,li,map,menu,meta,noframes,noscript,object,ol,p,pre,script,style,table,tbody,td,tfoot,th,thead,title,tr,ul"),
kb=u("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed"),Mb=u("b,basefont,big,del,em,font,i,s,small,span,strike,strong,sub,sup,u"),gc=u("img,table,input,textarea,button"),La=u("pre,style,script"),Ia=u("html,head,body,td,tr,table,ol,ul,li");u("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");var Ub=u("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),Nb=u("input,button,textarea,select");f.basePath=function(){for(var a=
document.getElementsByTagName("script"),b,c=0,d=a.length;c<d;c++)if(b=a[c].src||"",/kindeditor[\w\-\.]*\.js/.test(b))return b.substring(0,b.lastIndexOf("/")+1);return""}();f.options={designMode:!0,fullscreenMode:!1,filterMode:!0,wellFormatMode:!0,shadowMode:!0,loadStyleMode:!0,basePath:f.basePath,themesPath:f.basePath+"themes/",langPath:f.basePath+"lang/",pluginsPath:f.basePath+"plugins/",themeType:"default",langType:"zh_CN",urlType:"",newlineTag:"p",resizeType:2,syncType:"form",pasteType:2,dialogAlignType:"page",
useContextmenu:!0,fullscreenShortcut:!1,bodyClass:"ke-content",indentChar:"\t",cssPath:"",cssData:"",minWidth:650,minHeight:100,minChangeSize:50,zIndex:811213,items:["source","|","undo","redo","|","preview","print","template","code","cut","copy","paste","plainpaste","wordpaste","|","justifyleft","justifycenter","justifyright","justifyfull","insertorderedlist","insertunorderedlist","indent","outdent","subscript","superscript","clearhtml","quickformat","selectall","|","fullscreen","/","formatblock",
"fontname","fontsize","|","forecolor","hilitecolor","bold","italic","underline","strikethrough","lineheight","removeformat","|","image","multiimage","flash","media","insertfile","table","hr","emoticons","baidumap","pagebreak","anchor","link","unlink","|","about"],noDisableItems:["source","fullscreen"],colorTable:[["#E53333","#E56600","#FF9900","#64451D","#DFC5A4","#FFE500"],["#009900","#006600","#99BB00","#B8D100","#60D978","#00D5FF"],["#337FE5","#003399","#4C33E5","#9933E5","#CC33E5","#EE33EE"],
["#FFFFFF","#CCCCCC","#999999","#666666","#333333","#000000"]],fontSizeTable:["9px","10px","12px","14px","16px","18px","24px","32px"],htmlTags:{font:["id","class","color","size","face",".background-color"],span:["id","class",".color",".background-color",".font-size",".font-family",".background",".font-weight",".font-style",".text-decoration",".vertical-align",".line-height"],div:["id","class","align",".border",".margin",".padding",".text-align",".color",".background-color",".font-size",".font-family",
".font-weight",".background",".font-style",".text-decoration",".vertical-align",".margin-left"],table:["id","class","border","cellspacing","cellpadding","width","height","align","bordercolor",".padding",".margin",".border","bgcolor",".text-align",".color",".background-color",".font-size",".font-family",".font-weight",".font-style",".text-decoration",".background",".width",".height",".border-collapse"],"td,th":["id","class","align","valign","width","height","colspan","rowspan","bgcolor",".text-align",
".color",".background-color",".font-size",".font-family",".font-weight",".font-style",".text-decoration",".vertical-align",".background",".border"],a:["id","class","href","target","name"],embed:["id","class","src","width","height","type","loop","autostart","quality",".width",".height","align","allowscriptaccess"],img:["id","class","src","width","height","border","alt","title","align",".width",".height",".border"],"p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6":["id","class","align",".text-align",".color",
".background-color",".font-size",".font-family",".background",".font-weight",".font-style",".text-decoration",".vertical-align",".text-indent",".margin-left"],pre:["id","class"],hr:["id","class",".page-break-after"],"br,tbody,tr,strong,b,sub,sup,em,i,u,strike,s,del":["id","class"],iframe:["id","class","src","frameborder","width","height",".width",".height"]},layout:'<div class="container"><div class="toolbar"></div><div class="edit"></div><div class="statusbar"></div></div>'};var fb=!1,Ob=u("8,9,13,32,46,48..57,59,61,65..90,106,109..111,188,190..192,219..222"),
p=u("33..40"),db={};m(Ob,function(a,b){db[a]=b});m(p,function(a,b){db[a]=b});var hc="altKey,attrChange,attrName,bubbles,button,cancelable,charCode,clientX,clientY,ctrlKey,currentTarget,data,detail,eventPhase,fromElement,handler,keyCode,metaKey,newValue,offsetX,offsetY,originalTarget,pageX,pageY,prevValue,relatedNode,relatedTarget,screenX,screenY,shiftKey,srcElement,target,toElement,view,wheelDelta,which".split(",");E(gb,{init:function(a,b){var c=this,d=a.ownerDocument||a.document||a;c.event=b;m(hc,
function(a,d){c[d]=b[d]});if(!c.target)c.target=c.srcElement||d;if(c.target.nodeType===3)c.target=c.target.parentNode;if(!c.relatedTarget&&c.fromElement)c.relatedTarget=c.fromElement===c.target?c.toElement:c.fromElement;if(c.pageX==null&&c.clientX!=null){var e=d.documentElement,d=d.body;c.pageX=c.clientX+(e&&e.scrollLeft||d&&d.scrollLeft||0)-(e&&e.clientLeft||d&&d.clientLeft||0);c.pageY=c.clientY+(e&&e.scrollTop||d&&d.scrollTop||0)-(e&&e.clientTop||d&&d.clientTop||0)}if(!c.which&&(c.charCode||c.charCode===
0?c.charCode:c.keyCode))c.which=c.charCode||c.keyCode;if(!c.metaKey&&c.ctrlKey)c.metaKey=c.ctrlKey;if(!c.which&&c.button!==i)c.which=c.button&1?1:c.button&2?3:c.button&4?2:0;switch(c.which){case 186:c.which=59;break;case 187:case 107:case 43:c.which=61;break;case 189:case 45:c.which=109;break;case 42:c.which=106;break;case 47:c.which=111;break;case 78:c.which=110}c.which>=96&&c.which<=105&&(c.which-=48)},preventDefault:function(){var a=this.event;a.preventDefault?a.preventDefault():a.returnValue=
!1},stopPropagation:function(){var a=this.event;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},stop:function(){this.preventDefault();this.stopPropagation()}});var $="kindeditor_"+Ga,ib=0,v={},Pb=!1;o&&w.attachEvent("onunload",function(){m(v,function(a,b){b.el&&ha(b.el)})});f.ctrl=Ka;f.ready=function(a){function b(){e||(e=!0,a(KindEditor),Pb=!0)}function c(){if(!e){try{document.documentElement.doScroll("left")}catch(a){setTimeout(c,100);return}b()}}function d(){document.readyState==="complete"&&
b()}if(Pb)a(KindEditor);else{var e=!1;if(document.addEventListener)aa(document,"DOMContentLoaded",b);else if(document.attachEvent){aa(document,"readystatechange",d);var g=!1;try{g=w.frameElement==null}catch(f){}document.documentElement.doScroll&&g&&c()}aa(w,"load",b)}};f.formatUrl=ia;f.formatHtml=U;f.getCssList=ba;f.getAttrList=I;f.mediaType=ob;f.mediaAttrs=pb;f.mediaEmbed=Ma;f.mediaImg=qb;f.clearMsWord=nb;f.tmpl=function(a,b){var c=new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+
a.replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');");return b?c(b):c};p=document.createElement("div");p.setAttribute("className","t");var Vb=p.className!=="t";f.query=function(a,b){var c=Ca(a,b);return c.length>0?c[0]:null};f.queryAll=Ca;E(D,{init:function(a){for(var a=Z(a)?a:[a],b=0,c=0,d=a.length;c<d;c++)a[c]&&(this[c]=a[c].constructor===
D?a[c][0]:a[c],b++);this.length=b;this.doc=V(this[0]);this.name=Oa(this[0]);this.type=this.length>0?this[0].nodeType:null;this.win=W(this[0])},each:function(a){for(var b=0;b<this.length;b++)if(a.call(this[b],b,this[b])===!1)break;return this},bind:function(a,b){this.each(function(){aa(this,a,b)});return this},unbind:function(a,b){this.each(function(){ha(this,a,b)});return this},fire:function(a){if(this.length<1)return this;jb(this[0],a);return this},hasAttr:function(a){if(this.length<1)return!1;return!!Ba(this[0],
a)},attr:function(a,b){var c=this;if(a===i)return I(c.outer());if(typeof a==="object")return m(a,function(a,b){c.attr(a,b)}),c;if(b===i)return b=c.length<1?null:Ba(c[0],a),b===null?"":b;c.each(function(){Na(this,a,b)});return c},removeAttr:function(a){this.each(function(){var b=a;o&&A<8&&b.toLowerCase()=="class"&&(b="className");Na(this,b,"");this.removeAttribute(b)});return this},get:function(a){if(this.length<1)return null;return this[a||0]},eq:function(a){if(this.length<1)return null;return this[a]?
new D(this[a]):null},hasClass:function(a){if(this.length<1)return!1;return xa(a,this[0].className," ")},addClass:function(a){this.each(function(){if(!xa(a,this.className," "))this.className=B(this.className+" "+a)});return this},removeClass:function(a){this.each(function(){if(xa(a,this.className," "))this.className=B(this.className.replace(RegExp("(^|\\s)"+a+"(\\s|$)")," "))});return this},html:function(a){if(a===i){if(this.length<1||this.type!=1)return"";return U(this[0].innerHTML)}this.each(function(){Wb(this,
a)});return this},text:function(){if(this.length<1)return"";return o?this[0].innerText:this[0].textContent},hasVal:function(){if(this.length<1)return!1;return!!Nb[Oa(this[0])]},val:function(a){if(a===i){if(this.length<1)return"";return this.hasVal()?this[0].value:this.attr("value")}else return this.each(function(){Nb[Oa(this)]?this.value=a:Na(this,"value",a)}),this},css:function(a,b){var c=this;if(a===i)return ba(c.attr("style"));if(typeof a==="object")return m(a,function(a,b){c.css(a,b)}),c;if(b===
i){if(c.length<1)return"";return c[0].style[ga(a)]||Xb(c[0],a)||""}c.each(function(){this.style[ga(a)]=b});return c},width:function(a){if(a===i){if(this.length<1)return 0;return this[0].offsetWidth}return this.css("width",s(a))},height:function(a){if(a===i){if(this.length<1)return 0;return this[0].offsetHeight}return this.css("height",s(a))},opacity:function(a){this.each(function(){this.style.opacity===i?this.style.filter=a==1?"":"alpha(opacity="+a*100+")":this.style.opacity=a==1?"":a});return this},
data:function(a,b){a="kindeditor_data_"+a;if(b===i){if(this.length<1)return null;return this[0][a]}this.each(function(){this[a]=b});return this},pos:function(){var a=this[0],b=0,c=0;if(a)if(a.getBoundingClientRect)a=a.getBoundingClientRect(),c=ca(this.doc),b=a.left+c.x,c=a.top+c.y;else for(;a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return{x:R(b),y:R(c)}},clone:function(a){if(this.length<1)return new D([]);return new D(this[0].cloneNode(a))},append:function(a){this.each(function(){this.appendChild&&
this.appendChild(f(a)[0])});return this},appendTo:function(a){this.each(function(){f(a)[0].appendChild(this)});return this},before:function(a){this.each(function(){this.parentNode.insertBefore(f(a)[0],this)});return this},after:function(a){this.each(function(){this.nextSibling?this.parentNode.insertBefore(f(a)[0],this.nextSibling):this.parentNode.appendChild(f(a)[0])});return this},replaceWith:function(a){var b=[];this.each(function(c,d){ha(d);var e=f(a)[0];d.parentNode.replaceChild(e,d);b.push(e)});
return f(b)},empty:function(){this.each(function(a,b){for(var c=b.firstChild;c;){if(!b.parentNode)break;var d=c.nextSibling;c.parentNode.removeChild(c);c=d}});return this},remove:function(a){var b=this;b.each(function(c,d){if(d.parentNode){ha(d);if(a)for(var e=d.firstChild;e;){var g=e.nextSibling;d.parentNode.insertBefore(e,d);e=g}d.parentNode.removeChild(d);delete b[c]}});b.length=0;return b},show:function(a){a===i&&(a=this._originDisplay||"");if(this.css("display")!="none")return this;return this.css("display",
a)},hide:function(){if(this.length<1)return this;this._originDisplay=this[0].style.display;return this.css("display","none")},outer:function(){if(this.length<1)return"";var a=this.doc.createElement("div");a.appendChild(this[0].cloneNode(!0));return U(a.innerHTML)},isSingle:function(){return!!kb[this.name]},isInline:function(){return!!lb[this.name]},isBlock:function(){return!!mb[this.name]},isStyle:function(){return!!Mb[this.name]},isControl:function(){return!!gc[this.name]},contains:function(a){if(this.length<
1)return!1;return Aa(this[0],f(a)[0])},parent:function(){if(this.length<1)return null;var a=this[0].parentNode;return a?new D(a):null},children:function(){if(this.length<1)return new D([]);for(var a=[],b=this[0].firstChild;b;)(b.nodeType!=3||B(b.nodeValue)!=="")&&a.push(b),b=b.nextSibling;return new D(a)},first:function(){var a=this.children();return a.length>0?a.eq(0):null},last:function(){var a=this.children();return a.length>0?a.eq(a.length-1):null},index:function(){if(this.length<1)return-1;for(var a=
-1,b=this[0];b;)a++,b=b.previousSibling;return a},prev:function(){if(this.length<1)return null;var a=this[0].previousSibling;return a?new D(a):null},next:function(){if(this.length<1)return null;var a=this[0].nextSibling;return a?new D(a):null},scan:function(a,b){function c(d){for(d=b?d.firstChild:d.lastChild;d;){var e=b?d.nextSibling:d.previousSibling;if(a(d)===!1)return!1;if(c(d)===!1)return!1;d=e}}if(!(this.length<1))return b=b===i?!0:b,c(this[0]),this}});m("blur,focus,focusin,focusout,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error,contextmenu".split(","),
function(a,b){D.prototype[b]=function(a){return a?this.bind(b,a):this.fire(b)}});p=f;f=function(a,b){function c(a){a[0]||(a=[]);return new D(a)}if(!(a===i||a===null)){if(typeof a==="string"){b&&(b=f(b)[0]);var d=a.length;a.charAt(0)==="@"&&(a=a.substr(1));if(a.length!==d||/<.+>/.test(a)){var d=(b?b.ownerDocument||b:document).createElement("div"),e=[];d.innerHTML='<img id="__kindeditor_temp_tag__" width="0" height="0" style="display:none;" />'+a;for(var g=0,h=d.childNodes.length;g<h;g++){var j=d.childNodes[g];
j.id!="__kindeditor_temp_tag__"&&e.push(j)}return c(e)}return c(Ca(a,b))}if(a&&a.constructor===D)return a;a.toArray&&(a=a.toArray());if(Z(a))return c(a);return c(Ja(arguments))}};m(p,function(a,b){f[a]=b});f.NodeClass=D;w.KindEditor=f;var la=0,ka=1,da=2,ma=3,Qb=0;E(M,{init:function(a){this.startContainer=a;this.startOffset=0;this.endContainer=a;this.endOffset=0;this.collapsed=!0;this.doc=a},commonAncestor:function(){function a(a){for(var b=[];a;)b.push(a),a=a.parentNode;return b}for(var b=a(this.startContainer),
c=a(this.endContainer),d=0,e=b.length,g=c.length,f,j;++d;)if(f=b[e-d],j=c[g-d],!f||!j||f!==j)break;return b[e-d+1]},setStart:function(a,b){var c=this.doc;this.startContainer=a;this.startOffset=b;if(this.endContainer===c)this.endContainer=a,this.endOffset=b;return rb(this)},setEnd:function(a,b){var c=this.doc;this.endContainer=a;this.endOffset=b;if(this.startContainer===c)this.startContainer=a,this.startOffset=b;return rb(this)},setStartBefore:function(a){return this.setStart(a.parentNode||this.doc,
f(a).index())},setStartAfter:function(a){return this.setStart(a.parentNode||this.doc,f(a).index()+1)},setEndBefore:function(a){return this.setEnd(a.parentNode||this.doc,f(a).index())},setEndAfter:function(a){return this.setEnd(a.parentNode||this.doc,f(a).index()+1)},selectNode:function(a){return this.setStartBefore(a).setEndAfter(a)},selectNodeContents:function(a){var b=f(a);if(b.type==3||b.isSingle())return this.selectNode(a);b=b.children();if(b.length>0)return this.setStartBefore(b[0]).setEndAfter(b[b.length-
1]);return this.setStart(a,0).setEnd(a,0)},collapse:function(a){if(a)return this.setEnd(this.startContainer,this.startOffset);return this.setStart(this.endContainer,this.endOffset)},compareBoundaryPoints:function(a,b){var c=this.get(),d=b.get();if(H){var e={};e[la]="StartToStart";e[ka]="EndToStart";e[da]="EndToEnd";e[ma]="StartToEnd";c=c.compareEndPoints(e[a],d);if(c!==0)return c;var g,h,j,k;if(a===la||a===ma)g=this.startContainer,j=this.startOffset;if(a===ka||a===da)g=this.endContainer,j=this.endOffset;
if(a===la||a===ka)h=b.startContainer,k=b.startOffset;if(a===da||a===ma)h=b.endContainer,k=b.endOffset;if(g===h)return g=j-k,g>0?1:g<0?-1:0;for(c=h;c&&c.parentNode!==g;)c=c.parentNode;if(c)return f(c).index()>=j?-1:1;for(c=g;c&&c.parentNode!==h;)c=c.parentNode;if(c)return f(c).index()>=k?1:-1;if((c=f(h).next())&&c.contains(g))return 1;if((c=f(g).next())&&c.contains(h))return-1}else return c.compareBoundaryPoints(a,d)},cloneRange:function(){return(new M(this.doc)).setStart(this.startContainer,this.startOffset).setEnd(this.endContainer,
this.endOffset)},toString:function(){var a=this.get();return(H?a.text:a.toString()).replace(/\r\n|\n|\r/g,"")},cloneContents:function(){return Qa(this,!0,!1)},deleteContents:function(){return Qa(this,!1,!0)},extractContents:function(){return Qa(this,!0,!0)},insertNode:function(a){var b=this.startContainer,c=this.startOffset,d=this.endContainer,e=this.endOffset,g,f,j,k=1;if(a.nodeName.toLowerCase()==="#document-fragment")g=a.firstChild,f=a.lastChild,k=a.childNodes.length;b.nodeType==1?(j=b.childNodes[c])?
(b.insertBefore(a,j),b===d&&(e+=k)):b.appendChild(a):b.nodeType==3&&(c===0?(b.parentNode.insertBefore(a,b),b.parentNode===d&&(e+=k)):c>=b.nodeValue.length?b.nextSibling?b.parentNode.insertBefore(a,b.nextSibling):b.parentNode.appendChild(a):(j=c>0?b.splitText(c):b,b.parentNode.insertBefore(a,j),b===d&&(d=j,e-=c)));g?this.setStartBefore(g).setEndAfter(f):this.selectNode(a);if(this.compareBoundaryPoints(da,this.cloneRange().setEnd(d,e))>=1)return this;return this.setEnd(d,e)},surroundContents:function(a){a.appendChild(this.extractContents());
return this.insertNode(a).selectNode(a)},isControl:function(){var a=this.startContainer,b=this.startOffset,c=this.endContainer,d=this.endOffset;return a.nodeType==1&&a===c&&b+1===d&&f(a.childNodes[b]).isControl()},get:function(a){var b=this.doc;if(!H){b=b.createRange();try{b.setStart(this.startContainer,this.startOffset),b.setEnd(this.endContainer,this.endOffset)}catch(c){}return b}if(a&&this.isControl())return b=b.body.createControlRange(),b.addElement(this.startContainer.childNodes[this.startOffset]),
b;a=this.cloneRange().down();b=b.body.createTextRange();b.setEndPoint("StartToStart",tb(a.startContainer,a.startOffset));b.setEndPoint("EndToStart",tb(a.endContainer,a.endOffset));return b},html:function(){return f(this.cloneContents()).outer()},down:function(){function a(a,d,e){if(a.nodeType==1&&(a=f(a).children(),a.length!==0)){var g,h,j,k;d>0&&(g=a.eq(d-1));d<a.length&&(h=a.eq(d));if(g&&g.type==3)j=g[0],k=j.nodeValue.length;h&&h.type==3&&(j=h[0],k=0);j&&(e?b.setStart(j,k):b.setEnd(j,k))}}var b=
this;a(b.startContainer,b.startOffset,!0);a(b.endContainer,b.endOffset,!1);return b},up:function(){function a(a,d,e){a.nodeType==3&&(d===0?e?b.setStartBefore(a):b.setEndBefore(a):d==a.nodeValue.length&&(e?b.setStartAfter(a):b.setEndAfter(a)))}var b=this;a(b.startContainer,b.startOffset,!0);a(b.endContainer,b.endOffset,!1);return b},enlarge:function(a){function b(b,e,g){b=f(b);if(!(b.type==3||Ia[b.name]||!a&&b.isBlock()))if(e===0){for(;!b.prev();){e=b.parent();if(!e||Ia[e.name]||!a&&e.isBlock())break;
b=e}g?c.setStartBefore(b[0]):c.setEndBefore(b[0])}else if(e==b.children().length){for(;!b.next();){e=b.parent();if(!e||Ia[e.name]||!a&&e.isBlock())break;b=e}g?c.setStartAfter(b[0]):c.setEndAfter(b[0])}}var c=this;c.up();b(c.startContainer,c.startOffset,!0);b(c.endContainer,c.endOffset,!1);return c},shrink:function(){for(var a,b=this.collapsed;this.startContainer.nodeType==1&&(a=this.startContainer.childNodes[this.startOffset])&&a.nodeType==1&&!f(a).isSingle();)this.setStart(a,0);if(b)return this.collapse(b);
for(;this.endContainer.nodeType==1&&this.endOffset>0&&(a=this.endContainer.childNodes[this.endOffset-1])&&a.nodeType==1&&!f(a).isSingle();)this.setEnd(a,a.childNodes.length);return this},createBookmark:function(a){var b,c=f('<span style="display:none;"></span>',this.doc)[0];c.id="__kindeditor_bookmark_start_"+Qb++ +"__";if(!this.collapsed)b=c.cloneNode(!0),b.id="__kindeditor_bookmark_end_"+Qb++ +"__";b&&this.cloneRange().collapse(!1).insertNode(b).setEndBefore(b);this.insertNode(c).setStartAfter(c);
return{start:a?"#"+c.id:c,end:b?a?"#"+b.id:b:null}},moveToBookmark:function(a){var b=this.doc,c=f(a.start,b),a=a.end?f(a.end,b):null;if(!c||c.length<1)return this;this.setStartBefore(c[0]);c.remove();a&&a.length>0?(this.setEndBefore(a[0]),a.remove()):this.collapse(!0);return this},dump:function(){console.log("--------------------");console.log(this.startContainer.nodeType==3?this.startContainer.nodeValue:this.startContainer,this.startOffset);console.log(this.endContainer.nodeType==3?this.endContainer.nodeValue:
this.endContainer,this.endOffset)}});f.RangeClass=M;f.range=Ra;f.START_TO_START=la;f.START_TO_END=ka;f.END_TO_END=da;f.END_TO_START=ma;E(oa,{init:function(a){var b=a.doc;this.doc=b;this.win=W(b);this.sel=Sa(b);this.range=a},selection:function(a){var b=this.doc,c;c=Sa(b);var d;try{d=c.rangeCount>0?c.getRangeAt(0):c.createRange()}catch(e){}c=H&&(!d||!d.item&&d.parentElement().ownerDocument!==b)?null:d;this.sel=Sa(b);if(c)return this.range=Ra(c),f(this.range.startContainer).name=="html"&&this.range.selectNodeContents(b.body).collapse(!1),
this;a&&this.range.selectNodeContents(b.body).collapse(!1);return this},select:function(a){var a=l(a,!0),b=this.sel,c=this.range.cloneRange().shrink(),d=c.startContainer,e=c.startOffset,g=V(d),h=this.win,j,k=!1;if(a&&d.nodeType==1&&c.collapsed){if(H){b=f("<span>&nbsp;</span>",g);c.insertNode(b[0]);j=g.body.createTextRange();try{j.moveToElementText(b[0])}catch(n){}j.collapse(!1);j.select();b.remove();h.focus();return this}if(X&&(a=d.childNodes,f(d).isInline()||e>0&&f(a[e-1]).isInline()||a[e]&&f(a[e]).isInline()))c.insertNode(g.createTextNode("\u200b")),
k=!0}if(H)try{j=c.get(!0),j.select()}catch(i){}else k&&c.collapse(!1),j=c.get(!0),b.removeAllRanges(),b.addRange(j),g!==document&&(c=f(j.endContainer).pos(),h.scrollTo(c.x,c.y));h.focus();return this},wrap:function(a){var b=this.range,c;c=f(a,this.doc);if(b.collapsed)return b.shrink(),b.insertNode(c[0]).selectNodeContents(c[0]),this;if(c.isBlock()){for(var d=a=c.clone(!0);d.first();)d=d.first();d.append(b.extractContents());b.insertNode(a[0]).selectNode(a[0]);return this}b.enlarge();var e=b.createBookmark(),
a=b.commonAncestor(),g=!1;f(a).scan(function(a){if(!g&&a==e.start)g=!0;else if(g){if(a==e.end)return!1;var b=f(a),d;a:{for(d=b;d&&d.name!="body";){if(La[d.name]||d.name=="div"&&d.hasClass("ke-script")){d=!0;break a}d=d.parent()}d=!1}if(!d&&b.type==3&&B(a.nodeValue).length>0){for(var n;(n=b.parent())&&n.isStyle()&&n.children().length==1;)b=n;n=c;n=n.clone(!0);if(b.type==3)Va(n).append(b.clone(!1)),b.replaceWith(n);else{for(var a=b,i;(i=b.first())&&i.children().length==1;)b=i;i=b.first();for(b=b.doc.createDocumentFragment();i;)b.appendChild(i[0]),
i=i.next();i=a.clone(!0);d=Va(i);for(var r=i,l=!1;n;){for(;r;)r.name===n.name&&(Zb(r,n.attr(),n.css()),l=!0),r=r.first();l||d.append(n.clone(!1));l=!1;n=n.first()}n=i;b.firstChild&&Va(n).append(b);a.replaceWith(n)}}}});b.moveToBookmark(e);return this},split:function(a,b){for(var c=this.range,d=c.doc,e=c.cloneRange().collapse(a),g=e.startContainer,h=e.startOffset,j=g.nodeType==3?g.parentNode:g,k=!1,n;j&&j.parentNode;){n=f(j);if(b){if(!n.isStyle())break;if(!Ta(n,b))break}else if(Ia[n.name])break;k=
!0;j=j.parentNode}if(k)d=d.createElement("span"),c.cloneRange().collapse(!a).insertNode(d),a?e.setStartBefore(j.firstChild).setEnd(g,h):e.setStart(g,h).setEndAfter(j.lastChild),g=e.extractContents(),h=g.firstChild,k=g.lastChild,a?(e.insertNode(g),c.setStartAfter(k).setEndBefore(d)):(j.appendChild(g),c.setStartBefore(d).setEndBefore(h)),e=d.parentNode,e==c.endContainer&&(j=f(d).prev(),g=f(d).next(),j&&g&&j.type==3&&g.type==3?c.setEnd(j[0],j[0].nodeValue.length):a||c.setEnd(c.endContainer,c.endOffset-
1)),e.removeChild(d);return this},remove:function(a){var b=this.doc,c=this.range;c.enlarge();if(c.startOffset===0){for(var d=f(c.startContainer),e;(e=d.parent())&&e.isStyle()&&e.children().length==1;)d=e;c.setStart(d[0],0);d=f(c.startContainer);d.isBlock()&&Ua(d,a);(d=d.parent())&&d.isBlock()&&Ua(d,a)}if(c.collapsed){this.split(!0,a);b=c.startContainer;d=c.startOffset;if(d>0&&(e=f(b.childNodes[d-1]))&&ea(e))e.remove(),c.setStart(b,d-1);(d=f(b.childNodes[d]))&&ea(d)&&d.remove();ea(b)&&(c.startBefore(b),
b.remove());c.collapse(!0);return this}this.split(!0,a);this.split(!1,a);var g=b.createElement("span"),h=b.createElement("span");c.cloneRange().collapse(!1).insertNode(h);c.cloneRange().collapse(!0).insertNode(g);var j=[],k=!1;f(c.commonAncestor()).scan(function(a){if(!k&&a==g)k=!0;else{if(a==h)return!1;k&&j.push(a)}});f(g).remove();f(h).remove();b=c.startContainer;d=c.startOffset;e=c.endContainer;var n=c.endOffset;if(d>0){var i=f(b.childNodes[d-1]);i&&ea(i)&&(i.remove(),c.setStart(b,d-1),b==e&&c.setEnd(e,
n-1));if((d=f(b.childNodes[d]))&&ea(d))d.remove(),b==e&&c.setEnd(e,n-1)}(b=f(e.childNodes[c.endOffset]))&&ea(b)&&b.remove();b=c.createBookmark(!0);m(j,function(b,c){Ua(f(c),a)});c.moveToBookmark(b);return this},commonNode:function(a){function b(b){for(var c=b;b;){if(Ta(f(b),a))return f(b);b=b.parentNode}for(;c&&(c=c.lastChild);)if(Ta(f(c),a))return f(c);return null}var c=this.range,d=c.endContainer,c=c.endOffset,e=d.nodeType==3||c===0?d:d.childNodes[c-1],g=b(e);if(g)return g;if(e.nodeType==1||d.nodeType==
3&&c===0)if(d=f(e).prev())return b(d);return null},commonAncestor:function(a){function b(b){for(;b;){if(b.nodeType==1&&b.tagName.toLowerCase()===a)return b;b=b.parentNode}return null}var c=this.range,d=c.startContainer,e=c.startOffset,g=c.endContainer,c=c.endOffset,g=g.nodeType==3||c===0?g:g.childNodes[c-1],d=b(d.nodeType==3||e===0?d:d.childNodes[e-1]),e=b(g);if(d&&e&&d===e)return f(d);return null},state:function(a){var b=this.doc,c=!1;try{c=b.queryCommandState(a)}catch(d){}return c},val:function(a){var b=
this.doc,a=a.toLowerCase(),c="";if(a==="fontfamily"||a==="fontname")return c=vb(b,"fontname"),c=c.replace(/['"]/g,""),c.toLowerCase();if(a==="formatblock"){c=vb(b,a);if(c===""&&(a=this.commonNode({"h1,h2,h3,h4,h5,h6,p,div,pre,address":"*"})))c=a.name;c==="Normal"&&(c="p");return c.toLowerCase()}if(a==="fontsize")return(a=this.commonNode({"*":".font-size"}))&&(c=a.css("font-size")),c.toLowerCase();if(a==="forecolor")return(a=this.commonNode({"*":".color"}))&&(c=a.css("color")),c=ya(c),c===""&&(c="default"),
c.toLowerCase();if(a==="hilitecolor")return(a=this.commonNode({"*":".background-color"}))&&(c=a.css("background-color")),c=ya(c),c===""&&(c="default"),c.toLowerCase();return c},toggle:function(a,b){this.commonNode(b)?this.remove(b):this.wrap(a);return this.select()},bold:function(){return this.toggle("<strong></strong>",{span:".font-weight=bold",strong:"*",b:"*"})},italic:function(){return this.toggle("<em></em>",{span:".font-style=italic",em:"*",i:"*"})},underline:function(){return this.toggle("<u></u>",
{span:".text-decoration=underline",u:"*"})},strikethrough:function(){return this.toggle("<s></s>",{span:".text-decoration=line-through",s:"*"})},forecolor:function(a){return this.wrap('<span style="color:'+a+';"></span>').select()},hilitecolor:function(a){return this.wrap('<span style="background-color:'+a+';"></span>').select()},fontsize:function(a){return this.wrap('<span style="font-size:'+a+';"></span>').select()},fontname:function(a){return this.fontfamily(a)},fontfamily:function(a){return this.wrap('<span style="font-family:'+
a+';"></span>').select()},removeformat:function(){var a={"*":".font-weight,.font-style,.text-decoration,.color,.background-color,.font-size,.font-family,.text-indent"};m(Mb,function(b){a[b]="*"});this.remove(a);return this.select()},inserthtml:function(a,b){function c(a,b){var b='<img id="__kindeditor_temp_tag__" width="0" height="0" style="display:none;" />'+b,c=a.get();c.item?c.item(0).outerHTML=b:c.pasteHTML(b);var d=a.doc.getElementById("__kindeditor_temp_tag__");d.parentNode.removeChild(d);c=
ub(c);a.setEnd(c.endContainer,c.endOffset);a.collapse(!1);e.select(!1)}function d(a,b){var c=a.doc,d=c.createDocumentFragment();f("@"+b,c).each(function(){d.appendChild(this)});a.deleteContents();a.insertNode(d);a.collapse(!1);e.select(!1)}var e=this,g=e.range;if(a==="")return e;if(H&&b){try{c(g,a)}catch(h){d(g,a)}return e}d(g,a);return e},hr:function(){return this.inserthtml("<hr />")},print:function(){this.win.print();return this},insertimage:function(a,b,c,d,e,g){b=l(b,"");l(e,0);a='<img src="'+
C(a)+'" data-ke-src="'+C(a)+'" ';c&&(a+='width="'+C(c)+'" ');d&&(a+='height="'+C(d)+'" ');b&&(a+='title="'+C(b)+'" ');g&&(a+='align="'+C(g)+'" ');a+='alt="'+C(b)+'" ';a+="/>";return this.inserthtml(a)},createlink:function(a,b){function c(a,b,c){f(a).attr("href",b).attr("data-ke-src",b);c?f(a).attr("target",c):f(a).removeAttr("target")}var d=this.doc,e=this.range;this.select();var g=this.commonNode({a:"*"});g&&!e.isControl()&&(e.selectNode(g.get()),this.select());g='<a href="'+C(a)+'" data-ke-src="'+
C(a)+'" ';b&&(g+=' target="'+C(b)+'"');if(e.collapsed)return g+=">"+C(a)+"</a>",this.inserthtml(g);if(e.isControl()){var h=f(e.startContainer.childNodes[e.startOffset]);g+="></a>";h.after(f(g,d));h.next().append(h);e.selectNode(h[0]);return this.select()}var g=e.startContainer,h=e.startOffset,j=e.endContainer,e=e.endOffset;if(g.nodeType==1&&g===j&&h+1===e&&(e=g.childNodes[h],e.nodeName.toLowerCase()=="a"))return c(e,a,b),this;Q(d,"createlink","__kindeditor_temp_url__");f('a[href="__kindeditor_temp_url__"]',
d).each(function(){c(this,a,b)});return this},unlink:function(){var a=this.doc,b=this.range;this.select();if(b.collapsed){var c=this.commonNode({a:"*"});c&&(b.selectNode(c.get()),this.select());Q(a,"unlink",null);X&&f(b.startContainer).name==="img"&&(a=f(b.startContainer).parent(),a.name==="a"&&a.remove(!0))}else Q(a,"unlink",null);return this}});m("formatblock,selectall,justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,insertunorderedlist,indent,outdent,subscript,superscript".split(","),
function(a,b){oa.prototype[b]=function(a){this.select();Q(this.doc,b,a);H&&J(b,"justifyleft,justifycenter,justifyright,justifyfull".split(","))>=0&&this.selection();(!H||J(b,"formatblock,selectall,insertorderedlist,insertunorderedlist".split(","))>=0)&&this.selection();return this}});m("cut,copy,paste".split(","),function(a,b){oa.prototype[b]=function(){if(!this.doc.queryCommandSupported(b))throw"not supported";this.select();Q(this.doc,b,null);return this}});f.CmdClass=oa;f.cmd=zb;E(S,{init:function(a){var b=
this;b.name=a.name||"";b.doc=a.doc||document;b.win=W(b.doc);b.x=s(a.x);b.y=s(a.y);b.z=a.z;b.width=s(a.width);b.height=s(a.height);b.div=f('<div style="display:block;"></div>');b.options=a;b._alignEl=a.alignEl;b.width&&b.div.css("width",b.width);b.height&&b.div.css("height",b.height);b.z&&b.div.css({position:"absolute",left:b.x,top:b.y,"z-index":b.z});b.z&&(b.x===i||b.y===i)&&b.autoPos(b.width,b.height);a.cls&&b.div.addClass(a.cls);a.shadowMode&&b.div.addClass("ke-shadow");a.css&&b.div.css(a.css);
a.src?f(a.src).replaceWith(b.div):f(b.doc.body).append(b.div);a.html&&b.div.html(a.html);if(a.autoScroll)if(o&&A<7||P){var c=ca();f(b.win).bind("scroll",function(){var a=ca(),e=a.x-c.x,a=a.y-c.y;b.pos(t(b.x)+e,t(b.y)+a,!1)})}else b.div.css("position","fixed")},pos:function(a,b,c){c=l(c,!0);if(a!==null&&(a=a<0?0:s(a),this.div.css("left",a),c))this.x=a;if(b!==null&&(b=b<0?0:s(b),this.div.css("top",b),c))this.y=b;return this},autoPos:function(a,b){var c=t(a)||0,d=t(b)||0,e=ca();if(this._alignEl){var g=
f(this._alignEl),h=g.pos(),c=R(g[0].clientWidth/2-c/2),d=R(g[0].clientHeight/2-d/2);x=c<0?h.x:h.x+c;y=d<0?h.y:h.y+d}else h=G(this.doc),x=R(e.x+(h.clientWidth-c)/2),y=R(e.y+(h.clientHeight-d)/2);o&&A<7||P||(x-=e.x,y-=e.y);return this.pos(x,y)},remove:function(){var a=this;(o&&A<7||P)&&f(a.win).unbind("scroll");a.div.remove();m(a,function(b){a[b]=null});return this},show:function(){this.div.show();return this},hide:function(){this.div.hide();return this},draggable:function(a){var b=this,a=a||{};a.moveEl=
b.div;a.moveFn=function(a,d,e,g,f,j){if((a+=f)<0)a=0;if((d+=j)<0)d=0;b.pos(a,d)};Wa(a);return b}});f.WidgetClass=S;f.widget=Ya;var Za="";if(p=document.getElementsByTagName("html"))Za=p[0].dir;E(qa,S,{init:function(a){function b(){var b=Xa(c.iframe);b.open();if(j)b.domain=document.domain;b.write($b(d,e,g,h));b.close();c.win=c.iframe[0].contentWindow;c.doc=b;var k=zb(b);c.afterChange(function(){k.selection()});X&&f(b).click(function(a){f(a.target).name==="img"&&(k.selection(!0),k.range.selectNode(a.target),
k.select())});if(o)c._mousedownHandler=function(){var a=k.range.cloneRange();a.shrink();a.isControl()&&c.blur()},f(document).mousedown(c._mousedownHandler),f(b).keydown(function(a){if(a.which==8){k.selection();var b=k.range;b.isControl()&&(b.collapse(!0),f(b.startContainer.childNodes[b.startOffset]).remove(),a.preventDefault())}});c.cmd=k;c.html(pa(c.srcElement));o?(b.body.disabled=!0,b.body.contentEditable=!0,b.body.removeAttribute("disabled")):b.designMode="on";a.afterCreate&&a.afterCreate.call(c)}
var c=this;qa.parent.init.call(c,a);c.srcElement=f(a.srcElement);c.div.addClass("ke-edit");c.designMode=l(a.designMode,!0);c.beforeGetHtml=a.beforeGetHtml;c.beforeSetHtml=a.beforeSetHtml;c.afterSetHtml=a.afterSetHtml;var d=l(a.themesPath,""),e=a.bodyClass,g=a.cssPath,h=a.cssData,j=location.protocol!="res:"&&location.host.replace(/:\d+/,"")!==document.domain,k="document.open();"+(j?'document.domain="'+document.domain+'";':"")+"document.close();",k=o?' src="javascript:void(function(){'+encodeURIComponent(k)+
'}())"':"";c.iframe=f('<iframe class="ke-edit-iframe" hidefocus="true" frameborder="0"'+k+"></iframe>").css("width","100%");c.textarea=f('<textarea class="ke-edit-textarea" hidefocus="true"></textarea>').css("width","100%");c.tabIndex=isNaN(parseInt(a.tabIndex,10))?c.srcElement.attr("tabindex"):parseInt(a.tabIndex,10);c.iframe.attr("tabindex",c.tabIndex);c.textarea.attr("tabindex",c.tabIndex);c.width&&c.setWidth(c.width);c.height&&c.setHeight(c.height);c.designMode?c.textarea.hide():c.iframe.hide();
j&&c.iframe.bind("load",function(){c.iframe.unbind("load");o?b():setTimeout(b,0)});c.div.append(c.iframe);c.div.append(c.textarea);c.srcElement.hide();!j&&b()},setWidth:function(a){this.width=a=s(a);this.div.css("width",a);return this},setHeight:function(a){this.height=a=s(a);this.div.css("height",a);this.iframe.css("height",a);if(o&&A<8||P)a=s(t(a)-2);this.textarea.css("height",a);return this},remove:function(){var a=this.doc;f(a.body).unbind();f(a).unbind();f(this.win).unbind();this._mousedownHandler&&
f(document).unbind("mousedown",this._mousedownHandler);pa(this.srcElement,this.html());this.srcElement.show();a.write("");this.iframe.unbind();this.textarea.unbind();qa.parent.remove.call(this)},html:function(a,b){var c=this.doc;if(this.designMode){c=c.body;if(a===i)return a=b?"<!doctype html><html>"+c.parentNode.innerHTML+"</html>":c.innerHTML,this.beforeGetHtml&&(a=this.beforeGetHtml(a)),Y&&a=="<br />"&&(a=""),a;this.beforeSetHtml&&(a=this.beforeSetHtml(a));o&&A>=9&&(a=a.replace(/(<.*?checked=")checked(".*>)/ig,
"$1$2"));f(c).html(a);this.afterSetHtml&&this.afterSetHtml();return this}if(a===i)return this.textarea.val();this.textarea.val(a);return this},design:function(a){if(a===i?!this.designMode:a){if(!this.designMode)a=this.html(),this.designMode=!0,this.html(a),this.textarea.hide(),this.iframe.show()}else if(this.designMode)a=this.html(),this.designMode=!1,this.html(a),this.iframe.hide(),this.textarea.show();return this.focus()},focus:function(){this.designMode?this.win.focus():this.textarea[0].focus();
return this},blur:function(){if(o){var a=f('<input type="text" style="float:left;width:0;height:0;padding:0;margin:0;border:0;" value="" />',this.div);this.div.append(a);a[0].focus();a.remove()}else this.designMode?this.win.blur():this.textarea[0].blur();return this},afterChange:function(a){function b(b){setTimeout(function(){a(b)},1)}var c=this.doc,d=c.body;f(c).keyup(function(b){!b.ctrlKey&&!b.altKey&&db[b.which]&&a(b)});f(c).mouseup(a).contextmenu(a);f(this.win).blur(a);f(d).bind("paste",b);f(d).bind("cut",
b);return this}});f.EditClass=qa;f.edit=Ab;f.iframeDoc=Xa;E(Da,S,{init:function(a){function b(a){a=f(a);if(a.hasClass("ke-outline"))return a;if(a.hasClass("ke-toolbar-icon"))return a.parent()}function c(a,c){var d=b(a.target);if(d&&!d.hasClass("ke-disabled")&&!d.hasClass("ke-selected"))d[c]("ke-on")}var d=this;Da.parent.init.call(d,a);d.disableMode=l(a.disableMode,!1);d.noDisableItemMap=u(l(a.noDisableItems,[]));d._itemMap={};d.div.addClass("ke-toolbar").bind("contextmenu,mousedown,mousemove",function(a){a.preventDefault()}).attr("unselectable",
"on");d.div.mouseover(function(a){c(a,"addClass")}).mouseout(function(a){c(a,"removeClass")}).click(function(a){var c=b(a.target);c&&!c.hasClass("ke-disabled")&&d.options.click.call(this,a,c.attr("data-name"))})},get:function(a){if(this._itemMap[a])return this._itemMap[a];return this._itemMap[a]=f("span.ke-icon-"+a,this.div).parent()},select:function(a){Bb.call(this,a,function(a){a.addClass("ke-selected")});return self},unselect:function(a){Bb.call(this,a,function(a){a.removeClass("ke-selected").removeClass("ke-on")});
return self},enable:function(a){if(a=a.get?a:this.get(a))a.removeClass("ke-disabled"),a.opacity(1);return this},disable:function(a){if(a=a.get?a:this.get(a))a.removeClass("ke-selected").addClass("ke-disabled"),a.opacity(0.5);return this},disableAll:function(a,b){var c=this,d=c.noDisableItemMap;b&&(d=u(b));(a===i?!c.disableMode:a)?(f("span.ke-outline",c.div).each(function(){var a=f(this),b=a[0].getAttribute("data-name",2);d[b]||c.disable(a)}),c.disableMode=!0):(f("span.ke-outline",c.div).each(function(){var a=
f(this),b=a[0].getAttribute("data-name",2);d[b]||c.enable(a)}),c.disableMode=!1);return c}});f.ToolbarClass=Da;f.toolbar=Cb;E(ra,S,{init:function(a){a.z=a.z||811213;ra.parent.init.call(this,a);this.centerLineMode=l(a.centerLineMode,!0);this.div.addClass("ke-menu").bind("click,mousedown",function(a){a.stopPropagation()}).attr("unselectable","on")},addItem:function(a){if(a.title==="-")this.div.append(f('<div class="ke-menu-separator"></div>'));else{var b=f('<div class="ke-menu-item" unselectable="on"></div>'),
c=f('<div class="ke-inline-block ke-menu-item-left"></div>'),d=f('<div class="ke-inline-block ke-menu-item-right"></div>'),e=s(a.height),g=l(a.iconClass,"");this.div.append(b);e&&(b.css("height",e),d.css("line-height",e));var h;this.centerLineMode&&(h=f('<div class="ke-inline-block ke-menu-item-center"></div>'),e&&h.css("height",e));b.mouseover(function(){f(this).addClass("ke-menu-item-on");h&&h.addClass("ke-menu-item-center-on")}).mouseout(function(){f(this).removeClass("ke-menu-item-on");h&&h.removeClass("ke-menu-item-center-on")}).click(function(b){a.click.call(f(this));
b.stopPropagation()}).append(c);h&&b.append(h);b.append(d);a.checked&&(g="ke-icon-checked");g!==""&&c.html('<span class="ke-inline-block ke-toolbar-icon ke-toolbar-icon-url '+g+'"></span>');d.html(a.title);return this}},remove:function(){this.options.beforeRemove&&this.options.beforeRemove.call(this);f(".ke-menu-item",this.div[0]).unbind();ra.parent.remove.call(this);return this}});f.MenuClass=ra;f.menu=$a;E(sa,S,{init:function(a){a.z=a.z||811213;sa.parent.init.call(this,a);var b=a.colors||[["#E53333",
"#E56600","#FF9900","#64451D","#DFC5A4","#FFE500"],["#009900","#006600","#99BB00","#B8D100","#60D978","#00D5FF"],["#337FE5","#003399","#4C33E5","#9933E5","#CC33E5","#EE33EE"],["#FFFFFF","#CCCCCC","#999999","#666666","#333333","#000000"]];this.selectedColor=(a.selectedColor||"").toLowerCase();this._cells=[];this.div.addClass("ke-colorpicker").bind("click,mousedown",function(a){a.stopPropagation()}).attr("unselectable","on");a=this.doc.createElement("table");this.div.append(a);a.className="ke-colorpicker-table";
a.cellPadding=0;a.cellSpacing=0;a.border=0;var c=a.insertRow(0),d=c.insertCell(0);d.colSpan=b[0].length;this._addAttr(d,"","ke-colorpicker-cell-top");for(var e=0;e<b.length;e++)for(var c=a.insertRow(e+1),g=0;g<b[e].length;g++)d=c.insertCell(g),this._addAttr(d,b[e][g],"ke-colorpicker-cell")},_addAttr:function(a,b,c){var d=this,a=f(a).addClass(c);d.selectedColor===b.toLowerCase()&&a.addClass("ke-colorpicker-cell-selected");a.attr("title",b||d.options.noColor);a.mouseover(function(){f(this).addClass("ke-colorpicker-cell-on")});
a.mouseout(function(){f(this).removeClass("ke-colorpicker-cell-on")});a.click(function(a){a.stop();d.options.click.call(f(this),b)});b?a.append(f('<div class="ke-colorpicker-cell-color" unselectable="on"></div>').css("background-color",b)):a.html(d.options.noColor);f(a).attr("unselectable","on");d._cells.push(a)},remove:function(){m(this._cells,function(){this.unbind()});sa.parent.remove.call(this);return this}});f.ColorPickerClass=sa;f.colorpicker=Db;E(ab,{init:function(a){var b=f(a.button),c=a.fieldName||
"file",d=a.url||"",e=b.val(),g=a.extraParams||{},h=b[0].className||"",j=a.target||"kindeditor_upload_iframe_"+(new Date).getTime();a.afterError=a.afterError||function(a){alert(a)};var k=[],i;for(i in g)k.push('<input type="hidden" name="'+i+'" value="'+g[i]+'" />');c=['<div class="ke-inline-block '+h+'">',a.target?"":'<iframe name="'+j+'" style="display:none;"></iframe>',a.form?'<div class="ke-upload-area">':'<form class="ke-upload-area ke-form" method="post" enctype="multipart/form-data" target="'+
j+'" action="'+d+'">','<span class="ke-button-common">',k.join(""),'<input type="button" class="ke-button-common ke-button" value="'+e+'" />',"</span>",'<input type="file" class="ke-upload-file" name="'+c+'" tabindex="-1" />',a.form?"</div>":"</form>","</div>"].join("");c=f(c,b.doc);b.hide();b.before(c);this.div=c;this.button=b;this.iframe=a.target?f('iframe[name="'+j+'"]'):f("iframe",c);this.form=a.form?f(a.form):f("form",c);this.fileBox=f(".ke-upload-file",c);b=a.width||f(".ke-button-common",c).width();
f(".ke-upload-area",c).width(b);this.options=a},submit:function(){var a=this,b=a.iframe;b.bind("load",function(){b.unbind();var c=document.createElement("form");a.fileBox.before(c);f(c).append(a.fileBox);c.reset();f(c).remove(!0);var c=f.iframeDoc(b),d=c.getElementsByTagName("pre")[0],e="",g,e=d?d.innerHTML:c.body.innerHTML,e=fa(e);b[0].src="javascript:false";try{g=f.json(e)}catch(h){a.options.afterError.call(a,"<!doctype html><html>"+c.body.parentNode.innerHTML+"</html>")}g&&a.options.afterUpload.call(a,
g)});a.form[0].submit();return a},remove:function(){this.fileBox&&this.fileBox.unbind();this.iframe.remove();this.div.remove();this.button.show();return this}});f.UploadButtonClass=ab;f.uploadbutton=function(a){return new ab(a)};E(ta,S,{init:function(a){var b=l(a.shadowMode,!0);a.z=a.z||811213;a.shadowMode=!1;a.autoScroll=l(a.autoScroll,!0);ta.parent.init.call(this,a);var c=a.title,d=f(a.body,this.doc),e=a.previewBtn,g=a.yesBtn,h=a.noBtn,j=a.closeBtn,k=l(a.showMask,!0);this.div.addClass("ke-dialog").bind("click,mousedown",
function(a){a.stopPropagation()});var i=f('<div class="ke-dialog-content"></div>').appendTo(this.div);o&&A<7?this.iframeMask=f('<iframe src="about:blank" class="ke-dialog-shadow"></iframe>').appendTo(this.div):b&&f('<div class="ke-dialog-shadow"></div>').appendTo(this.div);b=f('<div class="ke-dialog-header"></div>');i.append(b);b.html(c);this.closeIcon=f('<span class="ke-dialog-icon-close" title="'+j.name+'"></span>').click(j.click);b.append(this.closeIcon);this.draggable({clickEl:b,beforeDrag:a.beforeDrag});
a=f('<div class="ke-dialog-body"></div>');i.append(a);a.append(d);var q=f('<div class="ke-dialog-footer"></div>');(e||g||h)&&i.append(q);m([{btn:e,name:"preview"},{btn:g,name:"yes"},{btn:h,name:"no"}],function(){if(this.btn){var a=this.btn,a=a||{},b=a.name||"",c=f('<span class="ke-button-common ke-button-outer" title="'+b+'"></span>'),b=f('<input class="ke-button-common ke-button" type="button" value="'+b+'" />');a.click&&b.click(a.click);c.append(b);c.addClass("ke-dialog-"+this.name);q.append(c)}});
this.height&&a.height(t(this.height)-b.height()-q.height());this.div.width(this.div.width());this.div.height(this.div.height());this.mask=null;if(k)d=G(this.doc),this.mask=Ya({x:0,y:0,z:this.z-1,cls:"ke-dialog-mask",width:Math.max(d.scrollWidth,d.clientWidth),height:Math.max(d.scrollHeight,d.clientHeight)});this.autoPos(this.div.width(),this.div.height());this.footerDiv=q;this.bodyDiv=a;this.headerDiv=b;this.isLoading=!1},setMaskIndex:function(a){this.mask.div.css("z-index",a)},showLoading:function(a){var a=
l(a,""),b=this.bodyDiv;this.loading=f('<div class="ke-dialog-loading"><div class="ke-inline-block ke-dialog-loading-content" style="margin-top:'+Math.round(b.height()/3)+'px;">'+a+"</div></div>").width(b.width()).height(b.height()).css("top",this.headerDiv.height()+"px");b.css("visibility","hidden").after(this.loading);this.isLoading=!0;return this},hideLoading:function(){this.loading&&this.loading.remove();this.bodyDiv.css("visibility","visible");this.isLoading=!1;return this},remove:function(){this.options.beforeRemove&&
this.options.beforeRemove.call(this);this.mask&&this.mask.remove();this.iframeMask&&this.iframeMask.remove();this.closeIcon.unbind();f("input",this.div).unbind();f("button",this.div).unbind();this.footerDiv.unbind();this.bodyDiv.unbind();this.headerDiv.unbind();f("iframe",this.div).each(function(){f(this).remove()});ta.parent.remove.call(this);return this}});f.DialogClass=ta;f.dialog=Eb;f.tabs=function(a){var b=Ya(a),c=b.remove,d=a.afterSelect,a=b.div,e=[];a.addClass("ke-tabs").bind("contextmenu,mousedown,mousemove",
function(a){a.preventDefault()});var g=f('<ul class="ke-tabs-ul ke-clearfix"></ul>');a.append(g);b.add=function(a){var b=f('<li class="ke-tabs-li">'+a.title+"</li>");b.data("tab",a);e.push(b);g.append(b)};b.selectedIndex=0;b.select=function(a){b.selectedIndex=a;m(e,function(c,d){d.unbind();c===a?(d.addClass("ke-tabs-li-selected"),f(d.data("tab").panel).show("")):(d.removeClass("ke-tabs-li-selected").removeClass("ke-tabs-li-on").mouseover(function(){f(this).addClass("ke-tabs-li-on")}).mouseout(function(){f(this).removeClass("ke-tabs-li-on")}).click(function(){b.select(c)}),
f(d.data("tab").panel).hide())});d&&d.call(b,a)};b.remove=function(){m(e,function(){this.remove()});g.remove();c.call(b)};return b};f.loadScript=bb;f.loadStyle=cb;f.ajax=function(a,b,c,d,e){var c=c||"GET",e=e||"json",g=w.XMLHttpRequest?new w.XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");g.open(c,a,!0);g.onreadystatechange=function(){if(g.readyState==4&&g.status==200&&b){var a=B(g.responseText);e=="json"&&(a=eb(a));b(a)}};if(c=="POST"){var f=[];m(d,function(a,b){f.push(encodeURIComponent(a)+
"="+encodeURIComponent(b))});try{g.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}catch(j){}g.send(f.join("&"))}else g.send(null)};var N={},O={};ua.prototype={lang:function(a){return Ib(a,this.langType)},loadPlugin:function(a,b){var c=this;if(N[a]){if(!wa(N[a]))return setTimeout(function(){c.loadPlugin(a,b)},100),c;N[a].call(c,KindEditor);b&&b.call(c);return c}N[a]="loading";bb(c.pluginsPath+a+"/"+a+".js?ver="+encodeURIComponent(f.DEBUG?Ga:Ha),function(){setTimeout(function(){N[a]&&
c.loadPlugin(a,b)},0)});return c},handler:function(a,b){var c=this;c._handlers[a]||(c._handlers[a]=[]);if(wa(b))return c._handlers[a].push(b),c;m(c._handlers[a],function(){b=this.call(c,b)});return b},clickToolbar:function(a,b){var c=this,d="clickToolbar"+a;if(b===i){if(c._handlers[d])return c.handler(d);c.loadPlugin(a,function(){c.handler(d)});return c}return c.handler(d,b)},updateState:function(){var a=this;m("justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,insertunorderedlist,subscript,superscript,bold,italic,underline,strikethrough".split(","),
function(b,c){a.cmd.state(c)?a.toolbar.select(c):a.toolbar.unselect(c)});return a},addContextmenu:function(a){this._contextmenus.push(a);return this},afterCreate:function(a){return this.handler("afterCreate",a)},beforeRemove:function(a){return this.handler("beforeRemove",a)},beforeGetHtml:function(a){return this.handler("beforeGetHtml",a)},beforeSetHtml:function(a){return this.handler("beforeSetHtml",a)},afterSetHtml:function(a){return this.handler("afterSetHtml",a)},create:function(){function a(){k.height()===
0?setTimeout(a,100):b.resize(d,e,!1)}var b=this,c=b.fullscreenMode;if(b.isCreated)return b;if(b.srcElement.data("kindeditor"))return b;b.srcElement.data("kindeditor","true");c?G().style.overflow="hidden":G().style.overflow="";var d=c?G().clientWidth+"px":b.width,e=c?G().clientHeight+"px":b.height;if(o&&A<8||P)e=s(t(e)+2);var g=b.container=f(b.layout);c?f(document.body).append(g):b.srcElement.before(g);var h=f(".toolbar",g),j=f(".edit",g),k=b.statusbar=f(".statusbar",g);g.removeClass("container").addClass("ke-container ke-container-"+
b.themeType).css("width",d);if(c){g.css({position:"absolute",left:0,top:0,"z-index":811211});if(!Y)b._scrollPos=ca();w.scrollTo(0,0);f(document.body).css({height:"1px",overflow:"hidden"});f(document.body.parentNode).css("overflow","hidden");b._fullscreenExecuted=!0}else b._fullscreenExecuted&&(f(document.body).css({height:"",overflow:""}),f(document.body.parentNode).css("overflow","")),b._scrollPos&&w.scrollTo(b._scrollPos.x,b._scrollPos.y);var i=[];f.each(b.items,function(a,c){c=="|"?i.push('<span class="ke-inline-block ke-separator"></span>'):
c=="/"?i.push('<div class="ke-hr"></div>'):(i.push('<span class="ke-outline" data-name="'+c+'" title="'+b.lang(c)+'" unselectable="on">'),i.push('<span class="ke-toolbar-icon ke-toolbar-icon-url ke-icon-'+c+'" unselectable="on"></span></span>'))});var h=b.toolbar=Cb({src:h,html:i.join(""),noDisableItems:b.noDisableItems,click:function(a,c){a.stop();if(b.menu){var d=b.menu.name;b.hideMenu();if(d===c)return}b.clickToolbar(c)}}),l=t(e)-h.div.height(),m=b.edit=Ab({height:l>0&&t(e)>b.minHeight?l:b.minHeight,
src:j,srcElement:b.srcElement,designMode:b.designMode,themesPath:b.themesPath,bodyClass:b.bodyClass,cssPath:b.cssPath,cssData:b.cssData,beforeGetHtml:function(a){a=b.beforeGetHtml(a);a=T(Fa(a));return U(a,b.filterMode?b.htmlTags:null,b.urlType,b.wellFormatMode,b.indentChar)},beforeSetHtml:function(a){a=U(a,b.filterMode?b.htmlTags:null,"",!1);return b.beforeSetHtml(a)},afterSetHtml:function(){b.edit=m=this;b.afterSetHtml()},afterCreate:function(){b.edit=m=this;b.cmd=m.cmd;b._docMousedownFn=function(){b.menu&&
b.hideMenu()};f(m.doc,document).mousedown(b._docMousedownFn);ac.call(b);bc.call(b);cc.call(b);dc.call(b);m.afterChange(function(){m.designMode&&(b.updateState(),b.addBookmark(),b.options.afterChange&&b.options.afterChange.call(b))});m.textarea.keyup(function(a){!a.ctrlKey&&!a.altKey&&Ob[a.which]&&b.options.afterChange&&b.options.afterChange.call(b)});b.readonlyMode&&b.readonly();b.isCreated=!0;if(b.initContent==="")b.initContent=b.html();if(b._undoStack.length>0){var a=b._undoStack.pop();a.start&&
(b.html(a.html),m.cmd.range.moveToBookmark(a),b.select())}b.afterCreate();b.options.afterCreate&&b.options.afterCreate.call(b)}});k.removeClass("statusbar").addClass("ke-statusbar").append('<span class="ke-inline-block ke-statusbar-center-icon"></span>').append('<span class="ke-inline-block ke-statusbar-right-icon"></span>');if(b._fullscreenResizeHandler)f(w).unbind("resize",b._fullscreenResizeHandler),b._fullscreenResizeHandler=null;a();c?(b._fullscreenResizeHandler=function(){b.isCreated&&b.resize(G().clientWidth,
G().clientHeight,!1)},f(w).bind("resize",b._fullscreenResizeHandler),h.select("fullscreen"),k.first().css("visibility","hidden"),k.last().css("visibility","hidden")):(Y&&f(w).bind("scroll",function(){b._scrollPos=ca()}),b.resizeType>0?Wa({moveEl:g,clickEl:k,moveFn:function(a,c,d,e,g,f){e+=f;b.resize(null,e)}}):k.first().css("visibility","hidden"),b.resizeType===2?Wa({moveEl:g,clickEl:k.last(),moveFn:function(a,c,d,e,g,f){d+=g;e+=f;b.resize(d,e)}}):k.last().css("visibility","hidden"));return b},remove:function(){var a=
this;if(!a.isCreated)return a;a.beforeRemove();a.srcElement.data("kindeditor","");a.menu&&a.hideMenu();m(a.dialogs,function(){a.hideDialog()});f(document).unbind("mousedown",a._docMousedownFn);a.toolbar.remove();a.edit.remove();a.statusbar.last().unbind();a.statusbar.unbind();a.container.remove();a.container=a.toolbar=a.edit=a.menu=null;a.dialogs=[];a.isCreated=!1;return a},resize:function(a,b,c){c=l(c,!0);if(a&&(/%/.test(a)||(a=t(a),a=a<this.minWidth?this.minWidth:a),this.container.css("width",s(a)),
c))this.width=s(a);if(b&&(b=t(b),editHeight=t(b)-this.toolbar.div.height()-this.statusbar.height(),editHeight=editHeight<this.minHeight?this.minHeight:editHeight,this.edit.setHeight(editHeight),c))this.height=s(b);return this},select:function(){this.isCreated&&this.cmd.select();return this},html:function(a){if(a===i)return this.isCreated?this.edit.html():pa(this.srcElement);this.isCreated?this.edit.html(a):pa(this.srcElement,a);this.isCreated&&this.cmd.selection();return this},fullHtml:function(){return this.isCreated?
this.edit.html(i,!0):""},text:function(a){return a===i?B(this.html().replace(/<(?!img|embed).*?>/ig,"").replace(/&nbsp;/ig," ")):this.html(C(a))},isEmpty:function(){return B(this.text().replace(/\r\n|\n|\r/,""))===""},isDirty:function(){return B(this.initContent.replace(/\r\n|\n|\r|t/g,""))!==B(this.html().replace(/\r\n|\n|\r|t/g,""))},selectedHtml:function(){var a=this.isCreated?this.cmd.range.html():"";return a=T(Fa(a))},count:function(a){a=(a||"html").toLowerCase();if(a==="html")return this.html().length;
if(a==="text")return this.text().replace(/<(?:img|embed).*?>/ig,"K").replace(/\r\n|\n|\r/g,"").length;return 0},exec:function(a){var a=a.toLowerCase(),b=this.cmd,c=J(a,"selectall,copy,paste,print".split(","))<0;c&&this.addBookmark(!1);b[a].apply(b,Ja(arguments,1));c&&(this.updateState(),this.addBookmark(!1),this.options.afterChange&&this.options.afterChange.call(this));return this},insertHtml:function(a,b){if(!this.isCreated)return this;a=this.beforeSetHtml(a);this.exec("inserthtml",a,b);return this},
appendHtml:function(a){this.html(this.html()+a);if(this.isCreated)a=this.cmd,a.range.selectNodeContents(a.doc.body).collapse(!1),a.select();return this},sync:function(){pa(this.srcElement,this.html());return this},focus:function(){this.isCreated?this.edit.focus():this.srcElement[0].focus();return this},blur:function(){this.isCreated?this.edit.blur():this.srcElement[0].blur();return this},addBookmark:function(a){var a=l(a,!0),b=this.edit,c=b.doc.body,d=Fa(c.innerHTML);if(a&&this._undoStack.length>
0&&Math.abs(d.length-T(this._undoStack[this._undoStack.length-1].html).length)<this.minChangeSize)return this;b.designMode&&!this._firstAddBookmark?(b=this.cmd.range,a=b.createBookmark(!0),a.html=Fa(c.innerHTML),b.moveToBookmark(a)):a={html:d};this._firstAddBookmark=!1;Jb(this._undoStack,a);return this},undo:function(){return Kb.call(this,this._undoStack,this._redoStack)},redo:function(){return Kb.call(this,this._redoStack,this._undoStack)},fullscreen:function(a){this.fullscreenMode=a===i?!this.fullscreenMode:
a;this.addBookmark(!1);return this.remove().create()},readonly:function(a){var a=l(a,!0),b=this,c=b.edit,d=c.doc;b.designMode?b.toolbar.disableAll(a,[]):m(b.noDisableItems,function(){b.toolbar[a?"disable":"enable"](this)});o?d.body.contentEditable=!a:d.designMode=a?"off":"on";c.textarea[0].disabled=a},createMenu:function(a){var b=this.toolbar.get(a.name),c=b.pos();a.x=c.x;a.y=c.y+b.height();a.z=this.options.zIndex;a.shadowMode=l(a.shadowMode,this.shadowMode);a.selectedColor!==i?(a.cls="ke-colorpicker-"+
this.themeType,a.noColor=this.lang("noColor"),this.menu=Db(a)):(a.cls="ke-menu-"+this.themeType,a.centerLineMode=!1,this.menu=$a(a));return this.menu},hideMenu:function(){this.menu.remove();this.menu=null;return this},hideContextmenu:function(){this.contextmenu.remove();this.contextmenu=null;return this},createDialog:function(a){var b=this;a.z=b.options.zIndex;a.shadowMode=l(a.shadowMode,b.shadowMode);a.closeBtn=l(a.closeBtn,{name:b.lang("close"),click:function(){b.hideDialog();o&&b.cmd&&b.cmd.select()}});
a.noBtn=l(a.noBtn,{name:b.lang(a.yesBtn?"no":"close"),click:function(){b.hideDialog();o&&b.cmd&&b.cmd.select()}});if(b.dialogAlignType!="page")a.alignEl=b.container;a.cls="ke-dialog-"+b.themeType;if(b.dialogs.length>0){var c=b.dialogs[b.dialogs.length-1];b.dialogs[0].setMaskIndex(c.z+2);a.z=c.z+3;a.showMask=!1}a=Eb(a);b.dialogs.push(a);return a},hideDialog:function(){this.dialogs.length>0&&this.dialogs.pop().remove();this.dialogs.length>0&&this.dialogs[0].setMaskIndex(this.dialogs[this.dialogs.length-
1].z-1);return this},errorDialog:function(a){var b=this.createDialog({width:750,title:this.lang("uploadError"),body:'<div style="padding:10px 20px;"><iframe frameborder="0" style="width:708px;height:400px;"></iframe></div>'}),b=f("iframe",b.div),c=f.iframeDoc(b);c.open();c.write(a);c.close();f(c.body).css("background-color","#FFF");b[0].contentWindow.focus();return this}};_instances=[];f.remove=function(a){va(a,function(a){this.remove();_instances.splice(a,1)})};f.sync=function(a){va(a,function(){this.sync()})};
f.html=function(a,b){va(a,function(){this.html(b)})};f.insertHtml=function(a,b){va(a,function(){this.insertHtml(b)})};f.appendHtml=function(a,b){va(a,function(){this.appendHtml(b)})};o&&A<7&&Q(document,"BackgroundImageCache",!0);f.EditorClass=ua;f.editor=function(a){return new ua(a)};f.create=Lb;f.instances=_instances;f.plugin=Gb;f.lang=Ib;Gb("core",function(a){var b=this,c={undo:"Z",redo:"Y",bold:"B",italic:"I",underline:"U",print:"P",selectall:"A"};b.afterSetHtml(function(){b.options.afterChange&&
b.options.afterChange.call(b)});b.afterCreate(function(){if(b.syncType=="form"){for(var c=a(b.srcElement),d=!1;c=c.parent();)if(c.name=="form"){d=!0;break}if(d){c.bind("submit",function(){b.sync();a(w).bind("unload",function(){b.edit.textarea.remove()})});var f=a('[type="reset"]',c);f.click(function(){b.html(b.initContent);b.cmd.selection()});b.beforeRemove(function(){c.unbind();f.unbind()})}}});b.clickToolbar("source",function(){b.edit.designMode?(b.toolbar.disableAll(!0),b.edit.design(!1),b.toolbar.select("source")):
(b.toolbar.disableAll(!1),b.edit.design(!0),b.toolbar.unselect("source"),Y?setTimeout(function(){b.cmd.selection()},0):b.cmd.selection());b.designMode=b.edit.designMode});b.afterCreate(function(){b.designMode||b.toolbar.disableAll(!0).select("source")});b.clickToolbar("fullscreen",function(){b.fullscreen()});if(b.fullscreenShortcut){var d=!1;b.afterCreate(function(){a(b.edit.doc,b.edit.textarea).keyup(function(a){a.which==27&&setTimeout(function(){b.fullscreen()},0)});if(d){if(o&&!b.designMode)return;
b.focus()}d||(d=!0)})}m("undo,redo".split(","),function(a,d){c[d]&&b.afterCreate(function(){Ka(this.edit.doc,c[d],function(){b.clickToolbar(d)})});b.clickToolbar(d,function(){b[d]()})});b.clickToolbar("formatblock",function(){var a=b.lang("formatblock.formatBlock"),c={h1:28,h2:24,h3:18,H4:14,p:12},d=b.cmd.val("formatblock"),f=b.createMenu({name:"formatblock",width:b.langType=="en"?200:150});m(a,function(a,e){var i="font-size:"+c[a]+"px;";a.charAt(0)==="h"&&(i+="font-weight:bold;");f.addItem({title:'<span style="'+
i+'" unselectable="on">'+e+"</span>",height:c[a]+12,checked:d===a||d===e,click:function(){b.select().exec("formatblock","<"+a+">").hideMenu()}})})});b.clickToolbar("fontname",function(){var a=b.cmd.val("fontname"),c=b.createMenu({name:"fontname",width:150});m(b.lang("fontname.fontName"),function(d,f){c.addItem({title:'<span style="font-family: '+d+';" unselectable="on">'+f+"</span>",checked:a===d.toLowerCase()||a===f.toLowerCase(),click:function(){b.exec("fontname",d).hideMenu()}})})});b.clickToolbar("fontsize",
function(){var a=b.cmd.val("fontsize"),c=b.createMenu({name:"fontsize",width:150});m(b.fontSizeTable,function(d,f){c.addItem({title:'<span style="font-size:'+f+';" unselectable="on">'+f+"</span>",height:t(f)+12,checked:a===f,click:function(){b.exec("fontsize",f).hideMenu()}})})});m("forecolor,hilitecolor".split(","),function(a,c){b.clickToolbar(c,function(){b.createMenu({name:c,selectedColor:b.cmd.val(c)||"default",colors:b.colorTable,click:function(a){b.exec(c,a).hideMenu()}})})});m("cut,copy,paste".split(","),
function(a,c){b.clickToolbar(c,function(){b.focus();try{b.exec(c,null)}catch(a){alert(b.lang(c+"Error"))}})});b.clickToolbar("about",function(){var a='<div style="margin:20px;"><div>KindEditor '+Ha+'</div><div>Copyright &copy; <a href="http://www.kindsoft.net/" target="_blank">kindsoft.net</a> All rights reserved.</div></div>';b.createDialog({name:"about",width:350,title:b.lang("about"),body:a})});b.plugin.getSelectedLink=function(){return b.cmd.commonAncestor("a")};b.plugin.getSelectedImage=function(){return Ea(b.edit.cmd.range,
function(a){return!/^ke-\w+$/i.test(a[0].className)})};b.plugin.getSelectedFlash=function(){return Ea(b.edit.cmd.range,function(a){return a[0].className=="ke-flash"})};b.plugin.getSelectedMedia=function(){return Ea(b.edit.cmd.range,function(a){return a[0].className=="ke-media"||a[0].className=="ke-rm"})};b.plugin.getSelectedAnchor=function(){return Ea(b.edit.cmd.range,function(a){return a[0].className=="ke-anchor"})};m("link,image,flash,media,anchor".split(","),function(a,c){var d=c.charAt(0).toUpperCase()+
c.substr(1);m("edit,delete".split(","),function(a,e){b.addContextmenu({title:b.lang(e+d),click:function(){b.loadPlugin(c,function(){b.plugin[c][e]();b.hideMenu()})},cond:b.plugin["getSelected"+d],width:150,iconClass:e=="edit"?"ke-icon-"+c:i})});b.addContextmenu({title:"-"})});b.plugin.getSelectedTable=function(){return b.cmd.commonAncestor("table")};b.plugin.getSelectedRow=function(){return b.cmd.commonAncestor("tr")};b.plugin.getSelectedCell=function(){return b.cmd.commonAncestor("td")};m("prop,cellprop,colinsertleft,colinsertright,rowinsertabove,rowinsertbelow,rowmerge,colmerge,rowsplit,colsplit,coldelete,rowdelete,insert,delete".split(","),
function(a,c){var d=J(c,["prop","delete"])<0?b.plugin.getSelectedCell:b.plugin.getSelectedTable;b.addContextmenu({title:b.lang("table"+c),click:function(){b.loadPlugin("table",function(){b.plugin.table[c]();b.hideMenu()})},cond:d,width:170,iconClass:"ke-icon-table"+c})});b.addContextmenu({title:"-"});m("selectall,justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,insertunorderedlist,indent,outdent,subscript,superscript,hr,print,bold,italic,underline,strikethrough,removeformat,unlink".split(","),
function(a,d){c[d]&&b.afterCreate(function(){Ka(this.edit.doc,c[d],function(){b.cmd.selection();b.clickToolbar(d)})});b.clickToolbar(d,function(){b.focus().exec(d,null)})});b.afterCreate(function(){function c(){f.range.moveToBookmark(j);f.select();X&&(a("div."+l,i).each(function(){a(this).after("<br />").remove(!0)}),a("span.Apple-style-span",i).remove(!0),a("span.Apple-tab-span",i).remove(!0),a("span[style]",i).each(function(){a(this).css("white-space")=="nowrap"&&a(this).remove(!0)}),a("meta",i).remove());
var d=i[0].innerHTML;i.remove();d!==""&&(X&&(d=d.replace(/(<br>)\1/ig,"$1")),b.pasteType===2&&(d=d.replace(/(<(?:p|p\s[^>]*)>) *(<\/p>)/ig,""),/schemas-microsoft-com|worddocument|mso-\w+/i.test(d)?d=nb(d,b.filterMode?b.htmlTags:a.options.htmlTags):(d=U(d,b.filterMode?b.htmlTags:null),d=b.beforeSetHtml(d))),b.pasteType===1&&(d=d.replace(/&nbsp;/ig," "),d=d.replace(/\n\s*\n/g,"\n"),d=d.replace(/<br[^>]*>/ig,"\n"),d=d.replace(/<\/p><p[^>]*>/ig,"\n"),d=d.replace(/<[^>]+>/g,""),d=d.replace(/ {2}/g," &nbsp;"),
b.newlineTag=="p"?/\n/.test(d)&&(d=d.replace(/^/,"<p>").replace(/$/,"<br /></p>").replace(/\n/g,"<br /></p><p>")):d=d.replace(/\n/g,"<br />$&")),b.insertHtml(d,!0))}var d=b.edit.doc,f,j,i,l="__kindeditor_paste__",m=!1;a(d.body).bind("paste",function(p){if(b.pasteType===0)p.stop();else if(!m){m=!0;a("div."+l,d).remove();f=b.cmd.selection();j=f.range.createBookmark();i=a('<div class="'+l+'"></div>',d).css({position:"absolute",width:"1px",height:"1px",overflow:"hidden",left:"-1981px",top:a(j.start).pos().y+
"px","white-space":"nowrap"});a(d.body).append(i);if(o){var s=f.range.get(!0);s.moveToElementText(i[0]);s.select();s.execCommand("paste");p.preventDefault()}else f.range.selectNodeContents(i[0]),f.select();setTimeout(function(){c();m=!1},0)}})});b.beforeGetHtml(function(a){o&&A<=8&&(a=a.replace(/<div\s+[^>]*data-ke-input-tag="([^"]*)"[^>]*>([\s\S]*?)<\/div>/ig,function(a,b){return unescape(b)}),a=a.replace(/(<input)((?:\s+[^>]*)?>)/ig,function(a,b,c){if(!/\s+type="[^"]+"/i.test(a))return b+' type="text"'+
c;return a}));return a.replace(/(<(?:noscript|noscript\s[^>]*)>)([\s\S]*?)(<\/noscript>)/ig,function(a,b,c,d){return b+fa(c).replace(/\s+/g," ")+d}).replace(/<img[^>]*class="?ke-(flash|rm|media)"?[^>]*>/ig,function(a){var a=I(a),b=ba(a.style||""),c=pb(a["data-ke-tag"]),d=l(b.width,""),b=l(b.height,"");/px/i.test(d)&&(d=t(d));/px/i.test(b)&&(b=t(b));c.width=l(a.width,d);c.height=l(a.height,b);return Ma(c)}).replace(/<img[^>]*class="?ke-anchor"?[^>]*>/ig,function(a){a=I(a);return'<a name="'+unescape(a["data-ke-name"])+
'"></a>'}).replace(/<div\s+[^>]*data-ke-script-attr="([^"]*)"[^>]*>([\s\S]*?)<\/div>/ig,function(a,b,c){return"<script"+unescape(b)+">"+unescape(c)+"<\/script>"}).replace(/<div\s+[^>]*data-ke-noscript-attr="([^"]*)"[^>]*>([\s\S]*?)<\/div>/ig,function(a,b,c){return"<noscript"+unescape(b)+">"+unescape(c)+"</noscript>"}).replace(/(<[^>]*)data-ke-src="([^"]*)"([^>]*>)/ig,function(a,b,c){a=a.replace(/(\s+(?:href|src)=")[^"]*(")/i,function(a,b,d){return b+fa(c)+d});return a=a.replace(/\s+data-ke-src="[^"]*"/i,
"")}).replace(/(<[^>]+\s)data-ke-(on\w+="[^"]*"[^>]*>)/ig,function(a,b,c){return b+c})});b.beforeSetHtml(function(a){o&&A<=8&&(a=a.replace(/<input[^>]*>|<(select|button)[^>]*>[\s\S]*?<\/\1>/ig,function(a){var b=I(a);if(ba(b.style||"").display=="none")return'<div class="ke-display-none" data-ke-input-tag="'+escape(a)+'"></div>';return a}));return a.replace(/<embed[^>]*type="([^"]+)"[^>]*>(?:<\/embed>)?/ig,function(a){a=I(a);a.src=l(a.src,"");a.width=l(a.width,0);a.height=l(a.height,0);return qb(b.themesPath+
"common/blank.gif",a)}).replace(/<a[^>]*name="([^"]+)"[^>]*>(?:<\/a>)?/ig,function(a){var c=I(a);if(c.href!==i)return a;return'<img class="ke-anchor" src="'+b.themesPath+'common/anchor.gif" data-ke-name="'+escape(c.name)+'" />'}).replace(/<script([^>]*)>([\s\S]*?)<\/script>/ig,function(a,b,c){return'<div class="ke-script" data-ke-script-attr="'+escape(b)+'">'+escape(c)+"</div>"}).replace(/<noscript([^>]*)>([\s\S]*?)<\/noscript>/ig,function(a,b,c){return'<div class="ke-noscript" data-ke-noscript-attr="'+
escape(b)+'">'+escape(c)+"</div>"}).replace(/(<[^>]*)(href|src)="([^"]*)"([^>]*>)/ig,function(a,b,c,d,e){if(a.match(/\sdata-ke-src="[^"]*"/i))return a;return a=b+c+'="'+d+'" data-ke-src="'+C(d)+'"'+e}).replace(/(<[^>]+\s)(on\w+="[^"]*"[^>]*>)/ig,function(a,b,c){return b+"data-ke-"+c}).replace(/<table[^>]*\s+border="0"[^>]*>/ig,function(a){if(a.indexOf("ke-zeroborder")>=0)return a;return Sb(a,"ke-zeroborder")})})})}})(window);
KindEditor.lang({
source : 'HTML代码',
preview : '预览',
undo : '后退(Ctrl+Z)',
redo : '前进(Ctrl+Y)',
cut : '剪切(Ctrl+X)',
copy : '复制(Ctrl+C)',
paste : '粘贴(Ctrl+V)',
plainpaste : '粘贴为无格式文本',
wordpaste : '从Word粘贴',
selectall : '全选(Ctrl+A)',
justifyleft : '左对齐',
justifycenter : '居中',
justifyright : '右对齐',
justifyfull : '两端对齐',
insertorderedlist : '编号',
insertunorderedlist : '项目符号',
indent : '增加缩进',
outdent : '减少缩进',
subscript : '下标',
superscript : '上标',
formatblock : '段落',
fontname : '字体',
fontsize : '文字大小',
forecolor : '文字颜色',
hilitecolor : '文字背景',
bold : '粗体(Ctrl+B)',
italic : '斜体(Ctrl+I)',
underline : '下划线(Ctrl+U)',
strikethrough : '删除线',
removeformat : '删除格式',
image : '图片',
multiimage : '批量图片上传',
flash : 'Flash',
media : '视音频',
table : '表格',
tablecell : '单元格',
hr : '插入横线',
emoticons : '插入表情',
link : '超级链接',
unlink : '取消超级链接',
fullscreen : '全屏显示',
about : '关于',
print : '打印(Ctrl+P)',
filemanager : '文件空间',
code : '插入程序代码',
map : 'Google地图',
baidumap : '百度地图',
lineheight : '行距',
clearhtml : '清理HTML代码',
pagebreak : '插入分页符',
quickformat : '一键排版',
insertfile : '插入文件',
template : '插入模板',
anchor : '锚点',
yes : '确定',
no : '取消',
close : '关闭',
editImage : '图片属性',
deleteImage : '删除图片',
editFlash : 'Flash属性',
deleteFlash : '删除Flash',
editMedia : '视音频属性',
deleteMedia : '删除视音频',
editLink : '超级链接属性',
deleteLink : '取消超级链接',
editAnchor : '锚点属性',
deleteAnchor : '删除锚点',
tableprop : '表格属性',
tablecellprop : '单元格属性',
tableinsert : '插入表格',
tabledelete : '删除表格',
tablecolinsertleft : '左侧插入列',
tablecolinsertright : '右侧插入列',
tablerowinsertabove : '上方插入行',
tablerowinsertbelow : '下方插入行',
tablerowmerge : '向下合并单元格',
tablecolmerge : '向右合并单元格',
tablerowsplit : '拆分行',
tablecolsplit : '拆分列',
tablecoldelete : '删除列',
tablerowdelete : '删除行',
noColor : '无颜色',
pleaseSelectFile : '请选择文件。',
invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。",
invalidMedia : "请输入有效的URL地址。\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",
invalidWidth : "宽度必须为数字。",
invalidHeight : "高度必须为数字。",
invalidBorder : "边框必须为数字。",
invalidUrl : "请输入有效的URL地址。",
invalidRows : '行数为必选项只允许输入大于0的数字。',
invalidCols : '列数为必选项只允许输入大于0的数字。',
invalidPadding : '边距必须为数字。',
invalidSpacing : '间距必须为数字。',
invalidJson : '服务器发生故障。',
uploadSuccess : '上传成功。',
cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',
copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',
pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。',
ajaxLoading : '加载中,请稍候 ...',
uploadLoading : '上传中,请稍候 ...',
uploadError : '上传错误',
'plainpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
'wordpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
'code.pleaseInput' : '请输入程序代码。',
'link.url' : 'URL',
'link.linkType' : '打开类型',
'link.newWindow' : '新窗口',
'link.selfWindow' : '当前窗口',
'flash.url' : 'URL',
'flash.width' : '宽度',
'flash.height' : '高度',
'flash.upload' : '上传',
'flash.viewServer' : '文件空间',
'media.url' : 'URL',
'media.width' : '宽度',
'media.height' : '高度',
'media.autostart' : '自动播放',
'media.upload' : '上传',
'media.viewServer' : '文件空间',
'image.remoteImage' : '网络图片',
'image.localImage' : '本地上传',
'image.remoteUrl' : '图片地址',
'image.localUrl' : '上传文件',
'image.size' : '图片大小',
'image.width' : '宽',
'image.height' : '高',
'image.resetSize' : '重置大小',
'image.align' : '对齐方式',
'image.defaultAlign' : '默认方式',
'image.leftAlign' : '左对齐',
'image.rightAlign' : '右对齐',
'image.imgTitle' : '图片说明',
'image.upload' : '浏览...',
'image.viewServer' : '图片空间',
'multiimage.uploadDesc' : '允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>',
'multiimage.startUpload' : '开始上传',
'multiimage.clearAll' : '全部清空',
'multiimage.insertAll' : '全部插入',
'multiimage.queueLimitExceeded' : '文件数量超过限制。',
'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。',
'multiimage.zeroByteFile' : '无法上传空文件。',
'multiimage.invalidFiletype' : '文件类型不正确。',
'multiimage.unknownError' : '发生异常,无法上传。',
'multiimage.pending' : '等待上传',
'multiimage.uploadError' : '上传失败',
'filemanager.emptyFolder' : '空文件夹',
'filemanager.moveup' : '移到上一级文件夹',
'filemanager.viewType' : '显示方式:',
'filemanager.viewImage' : '缩略图',
'filemanager.listImage' : '详细信息',
'filemanager.orderType' : '排序方式:',
'filemanager.fileName' : '名称',
'filemanager.fileSize' : '大小',
'filemanager.fileType' : '类型',
'insertfile.url' : 'URL',
'insertfile.title' : '文件说明',
'insertfile.upload' : '上传',
'insertfile.viewServer' : '文件空间',
'table.cells' : '单元格数',
'table.rows' : '行数',
'table.cols' : '列数',
'table.size' : '大小',
'table.width' : '宽度',
'table.height' : '高度',
'table.percent' : '%',
'table.px' : 'px',
'table.space' : '边距间距',
'table.padding' : '边距',
'table.spacing' : '间距',
'table.align' : '对齐方式',
'table.textAlign' : '水平对齐',
'table.verticalAlign' : '垂直对齐',
'table.alignDefault' : '默认',
'table.alignLeft' : '左对齐',
'table.alignCenter' : '居中',
'table.alignRight' : '右对齐',
'table.alignTop' : '顶部',
'table.alignMiddle' : '中部',
'table.alignBottom' : '底部',
'table.alignBaseline' : '基线',
'table.border' : '边框',
'table.borderWidth' : '边框',
'table.borderColor' : '颜色',
'table.backgroundColor' : '背景颜色',
'map.address' : '地址: ',
'map.search' : '搜索',
'baidumap.address' : '地址: ',
'baidumap.search' : '搜索',
'baidumap.insertDynamicMap' : '插入动态地图',
'anchor.name' : '锚点名称',
'formatblock.formatBlock' : {
h1 : '标题 1',
h2 : '标题 2',
h3 : '标题 3',
h4 : '标题 4',
p : '正 文'
},
'fontname.fontName' : {
'SimSun' : '宋体',
'NSimSun' : '新宋体',
'FangSong_GB2312' : '仿宋_GB2312',
'KaiTi_GB2312' : '楷体_GB2312',
'SimHei' : '黑体',
'Microsoft YaHei' : '微软雅黑',
'Arial' : 'Arial',
'Arial Black' : 'Arial Black',
'Times New Roman' : 'Times New Roman',
'Courier New' : 'Courier New',
'Tahoma' : 'Tahoma',
'Verdana' : 'Verdana'
},
'lineheight.lineHeight' : [
{'1' : '单倍行距'},
{'1.5' : '1.5倍行距'},
{'2' : '2倍行距'},
{'2.5' : '2.5倍行距'},
{'3' : '3倍行距'}
],
'template.selectTemplate' : '可选模板',
'template.replaceContent' : '替换当前内容',
'template.fileList' : {
'1.html' : '图片和文字',
'2.html' : '表格',
'3.html' : '项目编号'
}
}, 'zh_CN');

View File

@@ -0,0 +1,328 @@
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.plugin('image', function(K) {
var self = this, name = 'image',
allowImageUpload = K.undef(self.allowImageUpload, true),
allowImageRemote = K.undef(self.allowImageRemote, true),
formatUploadUrl = K.undef(self.formatUploadUrl, true),
allowFileManager = K.undef(self.allowFileManager, false),
uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'),
imageTabIndex = K.undef(self.imageTabIndex, 0),
imgPath = self.pluginsPath + 'image/images/',
extraParams = K.undef(self.extraFileUploadParams, {}),
filePostName = K.undef(self.filePostName, 'imgFile'),
fillDescAfterUploadImage = K.undef(self.fillDescAfterUploadImage, false),
lang = self.lang(name + '.');
self.plugin.imageDialog = function(options) {
var imageUrl = options.imageUrl,
imageWidth = K.undef(options.imageWidth, ''),
imageHeight = K.undef(options.imageHeight, ''),
imageTitle = K.undef(options.imageTitle, ''),
imageAlign = K.undef(options.imageAlign, ''),
showRemote = K.undef(options.showRemote, true),
showLocal = K.undef(options.showLocal, true),
tabIndex = K.undef(options.tabIndex, 0),
clickFn = options.clickFn;
var target = 'kindeditor_upload_iframe_' + new Date().getTime();
var hiddenElements = [];
for(var k in extraParams){
hiddenElements.push('<input type="hidden" name="' + k + '" value="' + extraParams[k] + '" />');
}
var html = [
'<div style="padding:20px;">',
//tabs
'<div class="tabs"></div>',
//remote image - start
'<div class="tab1" style="display:none;">',
//url
'<div class="ke-dialog-row">',
'<label for="remoteUrl" style="width:60px;">' + lang.remoteUrl + '</label>',
'<input type="text" id="remoteUrl" class="ke-input-text" name="url" value="" style="width:200px;" /> &nbsp;',
'<span class="ke-button-common ke-button-outer">',
'<input type="button" class="ke-button-common ke-button" name="viewServer" value="' + lang.viewServer + '" />',
'</span>',
'</div>',
//size
'<div class="ke-dialog-row">',
'<label for="remoteWidth" style="width:60px;">' + lang.size + '</label>',
lang.width + ' <input type="text" id="remoteWidth" class="ke-input-text ke-input-number" name="width" value="" maxlength="4" /> ',
lang.height + ' <input type="text" class="ke-input-text ke-input-number" name="height" value="" maxlength="4" /> ',
'<img class="ke-refresh-btn" src="' + imgPath + 'refresh.png" width="16" height="16" alt="" style="cursor:pointer;" title="' + lang.resetSize + '" />',
'</div>',
//align
'<div class="ke-dialog-row">',
'<label style="width:60px;">' + lang.align + '</label>',
'<input type="radio" name="align" class="ke-inline-block" value="" checked="checked" /> <img name="defaultImg" src="' + imgPath + 'align_top.gif" width="23" height="25" alt="" />',
' <input type="radio" name="align" class="ke-inline-block" value="left" /> <img name="leftImg" src="' + imgPath + 'align_left.gif" width="23" height="25" alt="" />',
' <input type="radio" name="align" class="ke-inline-block" value="right" /> <img name="rightImg" src="' + imgPath + 'align_right.gif" width="23" height="25" alt="" />',
'</div>',
//title
'<div class="ke-dialog-row">',
'<label for="remoteTitle" style="width:60px;">' + lang.imgTitle + '</label>',
'<input type="text" id="remoteTitle" class="ke-input-text" name="title" value="" style="width:200px;" />',
'</div>',
'</div>',
//remote image - end
//local upload - start
'<div class="tab2" style="display:none;">',
'<iframe name="' + target + '" style="display:none;"></iframe>',
'<form class="ke-upload-area ke-form" method="post" enctype="multipart/form-data" target="' + target + '" action="' + K.addParam(uploadJson, 'dir=image') + '">',
//file
'<div class="ke-dialog-row">',
hiddenElements.join(''),
'<label style="width:60px;">' + lang.localUrl + '</label>',
'<input type="text" name="localUrl" class="ke-input-text" tabindex="-1" style="width:200px;" readonly="true" /> &nbsp;',
'<input type="button" class="ke-upload-button" value="' + lang.upload + '" />',
'</div>',
'</form>',
'</div>',
//local upload - end
'</div>'
].join('');
var dialogWidth = showLocal || allowFileManager ? 450 : 400,
dialogHeight = showLocal && showRemote ? 300 : 250;
var dialog = self.createDialog({
name : name,
width : dialogWidth,
height : dialogHeight,
title : self.lang(name),
body : html,
yesBtn : {
name : self.lang('yes'),
click : function(e) {
// Bugfix: http://code.google.com/p/kindeditor/issues/detail?id=319
if (dialog.isLoading) {
return;
}
// insert local image
if (showLocal && showRemote && tabs && tabs.selectedIndex === 1 || !showRemote) {
if (uploadbutton.fileBox.val() == '') {
alert(self.lang('pleaseSelectFile'));
return;
}
dialog.showLoading(self.lang('uploadLoading'));
uploadbutton.submit();
localUrlBox.val('');
return;
}
// insert remote image
var url = K.trim(urlBox.val()),
width = widthBox.val(),
height = heightBox.val(),
title = titleBox.val(),
align = '';
alignBox.each(function() {
if (this.checked) {
align = this.value;
return false;
}
});
if (url == 'http://' || K.invalidUrl(url)) {
alert(self.lang('invalidUrl'));
urlBox[0].focus();
return;
}
if (!/^\d*$/.test(width)) {
alert(self.lang('invalidWidth'));
widthBox[0].focus();
return;
}
if (!/^\d*$/.test(height)) {
alert(self.lang('invalidHeight'));
heightBox[0].focus();
return;
}
clickFn.call(self, url, title, width, height, 0, align);
}
},
beforeRemove : function() {
viewServerBtn.unbind();
widthBox.unbind();
heightBox.unbind();
refreshBtn.unbind();
}
}),
div = dialog.div;
var urlBox = K('[name="url"]', div),
localUrlBox = K('[name="localUrl"]', div),
viewServerBtn = K('[name="viewServer"]', div),
widthBox = K('.tab1 [name="width"]', div),
heightBox = K('.tab1 [name="height"]', div),
refreshBtn = K('.ke-refresh-btn', div),
titleBox = K('.tab1 [name="title"]', div),
alignBox = K('.tab1 [name="align"]', div);
var tabs;
if (showRemote && showLocal) {
tabs = K.tabs({
src : K('.tabs', div),
afterSelect : function(i) {}
});
tabs.add({
title : lang.remoteImage,
panel : K('.tab1', div)
});
tabs.add({
title : lang.localImage,
panel : K('.tab2', div)
});
tabs.select(tabIndex);
} else if (showRemote) {
K('.tab1', div).show();
} else if (showLocal) {
K('.tab2', div).show();
}
var uploadbutton = K.uploadbutton({
button : K('.ke-upload-button', div)[0],
fieldName : filePostName,
form : K('.ke-form', div),
target : target,
width: 60,
afterUpload : function(data) {
dialog.hideLoading();
if (data.error === 0) {
var url = data.url;
if (formatUploadUrl) {
url = K.formatUrl(url, 'absolute');
}
if (self.afterUpload) {
self.afterUpload.call(self, url, data, name);
}
if (!fillDescAfterUploadImage) {
clickFn.call(self, url, data.title, data.width, data.height, data.border, data.align);
} else {
K(".ke-dialog-row #remoteUrl", div).val(url);
K(".ke-tabs-li", div)[0].click();
K(".ke-refresh-btn", div).click();
}
} else {
alert(data.message);
}
},
afterError : function(html) {
dialog.hideLoading();
self.errorDialog(html);
}
});
uploadbutton.fileBox.change(function(e) {
localUrlBox.val(uploadbutton.fileBox.val());
});
if (allowFileManager) {
viewServerBtn.click(function(e) {
self.loadPlugin('filemanager', function() {
self.plugin.filemanagerDialog({
viewType : 'VIEW',
dirName : 'image',
clickFn : function(url, title) {
if (self.dialogs.length > 1) {
K('[name="url"]', div).val(url);
if (self.afterSelectFile) {
self.afterSelectFile.call(self, url);
}
self.hideDialog();
}
}
});
});
});
} else {
viewServerBtn.hide();
}
var originalWidth = 0, originalHeight = 0;
function setSize(width, height) {
widthBox.val(width);
heightBox.val(height);
originalWidth = width;
originalHeight = height;
}
refreshBtn.click(function(e) {
var tempImg = K('<img src="' + urlBox.val() + '" />', document).css({
position : 'absolute',
visibility : 'hidden',
top : 0,
left : '-1000px'
});
tempImg.bind('load', function() {
setSize(tempImg.width(), tempImg.height());
tempImg.remove();
});
K(document.body).append(tempImg);
});
widthBox.change(function(e) {
if (originalWidth > 0) {
heightBox.val(Math.round(originalHeight / originalWidth * parseInt(this.value, 10)));
}
});
heightBox.change(function(e) {
if (originalHeight > 0) {
widthBox.val(Math.round(originalWidth / originalHeight * parseInt(this.value, 10)));
}
});
urlBox.val(options.imageUrl);
setSize(options.imageWidth, options.imageHeight);
titleBox.val(options.imageTitle);
alignBox.each(function() {
if (this.value === options.imageAlign) {
this.checked = true;
return false;
}
});
if (showRemote && tabIndex === 0) {
urlBox[0].focus();
urlBox[0].select();
}
return dialog;
};
self.plugin.image = {
edit : function() {
var img = self.plugin.getSelectedImage();
self.plugin.imageDialog({
imageUrl : img ? img.attr('data-ke-src') : 'http://',
imageWidth : img ? img.width() : '',
imageHeight : img ? img.height() : '',
imageTitle : img ? img.attr('title') : '',
imageAlign : img ? img.attr('align') : '',
showRemote : allowImageRemote,
showLocal : allowImageUpload,
tabIndex: img ? 0 : imageTabIndex,
clickFn : function(url, title, width, height, border, align) {
if (img) {
img.attr('src', url);
img.attr('data-ke-src', url);
img.attr('width', width);
img.attr('height', height);
img.attr('title', title);
img.attr('align', align);
img.attr('alt', title);
} else {
self.exec('insertimage', url, title, width, height, border, align);
}
// Bugfix: [Firefox] 上传图片后总是出现正在加载的样式需要延迟执行hideDialog
setTimeout(function() {
self.hideDialog().focus();
}, 0);
}
});
},
'delete' : function() {
var target = self.plugin.getSelectedImage();
if (target.parent().name == 'a') {
target = target.parent();
}
target.remove();
// [IE] 删除图片后立即点击图片按钮出错
self.addBookmark();
}
};
self.clickToolbar(name, self.plugin.image.edit);
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 B

View File

@@ -0,0 +1,66 @@
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.plugin('link', function(K) {
var self = this, name = 'link';
self.plugin.link = {
edit : function() {
var lang = self.lang(name + '.'),
html = '<div style="padding:20px;">' +
//url
'<div class="ke-dialog-row">' +
'<label for="keUrl" style="width:60px;">' + lang.url + '</label>' +
'<input class="ke-input-text" type="text" id="keUrl" name="url" value="" style="width:260px;" /></div>' +
//type
'<div class="ke-dialog-row"">' +
'<label for="keType" style="width:60px;">' + lang.linkType + '</label>' +
'<select id="keType" name="type"></select>' +
'</div>' +
'</div>',
dialog = self.createDialog({
name : name,
width : 450,
title : self.lang(name),
body : html,
yesBtn : {
name : self.lang('yes'),
click : function(e) {
var url = K.trim(urlBox.val());
if (url == 'http://' || K.invalidUrl(url)) {
alert(self.lang('invalidUrl'));
urlBox[0].focus();
return;
}
self.exec('createlink', url, typeBox.val()).hideDialog().focus();
}
}
}),
div = dialog.div,
urlBox = K('input[name="url"]', div),
typeBox = K('select[name="type"]', div);
urlBox.val('http://');
typeBox[0].options[0] = new Option(lang.newWindow, '_blank');
typeBox[0].options[1] = new Option(lang.selfWindow, '');
self.cmd.selection();
var a = self.plugin.getSelectedLink();
if (a) {
self.cmd.range.selectNode(a[0]);
self.cmd.select();
urlBox.val(a.attr('data-ke-src'));
typeBox.val(a.attr('target'));
}
urlBox[0].focus();
urlBox[0].select();
},
'delete' : function() {
self.exec('unlink', null);
}
};
self.clickToolbar(name, self.plugin.link.edit);
});

View File

@@ -0,0 +1,81 @@
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.plugin('quickformat', function(K) {
var self = this, name = 'quickformat',
blockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p');
function getFirstChild(knode) {
var child = knode.first();
while (child && child.first()) {
child = child.first();
}
return child;
}
self.clickToolbar(name, function() {
self.focus();
var doc = self.edit.doc,
range = self.cmd.range,
child = K(doc.body).first(), next,
nodeList = [], subList = [],
bookmark = range.createBookmark(true);
while(child) {
next = child.next();
var firstChild = getFirstChild(child);
if (!firstChild || firstChild.name != 'img') {
if (blockMap[child.name]) {
child.html(child.html().replace(/^(\s|&nbsp;| )+/ig, ''));
child.css('text-indent', '2em');
} else {
subList.push(child);
}
if (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) {
if (subList.length > 0) {
nodeList.push(subList);
}
subList = [];
}
}
child = next;
}
K.each(nodeList, function(i, subList) {
var wrapper = K('<p style="text-indent:2em;"></p>', doc);
subList[0].before(wrapper);
K.each(subList, function(i, knode) {
wrapper.append(knode);
});
});
range.moveToBookmark(bookmark);
self.addBookmark();
});
});
/**
--------------------------
abcd<br />
1234<br />
to
<p style="text-indent:2em;">
abcd<br />
1234<br />
</p>
--------------------------
&nbsp; abcd<img>1233
<p>1234</p>
to
<p style="text-indent:2em;">abcd<img>1233</p>
<p style="text-indent:2em;">1234</p>
--------------------------
*/

View File

@@ -0,0 +1,712 @@
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.plugin('table', function(K) {
var self = this, name = 'table', lang = self.lang(name + '.'), zeroborder = 'ke-zeroborder';
// 设置颜色
function _setColor(box, color) {
color = color.toUpperCase();
box.css('background-color', color);
box.css('color', color === '#000000' ? '#FFFFFF' : '#000000');
box.html(color);
}
// 初始化取色器
var pickerList = [];
function _initColorPicker(dialogDiv, colorBox) {
colorBox.bind('click,mousedown', function(e){
e.stopPropagation();
});
function removePicker() {
K.each(pickerList, function() {
this.remove();
});
pickerList = [];
K(document).unbind('click,mousedown', removePicker);
dialogDiv.unbind('click,mousedown', removePicker);
}
colorBox.click(function(e) {
removePicker();
var box = K(this),
pos = box.pos();
var picker = K.colorpicker({
x : pos.x,
y : pos.y + box.height(),
z : 811214,
selectedColor : K(this).html(),
colors : self.colorTable,
noColor : self.lang('noColor'),
shadowMode : self.shadowMode,
click : function(color) {
_setColor(box, color);
removePicker();
}
});
pickerList.push(picker);
K(document).bind('click,mousedown', removePicker);
dialogDiv.bind('click,mousedown', removePicker);
});
}
// 取得下一行cell的index
function _getCellIndex(table, row, cell) {
var rowSpanCount = 0;
for (var i = 0, len = row.cells.length; i < len; i++) {
if (row.cells[i] == cell) {
break;
}
rowSpanCount += row.cells[i].rowSpan - 1;
}
return cell.cellIndex - rowSpanCount;
}
self.plugin.table = {
//insert or modify table
prop : function(isInsert) {
var html = [
'<div style="padding:20px;">',
//rows, cols
'<div class="ke-dialog-row">',
'<label for="keRows" style="width:90px;">' + lang.cells + '</label>',
lang.rows + ' <input type="text" id="keRows" class="ke-input-text ke-input-number" name="rows" value="" maxlength="4" /> &nbsp; ',
lang.cols + ' <input type="text" class="ke-input-text ke-input-number" name="cols" value="" maxlength="4" />',
'</div>',
//width, height
'<div class="ke-dialog-row">',
'<label for="keWidth" style="width:90px;">' + lang.size + '</label>',
lang.width + ' <input type="text" id="keWidth" class="ke-input-text ke-input-number" name="width" value="" maxlength="4" /> &nbsp; ',
'<select name="widthType">',
'<option value="%">' + lang.percent + '</option>',
'<option value="px">' + lang.px + '</option>',
'</select> &nbsp; ',
lang.height + ' <input type="text" class="ke-input-text ke-input-number" name="height" value="" maxlength="4" /> &nbsp; ',
'<select name="heightType">',
'<option value="%">' + lang.percent + '</option>',
'<option value="px">' + lang.px + '</option>',
'</select>',
'</div>',
//space, padding
'<div class="ke-dialog-row">',
'<label for="kePadding" style="width:90px;">' + lang.space + '</label>',
lang.padding + ' <input type="text" id="kePadding" class="ke-input-text ke-input-number" name="padding" value="" maxlength="4" /> &nbsp; ',
lang.spacing + ' <input type="text" class="ke-input-text ke-input-number" name="spacing" value="" maxlength="4" />',
'</div>',
//align
'<div class="ke-dialog-row">',
'<label for="keAlign" style="width:90px;">' + lang.align + '</label>',
'<select id="keAlign" name="align">',
'<option value="">' + lang.alignDefault + '</option>',
'<option value="left">' + lang.alignLeft + '</option>',
'<option value="center">' + lang.alignCenter + '</option>',
'<option value="right">' + lang.alignRight + '</option>',
'</select>',
'</div>',
//border
'<div class="ke-dialog-row">',
'<label for="keBorder" style="width:90px;">' + lang.border + '</label>',
lang.borderWidth + ' <input type="text" id="keBorder" class="ke-input-text ke-input-number" name="border" value="" maxlength="4" /> &nbsp; ',
lang.borderColor + ' <span class="ke-inline-block ke-input-color"></span>',
'</div>',
//background color
'<div class="ke-dialog-row">',
'<label for="keBgColor" style="width:90px;">' + lang.backgroundColor + '</label>',
'<span class="ke-inline-block ke-input-color"></span>',
'</div>',
'</div>'
].join('');
var bookmark = self.cmd.range.createBookmark();
var dialog = self.createDialog({
name : name,
width : 500,
title : self.lang(name),
body : html,
beforeRemove : function() {
colorBox.unbind();
},
yesBtn : {
name : self.lang('yes'),
click : function(e) {
var rows = rowsBox.val(),
cols = colsBox.val(),
width = widthBox.val(),
height = heightBox.val(),
widthType = widthTypeBox.val(),
heightType = heightTypeBox.val(),
padding = paddingBox.val(),
spacing = spacingBox.val(),
align = alignBox.val(),
border = borderBox.val(),
borderColor = K(colorBox[0]).html() || '',
bgColor = K(colorBox[1]).html() || '';
if (rows == 0 || !/^\d+$/.test(rows)) {
alert(self.lang('invalidRows'));
rowsBox[0].focus();
return;
}
if (cols == 0 || !/^\d+$/.test(cols)) {
alert(self.lang('invalidRows'));
colsBox[0].focus();
return;
}
if (!/^\d*$/.test(width)) {
alert(self.lang('invalidWidth'));
widthBox[0].focus();
return;
}
if (!/^\d*$/.test(height)) {
alert(self.lang('invalidHeight'));
heightBox[0].focus();
return;
}
if (!/^\d*$/.test(padding)) {
alert(self.lang('invalidPadding'));
paddingBox[0].focus();
return;
}
if (!/^\d*$/.test(spacing)) {
alert(self.lang('invalidSpacing'));
spacingBox[0].focus();
return;
}
if (!/^\d*$/.test(border)) {
alert(self.lang('invalidBorder'));
borderBox[0].focus();
return;
}
//modify table
if (table) {
if (width !== '') {
table.width(width + widthType);
} else {
table.css('width', '');
}
if (table[0].width !== undefined) {
table.removeAttr('width');
}
if (height !== '') {
table.height(height + heightType);
} else {
table.css('height', '');
}
if (table[0].height !== undefined) {
table.removeAttr('height');
}
table.css('background-color', bgColor);
if (table[0].bgColor !== undefined) {
table.removeAttr('bgColor');
}
if (padding !== '') {
table[0].cellPadding = padding;
} else {
table.removeAttr('cellPadding');
}
if (spacing !== '') {
table[0].cellSpacing = spacing;
} else {
table.removeAttr('cellSpacing');
}
if (align !== '') {
table[0].align = align;
} else {
table.removeAttr('align');
}
if (border !== '') {
table.attr('border', border);
} else {
table.removeAttr('border');
}
if (border === '' || border === '0') {
table.addClass(zeroborder);
} else {
table.removeClass(zeroborder);
}
if (borderColor !== '') {
table.attr('borderColor', borderColor);
} else {
table.removeAttr('borderColor');
}
self.hideDialog().focus();
self.cmd.range.moveToBookmark(bookmark);
self.cmd.select();
self.addBookmark();
return;
}
//insert new table
var style = '';
if (width !== '') {
style += 'width:' + width + widthType + ';';
}
if (height !== '') {
style += 'height:' + height + heightType + ';';
}
if (bgColor !== '') {
style += 'background-color:' + bgColor + ';';
}
var html = '<table';
if (style !== '') {
html += ' style="' + style + '"';
}
if (padding !== '') {
html += ' cellpadding="' + padding + '"';
}
if (spacing !== '') {
html += ' cellspacing="' + spacing + '"';
}
if (align !== '') {
html += ' align="' + align + '"';
}
if (border !== '') {
html += ' border="' + border + '"';
}
if (border === '' || border === '0') {
html += ' class="' + zeroborder + '"';
}
if (borderColor !== '') {
html += ' bordercolor="' + borderColor + '"';
}
html += '>';
for (var i = 0; i < rows; i++) {
html += '<tr>';
for (var j = 0; j < cols; j++) {
html += '<td>' + (K.IE ? '&nbsp;' : '<br />') + '</td>';
}
html += '</tr>';
}
html += '</table>';
if (!K.IE) {
html += '<br />';
}
self.insertHtml(html);
self.select().hideDialog().focus();
self.addBookmark();
}
}
}),
div = dialog.div,
rowsBox = K('[name="rows"]', div).val(3),
colsBox = K('[name="cols"]', div).val(2),
widthBox = K('[name="width"]', div).val(100),
heightBox = K('[name="height"]', div),
widthTypeBox = K('[name="widthType"]', div),
heightTypeBox = K('[name="heightType"]', div),
paddingBox = K('[name="padding"]', div).val(2),
spacingBox = K('[name="spacing"]', div).val(0),
alignBox = K('[name="align"]', div),
borderBox = K('[name="border"]', div).val(1),
colorBox = K('.ke-input-color', div);
_initColorPicker(div, colorBox.eq(0));
_initColorPicker(div, colorBox.eq(1));
_setColor(colorBox.eq(0), '#000000');
_setColor(colorBox.eq(1), '');
// foucs and select
rowsBox[0].focus();
rowsBox[0].select();
var table;
if (isInsert) {
return;
}
//get selected table node
table = self.plugin.getSelectedTable();
if (table) {
rowsBox.val(table[0].rows.length);
colsBox.val(table[0].rows.length > 0 ? table[0].rows[0].cells.length : 0);
rowsBox.attr('disabled', true);
colsBox.attr('disabled', true);
var match,
tableWidth = table[0].style.width || table[0].width,
tableHeight = table[0].style.height || table[0].height;
if (tableWidth !== undefined && (match = /^(\d+)((?:px|%)*)$/.exec(tableWidth))) {
widthBox.val(match[1]);
widthTypeBox.val(match[2]);
} else {
widthBox.val('');
}
if (tableHeight !== undefined && (match = /^(\d+)((?:px|%)*)$/.exec(tableHeight))) {
heightBox.val(match[1]);
heightTypeBox.val(match[2]);
}
paddingBox.val(table[0].cellPadding || '');
spacingBox.val(table[0].cellSpacing || '');
alignBox.val(table[0].align || '');
borderBox.val(table[0].border === undefined ? '' : table[0].border);
_setColor(colorBox.eq(0), K.toHex(table.attr('borderColor') || ''));
_setColor(colorBox.eq(1), K.toHex(table[0].style.backgroundColor || table[0].bgColor || ''));
widthBox[0].focus();
widthBox[0].select();
}
},
//modify cell
cellprop : function() {
var html = [
'<div style="padding:20px;">',
//width, height
'<div class="ke-dialog-row">',
'<label for="keWidth" style="width:90px;">' + lang.size + '</label>',
lang.width + ' <input type="text" id="keWidth" class="ke-input-text ke-input-number" name="width" value="" maxlength="4" /> &nbsp; ',
'<select name="widthType">',
'<option value="%">' + lang.percent + '</option>',
'<option value="px">' + lang.px + '</option>',
'</select> &nbsp; ',
lang.height + ' <input type="text" class="ke-input-text ke-input-number" name="height" value="" maxlength="4" /> &nbsp; ',
'<select name="heightType">',
'<option value="%">' + lang.percent + '</option>',
'<option value="px">' + lang.px + '</option>',
'</select>',
'</div>',
//align
'<div class="ke-dialog-row">',
'<label for="keAlign" style="width:90px;">' + lang.align + '</label>',
lang.textAlign + ' <select id="keAlign" name="textAlign">',
'<option value="">' + lang.alignDefault + '</option>',
'<option value="left">' + lang.alignLeft + '</option>',
'<option value="center">' + lang.alignCenter + '</option>',
'<option value="right">' + lang.alignRight + '</option>',
'</select> ',
lang.verticalAlign + ' <select name="verticalAlign">',
'<option value="">' + lang.alignDefault + '</option>',
'<option value="top">' + lang.alignTop + '</option>',
'<option value="middle">' + lang.alignMiddle + '</option>',
'<option value="bottom">' + lang.alignBottom + '</option>',
'<option value="baseline">' + lang.alignBaseline + '</option>',
'</select>',
'</div>',
//border
'<div class="ke-dialog-row">',
'<label for="keBorder" style="width:90px;">' + lang.border + '</label>',
lang.borderWidth + ' <input type="text" id="keBorder" class="ke-input-text ke-input-number" name="border" value="" maxlength="4" /> &nbsp; ',
lang.borderColor + ' <span class="ke-inline-block ke-input-color"></span>',
'</div>',
//background color
'<div class="ke-dialog-row">',
'<label for="keBgColor" style="width:90px;">' + lang.backgroundColor + '</label>',
'<span class="ke-inline-block ke-input-color"></span>',
'</div>',
'</div>'
].join('');
var bookmark = self.cmd.range.createBookmark();
var dialog = self.createDialog({
name : name,
width : 500,
title : self.lang('tablecell'),
body : html,
beforeRemove : function() {
colorBox.unbind();
},
yesBtn : {
name : self.lang('yes'),
click : function(e) {
var width = widthBox.val(),
height = heightBox.val(),
widthType = widthTypeBox.val(),
heightType = heightTypeBox.val(),
padding = paddingBox.val(),
spacing = spacingBox.val(),
textAlign = textAlignBox.val(),
verticalAlign = verticalAlignBox.val(),
border = borderBox.val(),
borderColor = K(colorBox[0]).html() || '',
bgColor = K(colorBox[1]).html() || '';
if (!/^\d*$/.test(width)) {
alert(self.lang('invalidWidth'));
widthBox[0].focus();
return;
}
if (!/^\d*$/.test(height)) {
alert(self.lang('invalidHeight'));
heightBox[0].focus();
return;
}
if (!/^\d*$/.test(border)) {
alert(self.lang('invalidBorder'));
borderBox[0].focus();
return;
}
cell.css({
width : width !== '' ? (width + widthType) : '',
height : height !== '' ? (height + heightType) : '',
'background-color' : bgColor,
'text-align' : textAlign,
'vertical-align' : verticalAlign,
'border-width' : border,
'border-style' : border !== '' ? 'solid' : '',
'border-color' : borderColor
});
self.hideDialog().focus();
self.cmd.range.moveToBookmark(bookmark);
self.cmd.select();
self.addBookmark();
}
}
}),
div = dialog.div,
widthBox = K('[name="width"]', div).val(100),
heightBox = K('[name="height"]', div),
widthTypeBox = K('[name="widthType"]', div),
heightTypeBox = K('[name="heightType"]', div),
paddingBox = K('[name="padding"]', div).val(2),
spacingBox = K('[name="spacing"]', div).val(0),
textAlignBox = K('[name="textAlign"]', div),
verticalAlignBox = K('[name="verticalAlign"]', div),
borderBox = K('[name="border"]', div).val(1),
colorBox = K('.ke-input-color', div);
_initColorPicker(div, colorBox.eq(0));
_initColorPicker(div, colorBox.eq(1));
_setColor(colorBox.eq(0), '#000000');
_setColor(colorBox.eq(1), '');
// foucs and select
widthBox[0].focus();
widthBox[0].select();
// get selected cell
var cell = self.plugin.getSelectedCell();
var match,
cellWidth = cell[0].style.width || cell[0].width || '',
cellHeight = cell[0].style.height || cell[0].height || '';
if ((match = /^(\d+)((?:px|%)*)$/.exec(cellWidth))) {
widthBox.val(match[1]);
widthTypeBox.val(match[2]);
} else {
widthBox.val('');
}
if ((match = /^(\d+)((?:px|%)*)$/.exec(cellHeight))) {
heightBox.val(match[1]);
heightTypeBox.val(match[2]);
}
textAlignBox.val(cell[0].style.textAlign || '');
verticalAlignBox.val(cell[0].style.verticalAlign || '');
var border = cell[0].style.borderWidth || '';
if (border) {
border = parseInt(border);
}
borderBox.val(border);
_setColor(colorBox.eq(0), K.toHex(cell[0].style.borderColor || ''));
_setColor(colorBox.eq(1), K.toHex(cell[0].style.backgroundColor || ''));
widthBox[0].focus();
widthBox[0].select();
},
insert : function() {
this.prop(true);
},
'delete' : function() {
var table = self.plugin.getSelectedTable();
self.cmd.range.setStartBefore(table[0]).collapse(true);
self.cmd.select();
table.remove();
self.addBookmark();
},
colinsert : function(offset) {
var table = self.plugin.getSelectedTable()[0],
row = self.plugin.getSelectedRow()[0],
cell = self.plugin.getSelectedCell()[0],
index = cell.cellIndex + offset;
// 取得第一行的index
index += table.rows[0].cells.length - row.cells.length;
for (var i = 0, len = table.rows.length; i < len; i++) {
var newRow = table.rows[i],
newCell = newRow.insertCell(index);
newCell.innerHTML = K.IE ? '' : '<br />';
// 调整下一行的单元格index
index = _getCellIndex(table, newRow, newCell);
}
self.cmd.range.selectNodeContents(cell).collapse(true);
self.cmd.select();
self.addBookmark();
},
colinsertleft : function() {
this.colinsert(0);
},
colinsertright : function() {
this.colinsert(1);
},
rowinsert : function(offset) {
var table = self.plugin.getSelectedTable()[0],
row = self.plugin.getSelectedRow()[0],
cell = self.plugin.getSelectedCell()[0];
var rowIndex = row.rowIndex;
if (offset === 1) {
rowIndex = row.rowIndex + (cell.rowSpan - 1) + offset;
}
var newRow = table.insertRow(rowIndex);
for (var i = 0, len = row.cells.length; i < len; i++) {
// 调整cell个数
if (row.cells[i].rowSpan > 1) {
len -= row.cells[i].rowSpan - 1;
}
var newCell = newRow.insertCell(i);
// copy colspan
if (offset === 1 && row.cells[i].colSpan > 1) {
newCell.colSpan = row.cells[i].colSpan;
}
newCell.innerHTML = K.IE ? '' : '<br />';
}
// 调整rowspan
for (var j = rowIndex; j >= 0; j--) {
var cells = table.rows[j].cells;
if (cells.length > i) {
for (var k = cell.cellIndex; k >= 0; k--) {
if (cells[k].rowSpan > 1) {
cells[k].rowSpan += 1;
}
}
break;
}
}
self.cmd.range.selectNodeContents(cell).collapse(true);
self.cmd.select();
self.addBookmark();
},
rowinsertabove : function() {
this.rowinsert(0);
},
rowinsertbelow : function() {
this.rowinsert(1);
},
rowmerge : function() {
var table = self.plugin.getSelectedTable()[0],
row = self.plugin.getSelectedRow()[0],
cell = self.plugin.getSelectedCell()[0],
rowIndex = row.rowIndex, // 当前行的index
nextRowIndex = rowIndex + cell.rowSpan, // 下一行的index
nextRow = table.rows[nextRowIndex]; // 下一行
// 最后一行不能合并
if (table.rows.length <= nextRowIndex) {
return;
}
var cellIndex = cell.cellIndex; // 下一行单元格的index
if (nextRow.cells.length <= cellIndex) {
return;
}
var nextCell = nextRow.cells[cellIndex]; // 下一行单元格
// 上下行的colspan不一致时不能合并
if (cell.colSpan !== nextCell.colSpan) {
return;
}
cell.rowSpan += nextCell.rowSpan;
nextRow.deleteCell(cellIndex);
self.cmd.range.selectNodeContents(cell).collapse(true);
self.cmd.select();
self.addBookmark();
},
colmerge : function() {
var table = self.plugin.getSelectedTable()[0],
row = self.plugin.getSelectedRow()[0],
cell = self.plugin.getSelectedCell()[0],
rowIndex = row.rowIndex, // 当前行的index
cellIndex = cell.cellIndex,
nextCellIndex = cellIndex + 1;
// 最后一列不能合并
if (row.cells.length <= nextCellIndex) {
return;
}
var nextCell = row.cells[nextCellIndex];
// 左右列的rowspan不一致时不能合并
if (cell.rowSpan !== nextCell.rowSpan) {
return;
}
cell.colSpan += nextCell.colSpan;
row.deleteCell(nextCellIndex);
self.cmd.range.selectNodeContents(cell).collapse(true);
self.cmd.select();
self.addBookmark();
},
rowsplit : function() {
var table = self.plugin.getSelectedTable()[0],
row = self.plugin.getSelectedRow()[0],
cell = self.plugin.getSelectedCell()[0],
rowIndex = row.rowIndex;
// 不是可分割单元格
if (cell.rowSpan === 1) {
return;
}
var cellIndex = _getCellIndex(table, row, cell);
for (var i = 1, len = cell.rowSpan; i < len; i++) {
var newRow = table.rows[rowIndex + i],
newCell = newRow.insertCell(cellIndex);
if (cell.colSpan > 1) {
newCell.colSpan = cell.colSpan;
}
newCell.innerHTML = K.IE ? '' : '<br />';
// 调整下一行的单元格index
cellIndex = _getCellIndex(table, newRow, newCell);
}
K(cell).removeAttr('rowSpan');
self.cmd.range.selectNodeContents(cell).collapse(true);
self.cmd.select();
self.addBookmark();
},
colsplit : function() {
var table = self.plugin.getSelectedTable()[0],
row = self.plugin.getSelectedRow()[0],
cell = self.plugin.getSelectedCell()[0],
cellIndex = cell.cellIndex;
// 不是可分割单元格
if (cell.colSpan === 1) {
return;
}
for (var i = 1, len = cell.colSpan; i < len; i++) {
var newCell = row.insertCell(cellIndex + i);
if (cell.rowSpan > 1) {
newCell.rowSpan = cell.rowSpan;
}
newCell.innerHTML = K.IE ? '' : '<br />';
}
K(cell).removeAttr('colSpan');
self.cmd.range.selectNodeContents(cell).collapse(true);
self.cmd.select();
self.addBookmark();
},
coldelete : function() {
var table = self.plugin.getSelectedTable()[0],
row = self.plugin.getSelectedRow()[0],
cell = self.plugin.getSelectedCell()[0],
index = cell.cellIndex;
for (var i = 0, len = table.rows.length; i < len; i++) {
var newRow = table.rows[i],
newCell = newRow.cells[index];
if (newCell.colSpan > 1) {
newCell.colSpan -= 1;
if (newCell.colSpan === 1) {
K(newCell).removeAttr('colSpan');
}
} else {
newRow.deleteCell(index);
}
// 跳过不需要删除的行
if (newCell.rowSpan > 1) {
i += newCell.rowSpan - 1;
}
}
if (row.cells.length === 0) {
self.cmd.range.setStartBefore(table).collapse(true);
self.cmd.select();
K(table).remove();
} else {
self.cmd.selection(true);
}
self.addBookmark();
},
rowdelete : function() {
var table = self.plugin.getSelectedTable()[0],
row = self.plugin.getSelectedRow()[0],
cell = self.plugin.getSelectedCell()[0],
rowIndex = row.rowIndex;
// 从下到上删除
for (var i = cell.rowSpan - 1; i >= 0; i--) {
table.deleteRow(rowIndex + i);
}
if (table.rows.length === 0) {
self.cmd.range.setStartBefore(table).collapse(true);
self.cmd.select();
K(table).remove();
} else {
self.cmd.selection(true);
}
self.addBookmark();
}
};
self.clickToolbar(name, self.plugin.table.prop);
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

236
mode/kindeditor/zh_CN.js Normal file
View File

@@ -0,0 +1,236 @@
/*******************************************************************************
* KindEditor - WYSIWYG HTML Editor for Internet
* Copyright (C) 2006-2011 kindsoft.net
*
* @author Roddy <luolonghao@gmail.com>
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
KindEditor.lang({
source : 'HTML代码',
preview : '预览',
undo : '后退(Ctrl+Z)',
redo : '前进(Ctrl+Y)',
cut : '剪切(Ctrl+X)',
copy : '复制(Ctrl+C)',
paste : '粘贴(Ctrl+V)',
plainpaste : '粘贴为无格式文本',
wordpaste : '从Word粘贴',
selectall : '全选(Ctrl+A)',
justifyleft : '左对齐',
justifycenter : '居中',
justifyright : '右对齐',
justifyfull : '两端对齐',
insertorderedlist : '编号',
insertunorderedlist : '项目符号',
indent : '增加缩进',
outdent : '减少缩进',
subscript : '下标',
superscript : '上标',
formatblock : '段落',
fontname : '字体',
fontsize : '文字大小',
forecolor : '文字颜色',
hilitecolor : '文字背景',
bold : '粗体(Ctrl+B)',
italic : '斜体(Ctrl+I)',
underline : '下划线(Ctrl+U)',
strikethrough : '删除线',
removeformat : '删除格式',
image : '图片',
multiimage : '批量图片上传',
flash : 'Flash',
media : '视音频',
table : '表格',
tablecell : '单元格',
hr : '插入横线',
emoticons : '插入表情',
link : '超级链接',
unlink : '取消超级链接',
fullscreen : '全屏显示',
about : '关于',
print : '打印(Ctrl+P)',
filemanager : '文件空间',
code : '插入程序代码',
map : 'Google地图',
baidumap : '百度地图',
lineheight : '行距',
clearhtml : '清理HTML代码',
pagebreak : '插入分页符',
quickformat : '一键排版',
insertfile : '插入文件',
template : '插入模板',
anchor : '锚点',
yes : '确定',
no : '取消',
close : '关闭',
editImage : '图片属性',
deleteImage : '删除图片',
editFlash : 'Flash属性',
deleteFlash : '删除Flash',
editMedia : '视音频属性',
deleteMedia : '删除视音频',
editLink : '超级链接属性',
deleteLink : '取消超级链接',
editAnchor : '锚点属性',
deleteAnchor : '删除锚点',
tableprop : '表格属性',
tablecellprop : '单元格属性',
tableinsert : '插入表格',
tabledelete : '删除表格',
tablecolinsertleft : '左侧插入列',
tablecolinsertright : '右侧插入列',
tablerowinsertabove : '上方插入行',
tablerowinsertbelow : '下方插入行',
tablerowmerge : '向下合并单元格',
tablecolmerge : '向右合并单元格',
tablerowsplit : '拆分行',
tablecolsplit : '拆分列',
tablecoldelete : '删除列',
tablerowdelete : '删除行',
noColor : '无颜色',
pleaseSelectFile : '请选择文件。',
invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。",
invalidMedia : "请输入有效的URL地址。\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",
invalidWidth : "宽度必须为数字。",
invalidHeight : "高度必须为数字。",
invalidBorder : "边框必须为数字。",
invalidUrl : "请输入有效的URL地址。",
invalidRows : '行数为必选项只允许输入大于0的数字。',
invalidCols : '列数为必选项只允许输入大于0的数字。',
invalidPadding : '边距必须为数字。',
invalidSpacing : '间距必须为数字。',
invalidJson : '服务器发生故障。',
uploadSuccess : '上传成功。',
cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',
copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',
pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。',
ajaxLoading : '加载中,请稍候 ...',
uploadLoading : '上传中,请稍候 ...',
uploadError : '上传错误',
'plainpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
'wordpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
'code.pleaseInput' : '请输入程序代码。',
'link.url' : 'URL',
'link.linkType' : '打开类型',
'link.newWindow' : '新窗口',
'link.selfWindow' : '当前窗口',
'flash.url' : 'URL',
'flash.width' : '宽度',
'flash.height' : '高度',
'flash.upload' : '上传',
'flash.viewServer' : '文件空间',
'media.url' : 'URL',
'media.width' : '宽度',
'media.height' : '高度',
'media.autostart' : '自动播放',
'media.upload' : '上传',
'media.viewServer' : '文件空间',
'image.remoteImage' : '网络图片',
'image.localImage' : '本地上传',
'image.remoteUrl' : '图片地址',
'image.localUrl' : '上传文件',
'image.size' : '图片大小',
'image.width' : '宽',
'image.height' : '高',
'image.resetSize' : '重置大小',
'image.align' : '对齐方式',
'image.defaultAlign' : '默认方式',
'image.leftAlign' : '左对齐',
'image.rightAlign' : '右对齐',
'image.imgTitle' : '图片说明',
'image.upload' : '浏览...',
'image.viewServer' : '图片空间',
'multiimage.uploadDesc' : '允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>',
'multiimage.startUpload' : '开始上传',
'multiimage.clearAll' : '全部清空',
'multiimage.insertAll' : '全部插入',
'multiimage.queueLimitExceeded' : '文件数量超过限制。',
'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。',
'multiimage.zeroByteFile' : '无法上传空文件。',
'multiimage.invalidFiletype' : '文件类型不正确。',
'multiimage.unknownError' : '发生异常,无法上传。',
'multiimage.pending' : '等待上传',
'multiimage.uploadError' : '上传失败',
'filemanager.emptyFolder' : '空文件夹',
'filemanager.moveup' : '移到上一级文件夹',
'filemanager.viewType' : '显示方式:',
'filemanager.viewImage' : '缩略图',
'filemanager.listImage' : '详细信息',
'filemanager.orderType' : '排序方式:',
'filemanager.fileName' : '名称',
'filemanager.fileSize' : '大小',
'filemanager.fileType' : '类型',
'insertfile.url' : 'URL',
'insertfile.title' : '文件说明',
'insertfile.upload' : '上传',
'insertfile.viewServer' : '文件空间',
'table.cells' : '单元格数',
'table.rows' : '行数',
'table.cols' : '列数',
'table.size' : '大小',
'table.width' : '宽度',
'table.height' : '高度',
'table.percent' : '%',
'table.px' : 'px',
'table.space' : '边距间距',
'table.padding' : '边距',
'table.spacing' : '间距',
'table.align' : '对齐方式',
'table.textAlign' : '水平对齐',
'table.verticalAlign' : '垂直对齐',
'table.alignDefault' : '默认',
'table.alignLeft' : '左对齐',
'table.alignCenter' : '居中',
'table.alignRight' : '右对齐',
'table.alignTop' : '顶部',
'table.alignMiddle' : '中部',
'table.alignBottom' : '底部',
'table.alignBaseline' : '基线',
'table.border' : '边框',
'table.borderWidth' : '边框',
'table.borderColor' : '颜色',
'table.backgroundColor' : '背景颜色',
'map.address' : '地址: ',
'map.search' : '搜索',
'baidumap.address' : '地址: ',
'baidumap.search' : '搜索',
'baidumap.insertDynamicMap' : '插入动态地图',
'anchor.name' : '锚点名称',
'formatblock.formatBlock' : {
h1 : '标题 1',
h2 : '标题 2',
h3 : '标题 3',
h4 : '标题 4',
p : '正 文'
},
'fontname.fontName' : {
'SimSun' : '宋体',
'NSimSun' : '新宋体',
'FangSong_GB2312' : '仿宋_GB2312',
'KaiTi_GB2312' : '楷体_GB2312',
'SimHei' : '黑体',
'Microsoft YaHei' : '微软雅黑',
'Arial' : 'Arial',
'Arial Black' : 'Arial Black',
'Times New Roman' : 'Times New Roman',
'Courier New' : 'Courier New',
'Tahoma' : 'Tahoma',
'Verdana' : 'Verdana'
},
'lineheight.lineHeight' : [
{'1' : '单倍行距'},
{'1.5' : '1.5倍行距'},
{'2' : '2倍行距'},
{'2.5' : '2.5倍行距'},
{'3' : '3倍行距'}
],
'template.selectTemplate' : '可选模板',
'template.replaceContent' : '替换当前内容',
'template.fileList' : {
'1.html' : '图片和文字',
'2.html' : '表格',
'3.html' : '项目编号'
}
}, 'zh_CN');

View File

@@ -0,0 +1,21 @@
/*时间选择器插件样式*/
.rockdatepicker{z-index:9999;box-shadow:2px 2px 2px #cccccc;border:1px #cccccc solid; background-color:#ffffff; left:0px; top:0px; padding:0px}
.rockdatepicker td{cursor:pointer}
.rockdatepicker td.td00:hover,.rockdatepicker td.td01{background:#dedede}
.rockdatepicker_table td{border:1px #eeeeee solid;}
.rockdatepicker .a{cursor:pointer;border:none;padding:2px 5px;color:#555555}
.rockdatepicker .a:hover{color:red}
.rockdatepicker_span{padding:1px 3px;margin:0px 2px;}
.rockdatepicker_fudong{ position:absolute;padding:2px;border:1px #cccccc solid; background-color:#f8f8f8;z-index:2;box-shadow:2px 2px 2px #cccccc;overflow:auto}
.rockdatepicker_fudong div{padding:0px 5px;cursor:pointer;height:24px;overflow:hidden;line-height:24px}
.rockdatepicker_fudong div:hover{background:#cccccc}
.rockdatepicker_fudong .div01{background:#aaaaaa;color:white}
.rockdatepicker .a02:link,.rockdatepicker .a02:visited{padding:2px 5px;color:#555555}
.rockdatepicker .a02:hover{color:#000000;background:#dddddd}
.rockdatepicker .a03:link,.rockdatepicker .a03:visited{padding:2px 5px;color:#000000;background:#dddddd}
.rockdatepicker .not:link,.rockdatepicker .not:visited,.rockdatepicker .not{color:#cccccc}
.rockdatepicker .not:hover{background:#ffffff}

150
mode/plugin/jquery-edittable.js vendored Normal file
View File

@@ -0,0 +1,150 @@
/**
edittable 编辑单元格
caratenamechenxihu
caratetime214-04-06 21:40:00
email:qqqq2900@126.com
homepage:www.xh829.com
*/
(function ($) {
function edittable(element, options){
var obj = element;
var can = options;
var rand = ''+parseInt(Math.random()*99999)+'';
var me = this;
var timeci = 0;
this.rand = rand;
//初始化
this.init = function(){
var o = obj.find('[edittable]');
var len = o.length;
for(var i=0;i<len;i++){
$(o[i])[can.trigger](function(){
me.changcell($(this));
});
}
};
this.changcell = function(o){
var ntml = o.html();
if(ntml.indexOf('input')>=0 || ntml.indexOf('INPUT')>=0 || ntml.indexOf('SELECT')>=0 || ntml.indexOf('select')>=0)return false;
timeci++;
var fid = o.attr('edittable');//字段名
var ocaa= can.data[fid];
var xty = 'text';
if(ocaa)if(ocaa.xtype)xty = ocaa.xtype;
var val = o.text(),
nid = 'edittable_'+rand+'_'+timeci+'',
off = o.offset(),
wid = o.width(),
canslw = 'fields="'+fid+'" id="'+nid+'" changeid="'+js.changeid+'"';
s='',
othval = ntml.replace(val,'');
if(xty == 'text'){
s+= '<input style="width:'+(wid-10)+'px;line-height:18px;height:25px;border:1px #888888 solid;padding:0px 3px" '+canslw+'>';
o.html(s);
var o1 = $('#'+nid+'');
o1.focus();
o1.val(val);
o1.blur(function(){
me.textblur($(this),val,o,othval);
});
}
if(xty == 'select'){
var da = ocaa.store;
s+= '<select style="width:'+wid+'px" '+canslw+'>';
for(var i=0; i<da.length; i++){
var v1 = '',v2 = '',v = da[i];
if(typeof(v)!='object'){
v1 = v;
v2 = v;
}else{
var oi = 0;
if(v[0]){
v1 = v[0];
v2 = v[0];
if(v[1])v2=v[1];
}else{
v1 = v.value;
v2 = v.name;
}
}
s+='<option '+((v1==val)?'selected':'')+' value="'+v1+'">'+v2+'</option>';
}
s+='</select>';
o.html(s);
var o1 = $('#'+nid+'');
o1.focus();
o1.blur(function(){
me.textblur($(this),val,o);
});
}
if(xty == 'checkbox'){
var che = '',
dis = ocaa.display,
cval= 0;
for(var i=0;i<dis.length;i++){
if(dis[i]==strreplace(val)){
cval = i;
}
}
if(cval==1)che='checked';
s+= '<input type="checkbox" '+che+' '+canslw+'>'+ocaa.label+'';
o.html(s);
var o1 = $('#'+nid+'');
o1.focus();
o1.blur(function(){
me.checkboxblur(this,cval,o);
});
}
can.changcell(o);
};
this.checkboxblur = function(o1,oval,oba){
var nval = '0';
if(o1.checked)nval='1';
var o = $(o1);
var fields = o.attr('fields');
this.savedata(o,nval,oval);
var ocaa= can.data[fields];
var s = '<font color="'+ocaa.displaycolor[nval]+'">'+ocaa.display[nval]+'</font>';
oba.html(s);
};
//保存数据
this.savedata = function(o,nval,oval){
if(nval == oval)return;
var canid = o.attr('changeid');
var fields = o.attr('fields');
var saveurl = can.saveurl;
can.savedata(saveurl,{id:canid,fields:fields,newvalue:nval,table:can.table,keyfields:can.keyfields},function(da){
});
}
this.textblur = function(o,oval,oba,ovs){
var nval = o.val();
if(!ovs)ovs = '';
o.remove();
this.savedata(o,nval,oval);
oba.html(ovs+nval);
}
}
$.fn.edittable = function(options){
var defaultVal = {
trigger:'dblclick', //默认双击编辑
data:{},
keyfields:'id',//主键字段名
saveurl:js.getajaxurl('saveeditable','user','system'), //保存表格的地址
savedata:function(url,das,sboole){
$.post(url,das,sboole);
},
changcell:function(){}
};
var can = $.extend({}, defaultVal, options);
var funcls = new edittable($(this), can);
funcls.init();
return funcls;
};
})(jQuery);

306
mode/plugin/jquery-rockbase.js vendored Normal file
View File

@@ -0,0 +1,306 @@
/**
rockbase 基础信息
*/
var backautocloseupload = {};
(function ($) {
function rockupload(element, options){
var obj = element;
var can = options;
var me = this,
rand= 'sdh_'+js.getrand();
this.init = function(){
var s = '<div class="form-control" id="view_'+rand+'" style="height:'+can.height+'px;overflow:auto;padding:0px"></div><div><a onclick="return false" id="add_'+rand+'" href="javascript:"><i class="icon-plus"></i> '+can.uploadtext+'</a>&nbsp;<span id="count_'+rand+'"></span></div><input type="hidden" id="fileid_'+rand+'" name="'+can.name+'">';
obj.html(s);
$('#add_'+rand+'').click(function(){
me._upload();
});
this.loadfile();
};
this._upload= function(){
if(!can.addbool)return;
js.tanbody('uploadaction','上传文件',550,250,{
html:'<iframe src="" name="uploadiframea" width="100%" height="250px" frameborder="0"></iframe>',bbar:'none'
});
var cans=can.uploadparams;
cans.showid=rand;
var url= js.upload('',cans,'url');
uploadiframea.location.href=url;
return false;
};
this.loadfile = function(mtype, mid){
if(!mtype)mtype=can.mtype;
if(!mid)mid=can.mid;
if(!mtype || !mid || mid==0)return;
var url = js.getajaxurl('getfile','upload','public',{mtype:mtype,mid:mid});
var o = $('#view_'+rand+'');
o.html('<div style="padding:10px"><img src="images/loading.gif" align="absmiddle">&nbsp;加载中...</div>');
$.get(url, function(da){
o.html('');
var a = js.decode(da);
js.downupshow(a,rand);
});
};
this.removedel = function(){
$('#view_'+rand+'').find("temp='dela'").remove();
};
this.idAdd = function(bo){
can.addbool = bo;
};
};
$.fn.rockupload = function(options){
var defaultVal = {
name:'fileid',uploadtext:'添加文件',mtype:'',mid:0,height:80,delbool:true,addbool:true,
uploadparams:{}
};
var can = $.extend({}, defaultVal, options);
var clsa = new rockupload($(this), can);
clsa.init();
return clsa;
};
//搜索工具条
function rocksearch(element, options){
var obj = element;
var can = options;
var me = this,
rand= js.getrand();
this.luojiarr = [{
name:'包含',value:'LIKE'
},{
name:'不包含',value:'NOT LIKE'
},{
name:'等于',value:'='
},{
name:'不等于',value:'!='
},{
name:'大于',value:'>'
},{
name:'大于等于',value:'>='
},{
name:'小于',value:'<'
},{
name:'小于等于',value:'<='
}];
this.init = function(){
if(can.listtable){
this.createlisttable();
return;
}
var s = '';
s = '<div class="input-group" style="width:'+can.width+'px;">'+
'<span class="input-group-btn">'+
' <a type="button" id="fields_'+rand+'" class="btn btn-default">字段 <span class="caret"></span></a>'+
' <a type="button" id="luoji_'+rand+'" class="btn btn-default">包含 <span class="caret"></span></a>'+
'</span>'+
'<input class="form-control" id="key_'+rand+'" placeholder="关键词">'+
'<input class="form-control" style="display:none" readonly id="date_'+rand+'">'+
'<span style="display:none" id="selectdivshoa_'+rand+'"></span>'+
'<span class="input-group-btn">'+
' <button class="btn btn-default" style="display:none" id="datebtn_'+rand+'" type="button"><i class="icon-calendar"></i></button>'+
' <button class="btn btn-default" id="soubtn_'+rand+'" type="button"><i class="icon-search"></i> 查询 </button>';
s+=' <button class="btn btn-default" id="soubtndown_'+rand+'" type="button"><i class="icon-caret-down"></i></button>';
s+=' </span>';
s+='</div>';
obj.html(s);
$('#soubtn_'+rand+'').click(function(){
me._search(false);
});
$('#fields_'+rand+'').rockmenu({
data:can.columns,top:35,width:150,
itemsclick:function(d, oi){
me.changefields(oi);
}
});
$('#luoji_'+rand+'').rockmenu({
data:this.luojiarr,top:35,width:100,
itemsclick:function(d){
me.changeluoji(d);
}
});
var ds = [{name:'结果中查询',oi:0},{name:'高级查询...',oi:1}];
if(!can.highsearch){
ds = [{name:'(',val:'('},{name:')',val:')'},{name:'并且',val:'and'},{name:'或者',val:'or'}];
$('#soubtn_'+rand+'').html('<i class="icon-plus"></i>');
}
$('#soubtndown_'+rand+'').rockmenu({
data:ds,top:35,width:100,
itemsclick:function(d){
if(can.highsearch){
if(d.oi==0)me._search(true);
if(d.oi==1)me._highsearch();
}else{
me._showhighsearch(d.val, d.name, 0);
}
}
});
this.dateobj = $('#datebtn_'+rand+'').rockdatepicker({inputid:'date_'+rand+''});
this.selobj = $('#selectdivshoa_'+rand+'').bootstigger({
data:[],valuefields:'id',clearbool:true
});
this.changefields(0);
this.changeluoji(this.luojiarr[0]);
};
this.oldkeysou = '';
this._search = function(bo){
var awhere = '',oper,key,fields,type;
oper = this.luojiobj.value;
key = $('#key_'+rand+'').val();
arr = this.fieldsobj;
fields= arr.dataIndex;
type = arr.atype;
if(!type)type='';
if(type.indexOf('date')>-1)key = this.dateobj.getValue();
if(type=='select')key = this.selobj.getValue();;
var qz=arr.qz;
if(isempt(qz))qz='';
var keyss = key+'',
keyss1 = key+'';
if(type=='select')keyss1=this.selobj.getRawValue();
if(oper.indexOf('LIKE')>=0)key='%'+key+'%';
key="[F]"+key+"[F]";
if(can.highsearch)awhere='[K][A]';
awhere+="[K]"+qz+"`"+fields+"`[K]"+oper+"[K]"+key+"[K]";
if(arr.searchtpl){
awhere = '[K][A][K]'+arr.searchtpl.replace('?0', oper);
awhere = awhere.replace('?1', key);
}
if((oper.indexOf('LIKE')>=0 || oper=='=') && keyss =='')awhere='';
if(bo)awhere = this.oldkeysou+awhere;
this.oldkeysou = awhere;
var awhes = ''+arr.name+' '+this.luojiobj.name+' '+keyss1+'';
can.backcall(awhere, awhes, this);
return awhere;
};
this._highsearchstr = '';
this._highsearch = function(){
var s = '<div><div id="highsearch_list_tools"></div><div id="highsearch_list" style="height:180px;overflow:auto;">'+this._highsearchstr+'</div></div>';
js.tanbody('highsearch','高级查询',450, 250,{html:s,btn:[{text:'查询',icons:'search'}]});
var soutools=$('#highsearch_list_tools').rocksearch({
columns:can.columns,width:448,highsearch:false,
backcall:function(s, s1){
if(s!='')me._showhighsearch(s, '&nbsp; &nbsp; '+s1, 1);
}
});
$('#highsearch_btn0').click(function(){
me._highsearchok();
});
};
this._highsearchok = function(){
var o = $('#highsearch_list');
this._highsearchstr = o.html();
var o1 = o.find('font'),s= '',i,v;
for(i=0; i<o1.length; i++){
v = o1[i].innerHTML;
v = v.replace('&lt;','<');
v = v.replace('&gt;','>');
s+=''+v;
}
can.backcall(s);
js.tanclose('highsearch');
};
this._showhighsearch = function(s, s1, lx){
var o = $('#highsearch_list');
var h = '<div ondblclick="$(this).remove()" onmouseover="this.style.backgroundColor=\'#f1f1f1\'" onmouseout="this.style.backgroundColor=\'\'" style="padding:8px 10px;border-bottom:1px #eeeeee solid"><span>'+s1+'</span><font style="display:none">'+s+'</font></div>';
if(lx==1){
var las = o.find('font:last').html(),
lass= ',(,),and,or,';
if(lass.indexOf(','+las+',')<0){
this._showhighsearch('and','并且',0);
}
}
o.append(h);
this._highsearchstr = o.html();
};
this.changefields = function(oi){
var d = can.columns[oi];
$('#fields_'+rand+'').html(''+d.name+' <span class="caret"></span>');
this.fieldsobj = d;
if(!d.atype)d.atype='';
if(d.atype.indexOf('date')>-1){
$('#key_'+rand+'').hide();
this.selobj.hide();
$('#date_'+rand+'').show();
$('#datebtn_'+rand+'').show();
this.dateobj.setView(d.atype);
}else if(d.atype=='select'){
$('#key_'+rand+'').hide();
this.selobj.show();
$('#date_'+rand+'').hide();
$('#datebtn_'+rand+'').hide();
var sdv = d.valuefields;
if(!sdv)sdv='value';
this.selobj.setData(d.data,d.displayfields, sdv);
this.selobj.setValue('');
this.changeluoji(this.luojiarr[2]);
}else{
this.selobj.hide();
$('#key_'+rand+'').show();
$('#date_'+rand+'').hide();
$('#datebtn_'+rand+'').hide();
}
};
this.changeluoji = function(d){
$('#luoji_'+rand+'').html(''+d.name+' <span class="caret"></span>');
this.luojiobj = d;
};
this.setData = function(fi, da){
var i,
a = can.columns;
for(i=0; i<a.length; i++){
if(a[i].dataIndex==fi){
can.columns[i].data = da;
break;
}
}
};
this.createlisttable = function(){
var s = '';
s='<table><tr>';
var i,a = can.columns;
for(i=0; i<a.length; i++){
s+='<td>';
if(a[i].atype=='select'){
}else{
s+='<input class="form-control" name="'+a[i].dataIndex+'" placeholder="'+a[i].name+'" style="width:100px">';
}
s+='</td>';
}
s+='</tr></table>';
obj.html(s);
}
};
$.fn.rocksearch = function(options){
var defaultVal = {
columns:[{
}],
highsearch:true,
listtable:false,
width:500,backcall:function(){}
};
var can = $.extend({}, defaultVal, options);
var clsa = new rocksearch($(this), can);
clsa.init();
return clsa;
};
})(jQuery);

View File

@@ -0,0 +1,268 @@
/**
* rockdatepicker 时间选择插件-手机版本使用
* caratename雨中磐石(rainrock)
* caratetime2017-06-19 21:40:00
* email:admin@rockoa.com
* homepage:www.rockoa.com
*/
(function ($) {
js.onchangedate = function(){}; //选择时间回调
function rockdatepicker_mobile(options){
var me = this;
this.marr = [31,28,31,30,31,30,31,31,30,31,30,31];
this.weekarr= ['日','一','二','三','四','五','六'];
//初始化
this.init = function(){
for(var i in options)this[i]=options[i];
this.inputarr = ['year','month','day','hour','miners','miao'];
this.inputkey = ['Y','m','d','H','i','s'];
this.initdevvalue();
this.showtoday();
this.setcontent();
};
this.initdevvalue = function(){
if(this.view=='date')this.format='Y-m-d';
if(this.view=='year')this.format='Y';
if(this.view=='month')this.format='Y-m';
if(this.view=='datetime')this.format='Y-m-d H:i:s';
if(this.view=='time')this.format='H:i:s';
if(this.formats)this.format = this.formats;
var lx = this.format;
if(lx=='H:i:00'||lx=='H:i'||lx=='i:s')this.view='time';
var minv = this.mindate;
if(isempt(minv))minv= '1930-01-01 00:00:00';//最小时间
this.mindate = minv;
var maxv = this.maxdate;
if(isempt(maxv))maxv= '2050-12-31 23:59:59';//最大时间
this.maxdate = maxv;
this.max = this.shijienges(this.maxdate)
this.min = this.shijienges(this.mindate);
};
this.showtoday = function(){
var val = this.value;
if(this.inputid!='')val=$('#'+this.inputid+'').val();
if(this.inputobj)val=this.inputobj.value;
if(this.view.indexOf('date')>-1 && val){
if(!this.isdate(val))val = js.now('now');
}
if(this.view=='time'){
if(val==''){val=js.now('now');}else{val=js.now('Y-m-d')+' '+val;}
}
if(val=='')val = js.now(this.view=='datetime' ? 'Y-m-d H:i:00' : this.format, val);
this.nowtext= val;
this.now = this.shijienges(val);
};
this.isdate = function(sj){
if(!sj)return false;
var bo = /^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}/.test(sj);
return bo;
};
this.setcontent=function(){
var h = $('body,html').height();
if(h<winHb())h=winHb();
var s = '<div pickermobile="qx" id="pickermobile_div0" style="background:rgba(0,0,0,0.5);width:100%;height:'+h+'px;z-index:9;position:absolute;text-align:center;left:0px;top:0px">';
var inst = 'background:none;border:none;padding:10px 8px;color:#1389D3;font-size:20px';
s+='</div>';
s+='<div id="pickermobile_div1" style="width:100%;background:white;position:fixed;top:30%;z-index:10;">';
s+='<div style="margin:5px;"><table width="100%"><tr>';
if(this.view != 'time'){
s+=' <td style="padding:5px" align="center">';
s+=' <div><input type="button" value="" pickermobile="y1" style="'+inst+'"></div>';
s+=' <div><select id="pickermobile_input_year" style="width:100%;height:30px">'+this.selectoption(this.min.Y,this.max.Y,this.now.Y)+'</select></div>';
s+=' <div><input type="button" value="" pickermobile="y2" style="'+inst+'"></div>';
s+=' </td>';
s+=' <td style="padding:5px" align="center">';
s+=' <div><input type="button" value="" pickermobile="m1" style="'+inst+'"></div>';
s+=' <div><select id="pickermobile_input_month" style="width:100%;height:30px">'+this.selectoption(1,12,this.now.m)+'</select></div>';
s+=' <div><input type="button" value="" pickermobile="m2" style="'+inst+'"></div>';
s+=' </td>';
s+=' <td style="padding:5px" align="center">';
s+=' <div><input type="button" value="" pickermobile="d1" style="'+inst+'"></div>';
s+=' <div><select id="pickermobile_input_day" style="width:100%;height:30px">'+this.selectoption(1,31,this.now.d)+'</select></div>';
s+=' <div><input type="button" value="" pickermobile="d2" style="'+inst+'"></div>';
s+=' </td>';
s+=' <td>日</td>';
}
if(this.view=='datetime' || this.view=='time'){
s+=' <td style="padding:5px" align="center">';
s+=' <div><input type="button" value="" pickermobile="h1" style="'+inst+'"></div>';
s+=' <div><select id="pickermobile_input_hour" style="width:100%;height:30px">'+this.selectoption(0,23,this.now.H)+'</select></div>';
s+=' <div><input type="button" value="" pickermobile="h2" style="'+inst+'"></div>';
s+=' </td>';
s+=' <td>:</td>';
s+=' <td style="padding:5px" align="center">';
s+=' <div><input type="button" value="" pickermobile="i1" style="'+inst+'"></div>';
s+=' <div><select id="pickermobile_input_miners" style="width:100%;height:30px">'+this.selectoption(0,59,this.now.i)+'</select></div>';
s+=' <div><input type="button" value="" pickermobile="i2" style="'+inst+'"></div>';
s+=' </td>';
}
s+='</tr>';
s+='</table></div>';
s+='<div style="padding-bottom:20px"><table width="100%"><tr><td width="25%" align="center"><input type="button" value="清空" pickermobile="qk" style="background:none;border:none;padding:5px 10px;color:#888888"></td><td width="25%" align="center"><input type="button" value="现在" pickermobile="now" style="background:none;border:none;padding:5px 10px;color:#1389D3"></td><td width="25%" align="center"><input type="button" value="确定" pickermobile="ok" style="background:none;border:none;padding:5px 10px;color:#1389D3"></td><td width="25%" align="center"><input type="button" value="取消" pickermobile="qx" style="background:none;border:none;padding:5px 10px;color:#888888"></td></tr></table></div>';
s+='</div>';
$('body').append(s);
$('[pickermobile]').click(function(){
var lx = $(this).attr('pickermobile');
me.clickbtn(lx);
});
this._changeday();
$('#pickermobile_input_year').change(function(){
me._changeday();
});
$('#pickermobile_input_month').change(function(){
me._changeday();
});
};
this.shijienges = function(sj){
var Y=2017,m=1,d=17,H=0,i=0,s=0,ss1,ss2,ss3,total=0;
ss1 = sj.split(' ');
ss2 = ss1[0].split('-');
Y = parseFloat(ss2[0]);
if(ss2.length>1)m= parseFloat(ss2[1]);
if(ss2.length>2)d= parseFloat(ss2[2]);
if(ss1[1]){
ss3 = ss1[1].split(':');
H = parseFloat(ss3[0]);
i = parseFloat(ss3[1]);
if(ss3.length>2)s= parseFloat(ss3[2]);
}
total = parseFloat(''+Y+''+this.sa(m)+''+this.sa(d)+''+this.sa(H)+''+this.sa(i)+''+this.sa(s)+'');
return {Y:Y,m:m,d:d,H:H,i:i,s:s,total:total};
};
this._changeday=function(){
var o = get('pickermobile_input_day');
if(!o)return;
var Y = parseFloat(get('pickermobile_input_year').value);
var m = parseFloat(get('pickermobile_input_month').value);
var def= parseFloat(o.value);
var max = me.marr[m-1];//这个月最大天数
if(Y%4==0&&m==2)max=29;//判断是不是轮年
if(def>max)def=max;
o.length = 0;
var oi;
for(var i=1;i<=max;i++){
oi = this.sa(i);
o.options.add(new Option(oi,oi));
}
o.value = this.sa(def);
};
this.cancal=function(){
$('#pickermobile_div0').remove();
$('#pickermobile_div1').remove();
};
this.clickbtn=function(lx){
if(lx=='qx')this.cancal();
if(lx=='y1'||lx=='y2')this.addjian('year', lx, this.min.Y,this.max.Y);
if(lx=='m1'||lx=='m2')this.addjian('month', lx, 1,12);
if(lx=='d1'||lx=='d2')this.addjian('day', lx, 1,31);
if(lx=='h1'||lx=='h2')this.addjian('hour', lx, 0,23);
if(lx=='i1'||lx=='i2')this.addjian('miners', lx, 0,59);
if(lx=='now')this.getnow();
if(lx=='ok')this.queding();
if(lx=='qk')this.clearo();
};
this.addjian=function(inp, lx,min,max){
var jg =1;if(lx.indexOf('2')>0)jg=-1;
var o = get('pickermobile_input_'+inp+'');
if(!o)return;
var ye = parseFloat(o.value);
var jgs= ye+jg;
if(jgs<min)jgs=max;
if(jgs>max)jgs=min;
o.value = this.sa(jgs);
if(inp=='year'||inp=='month')this._changeday();
};
this.queding=function(){
var Y=2017,m=1,d=17,H=16,i=26,s=0,o;
var val = this.format;
o = get('pickermobile_input_year');if(o)Y=o.value;
o = get('pickermobile_input_month');if(o)m=o.value;
o = get('pickermobile_input_day');if(o)d=o.value;
o = get('pickermobile_input_hour');if(o)H=o.value;
o = get('pickermobile_input_miners');if(o)i=o.value;
val = val.replace('Y', this.sa(Y));
val = val.replace('m', this.sa(m));
val = val.replace('d', this.sa(d));
val = val.replace('H', this.sa(H));
val = val.replace('i', this.sa(i));
val = val.replace('s', this.sa(s));
var nobj = false;
if(this.inputid&&get(this.inputid)){
nobj = get(this.inputid);
}
if(this.inputobj){
nobj = this.inputobj;
}
if(nobj){
nobj.value=val;
nobj.focus();
js.onchangedate(nobj.name, nobj, val, this);
}
this.cancal();
};
this.clearo=function(){
var val='',nobj = false;
if(this.inputid&&get(this.inputid)){
nobj = get(this.inputid);
}
if(this.inputobj){
nobj = this.inputobj;
}
if(nobj){
nobj.value=val;
nobj.focus();
js.onchangedate(nobj.name, nobj, val, this);
}
this.cancal();
};
this.sa = function(v){
v = parseFloat(v);
var v1 = ''+v+'';
if(v<10)v1='0'+v+'';
return v1;
};
this.getnow=function(){
var now = this.shijienges(js.now('now')),mon= this.inputarr,mons= this.inputkey,i,o;
for(i=0;i<mon.length;i++){
o = get('pickermobile_input_'+mon[i]+'');
if(o)o.value = this.sa(now[mons[i]]);
}
this.queding();
};
this.selectoption=function(min,max,dev){
var s='',oi,sel;
for(var i=min;i<=max;i++){
oi = this.sa(i);
sel= (dev && oi==this.sa(dev))?'selected':'';
s='<option '+sel+' value="'+oi+'">'+oi+'</option>'+s+'';
}
return s;
}
};
$.rockdatepicker_mobile = function(options){
var defaultVal = {
itemsclick:function(){},onshow:function(){},
inputid:'',
value:'',inputobj:false,
format:'Y-m-d',view:'datetime'
};
var can = $.extend({}, defaultVal, options);
var aobj = new rockdatepicker_mobile(can);
aobj.init();
return aobj;
};
})(jQuery);

652
mode/plugin/jquery-rockdatepicker.js vendored Normal file
View File

@@ -0,0 +1,652 @@
/**
rockdatepicker 时间选择插件
caratenamechenxihu
caratetime2014-05-13 21:40:00
email:qqqq2900@126.com
homepage:www.xh829.com
*/
(function ($) {
js.onchangedate = function(){}; //选择时间回调
function rockdatepicker(elet, options){
var obj = $(elet);
var can = options;
var rand = js.getrand();
var me = this;
var timeas = null;
this.rand = rand;
this.nY = 2014;//当前月份
this.nm = 5;
this.marr = [31,28,31,30,31,30,31,31,30,31,30,31];
this.weekarr= ['日','一','二','三','四','五','六'];
//初始化
this.init = function(){
this.initdevvalue();
obj[can.trigger](function(){
me.setcontent();
return false;
});
if(can.initshow){
me.setcontent();
};
obj.attr('rockdatepickerbool','true');
if(!can.editable)elet.readOnly =true;
};
this.initdevvalue = function(){
if(can.view=='date')can.format='Y-m-d';
if(can.view=='year')can.format='Y';
if(can.view=='month')can.format='Y-m';
if(can.view=='datetime')can.format='Y-m-d H:i:s';
if(can.view=='time')can.format='H:i:s';
if(can.formats)can.format = can.formats;
var lx = can.format;
if(lx=='H:i:00'||lx=='H:i'||lx=='i:s')can.view='time';
var minv = can.mindate;
if(isempt(minv))minv= obj.attr('mindate');
if(isempt(minv))minv= '1930-01-01 00:00:00';//最小时间
can.mindate = minv;
var maxv = can.maxdate;
if(isempt(maxv))maxv= obj.attr('maxdate');
if(isempt(maxv))maxv= '2050-12-31 23:59:59';//最大时间
can.maxdate = maxv;
this.max = this.shijienges(can.maxdate)
this.min = this.shijienges(can.mindate);
};
this.showtoday = function(){
this.todatetext = this.formdt('now');
this.todate = this.shijienges(this.todatetext);
var val = obj.val();
if(can.inputid!='')val=$('#'+can.inputid+'').val();
if(can.view.indexOf('date')>-1 && val){
if(!this.isdate(val))val = this.todatetext;
}
if(can.view=='time'){
if(val==''){val=js.now('now');}else{val=js.now('Y-m-d')+' '+val;}
}
if(val=='')val = this.formdt(can.view=='datetime' ? 'Y-m-d H:i:00' : can.format, val);
this.nowtext= val;
this.now = this.shijienges(val);
};
this.shijienges = function(sj){
var Y=2014,m=1,d=1,H=0,i=0,s=0,ss1,ss2,ss3,total=0;
ss1 = sj.split(' ');
ss2 = ss1[0].split('-');
Y = parseFloat(ss2[0]);
if(ss2.length>1)m= parseFloat(ss2[1]);
if(ss2.length>2)d= parseFloat(ss2[2]);
if(ss1[1]){
ss3 = ss1[1].split(':');
H = parseFloat(ss3[0]);
i = parseFloat(ss3[1]);
if(ss3.length>2)s= parseFloat(ss3[2]);
}
total = parseFloat(''+Y+''+this.sa(m)+''+this.sa(d)+''+this.sa(H)+''+this.sa(i)+''+this.sa(s)+'');
return {Y:Y,m:m,d:d,H:H,i:i,s:s,total:total};
};
this.sa = function(v){
v = parseFloat(v);
var v1 = ''+v+'';
if(v<10)v1='0'+v+'';
return v1;
};
this.createbasic = function(w, h){
var s= '';
s+= '<div class="rockdatepicker" id="rockdatepicker_'+rand+'" style="width:'+w+'px;height:'+h+'px;overflow:hidden;position:absolute;display:none;"></div>';
$('body').prepend(s);
var oac = $('#rockdatepicker_'+rand+'');
oac.show();
this.setweizhi();
setTimeout(function(){js.addbody(rand, 'remove', 'rockdatepicker_'+rand+''); },100);
return oac;
};
this.setView = function(vis){
can.view = vis;
this.initdevvalue();
};
this.setcontent = function(){
this.showtoday();
$("div[class='rockdatepicker']").remove();
if(can.view =='month' || can.format=='Y-m'){
this.createmontview(1);
return false;
}
if(can.view =='year' || can.format=='Y'){
this.createmontview(0);
return false;
}
var s= '',oi=0,w=270,h=278;
if(can.view!='time'){
s+=' <div style="background:#eeeeee;height:30px;overflow:hidden">';
s+=' <table border="0" width="100%" cellspacing="0" cellpadding="0"><tr>';
s+=' <td style="padding:0px 4px" class="td00" tdaddclick="-y" title="上一年">〈<td>';
s+=' <td height="30" style="padding:0px 5px" nowrap><span class="rockdatepicker_span" id="rockdatepicker_year'+rand+'">2014</span>年<td>';
s+=' <td style="padding:0px 4px" class="td00" tdaddclick="y" title="下一年">〉<td>';
s+=' <td style="padding:0px 2px"><td>';
s+=' <td style="padding:0px 4px" class="td00" tdaddclick="-m" title="上个月">〈<td>';
s+=' <td height="30" style="padding:0px 5px" nowrap><span lass="rockdatepicker_span" id="rockdatepicker_month'+rand+'">06</span>月<td>';
s+=' <td style="padding:0px 4px" class="td00" tdaddclick="m" title="下个月">〉<td>';
s+=' <td style="padding:0px 4px" width="30%">&nbsp;<td>';
s+=' <td style="padding:0px 4px" class="td00" nowrap tdaddclick="today" title="当月">&nbsp;当月&nbsp;<td>';
s+=' </tr></table>';
s+=' </div>';
s+=' <div style="height:188px;overflow:hidden" id="rockdatepicker_table'+rand+'" >';
s+=' <table border="0" class="rockdatepicker_table" style="border-collapse:collapse" width="100%" cellspacing="0" cellpadding="0">';
s+=' <tr height="30" bgcolor="#dedede">';
for(var d=0; d<7; d++){
s+='<td align="center" width="14.28%">'+this.weekarr[d]+'</td>';
}
s+=' </tr>';
for(var r=1; r<=6; r++){
s+='<tr height="26">';
for(var d=1; d<=7; d++){
oi++;
s+='<td align="center" xu="'+oi+'" temp="nr">'+oi+'</td>';
}
s+='</tr>';
}
s+=' </table>';
s+=' </div>';
}else{
s+='<div id="rockdatepicker_table'+rand+'" style="height:140px;overflow:hidden">';
s+='</div>';
w = 220;h=200;
}
s+=' <div style="line-height:30px">&nbsp; <font color="#888888">选择:</font><span id="rockdatepicker_span'+rand+'"></span>';
s+=' <span><input min="0" max="23" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_h'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:1px #cccccc solid;background:none" value="00" maxlength="2"></span>:';
s+=' <span><input min="0" max="59" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_i'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:1px #cccccc solid;background:none" value="00" maxlength="2"></span>:';
s+=' <span><input min="0" max="59" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_s'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:1px #cccccc solid;background:none" value="00" maxlength="2"></span>';
s+= '</div>';
s+=' <div style="height:30px;overflow:hidden;text-align:right;background:#eeeeee;line-height:28px">';
s+=' <a href="javascript:;" class="a" id="rockdatepicker_clear'+rand+'">清空</a>&nbsp; ';
s+=' <a href="javascript:;" class="a" id="rockdatepicker_now'+rand+'">现在</a>&nbsp; ';
s+=' <a href="javascript:;" class="a" id="rockdatepicker_queding'+rand+'">确定</a>&nbsp; ';
s+=' <a href="javascript:;" class="a" id="rockdatepicker_close'+rand+'">关闭</a>&nbsp; ';
s+=' </div>';
var oac = this.createbasic(w,h);
oac.html(s);
this.objtd = oac.find("td[temp='nr']");
oac.find("td[tdaddclick]").click(function(){
me.changedatec($(this));
});
this.objtd.click(function(){
me.tdclick(this);
});
this.setcontentinit();
$('#rockdatepicker_close'+rand+'').click(function(){
me.hidemenu();
});
$('#rockdatepicker_queding'+rand+'').click(function(){
me.queding();
});
$('#rockdatepicker_now'+rand+'').click(function(){
me.quenow();
});
$('#rockdatepicker_clear'+rand+'').click(function(){
me.queclear();
});
$('#rockdatepicker_table'+rand+'').dblclick(function(){
me.queding();
});
$('#rockdatepicker_table'+rand+'').mouseover(function(){
me.hidefudong();
});
if(can.view!='time'){
this.setcontentinit();
this.addcale(this.now.Y, this.now.m);
}else{
$('#rockdatepicker_span'+rand+'').hide();
}
this.shetispannvel(0);
};
this.shetispannvel = function(lx){
$('#rockdatepicker_span'+rand+'').html(''+this.now.Y+'-'+this.sa(this.now.m)+'-'+this.sa(this.now.d)+'');
var ho = $('#rockdatepicker_input_h'+rand+'');
var io = $('#rockdatepicker_input_i'+rand+'');
var so = $('#rockdatepicker_input_s'+rand+'');
ho.val(this.sa(this.now.H));
io.val(this.sa(this.now.i));
so.val(this.sa(this.now.s));
if(can.format.indexOf('H')<0){
get('rockdatepicker_input_h'+rand+'').disabled=true;
}else{
if(lx==0)this.shetispannvelbulr('h');
}
if(can.format.indexOf('i')<0){
get('rockdatepicker_input_i'+rand+'').disabled=true;
}else{
if(lx==0)this.shetispannvelbulr('i');
}
if(can.format.indexOf('s')<0){
get('rockdatepicker_input_s'+rand+'').disabled=true;
}else{
if(lx==0)this.shetispannvelbulr('s');
}
};
this.shetispannvelbulr = function(lx){
var o = $('#rockdatepicker_input_'+lx+''+rand+'');
o.blur(function(){
me.blurnum(this);
});
o.focus(function(){
me.foucsnum(this);
});
};
this.setcontentinit = function(){
$('#rockdatepicker_year'+rand+'').parent().click(function(){
me.changeyear(this);
});
$('#rockdatepicker_month'+rand+'').parent().click(function(){
me.changemonth(this);
});
};
//选择年的
this.changeyear=function(o1){
this.hidefudong();
var o = $(o1);
var off = o.offset();
var s='<div class="rockdatepicker_fudong" id="rockdatepicker_fudong'+rand+'" style="left:'+(off.left-this.mleft-5)+'px;top:'+((off.top-this.mtop)+25)+'px;height:200px;width:70px">';
var xuoi = 0,oi=0;
for(var i=this.max.Y; i>=this.min.Y; i--){
oi++;
var cls= '';
if(i==this.Y){
cls='div01';
xuoi = oi;
}
s+='<div class="'+cls+'">'+i+'</div>';
}
s+='</div>';
$('#rockdatepicker_'+rand+'').append(s);
$('#rockdatepicker_fudong'+rand+'').scrollTop(xuoi*20);
$('#rockdatepicker_fudong'+rand+'').find('div').click(function(){
me.changeyeara(this);
});
};
//选择年的
this.changemonth=function(o1){
this.hidefudong();
var o = $(o1);
var off = o.offset();
var s='<div class="rockdatepicker_fudong" id="rockdatepicker_fudong'+rand+'" style="left:'+(off.left-this.mleft-5)+'px;top:'+((off.top-this.mtop)+25)+'px;height:200px;width:60px">';
var xuoi = 0,oi=0;
for(var i=1; i<=12; i++){
oi++;
var cls= '';
if(i==this.m){
cls='div01';
xuoi = oi;
}
s+='<div class="'+cls+'">'+i+'</div>';
}
s+='</div>';
$('#rockdatepicker_'+rand+'').append(s);
$('#rockdatepicker_fudong'+rand+'').scrollTop(xuoi*20);
$('#rockdatepicker_fudong'+rand+'').find('div').click(function(){
me.changemontha(this);
});
};
this.hidefudong = function(){
$('#rockdatepicker_fudong'+rand+'').remove();
};
this.changeyeara = function(o1){
$('#rockdatepicker_year'+rand+'').html($(o1).html());
this.selchagnge();
};
this.changemontha = function(o1){
$('#rockdatepicker_month'+rand+'').html($(o1).html());
this.selchagnge();
};
this.selchagnge=function(){
var Y=parseFloat($('#rockdatepicker_year'+rand+'').html());
var m=parseFloat($('#rockdatepicker_month'+rand+'').html());
this.addcale(Y,m);
me.hidefudong();
};
this.setweizhi = function(){
var off = obj.offset();;
if(can.inputid != '')off = $('#'+can.inputid+'').offset();
var o = $('#rockdatepicker_'+rand+'');
var nh = get('rockdatepicker_'+rand+'').clientHeight,
nw = get('rockdatepicker_'+rand+'').clientWidth,
t = off.top+can.top,
dy = t+nh-winHb()-$(document).scrollTop(),
l = off.left+can.left,
jl = l+nw-winWb(),
jl1 = 5;
if($('body,html').height()>winHb())jl1=22;
jl=jl+jl1;
if(dy>0)t=t-dy-5;
if(jl>0)l=l-jl;
this.mleft = l;
this.mtop = t;
o.css({'left':''+l+'px','top':''+t+'px'});
};
//单元格单击
this.tdclick = function(o){
var o1 = $(o);
var d = o1.text();
if(isempt(d))return;
this.now.Y = parseFloat(this.Y);
this.now.m = parseFloat(this.m);
this.now.d = parseFloat(d);
this.objtd.removeClass();
this.objtd.addClass('td00');
o.className='td01';
this.shetispannvel(1);
};
//确定
this.queding = function(){
var jg = $('#rockdatepicker_span'+rand+'').html();
if(can.view=='time')jg=js.now('Y-m-d');
var ho = get('rockdatepicker_input_h'+rand+'');
var io = get('rockdatepicker_input_i'+rand+'');
var so = get('rockdatepicker_input_s'+rand+'');
if(ho)if(!ho.disabled)jg+=' '+ho.value+'';
if(io)if(!io.disabled)jg+=':'+io.value+'';
if(so)if(!so.disabled)jg+=':'+so.value+'';
var val = jg;
if(this.isdate(val)){
val=this.formdt(can.format, val);
}
this.setValue(val);
};
this.quenow = function(){
var val = this.formdt(can.format);
this.setValue(val);
};
this.setValue = function(v){
var nobj = false;
if(can.inputid!=''){
nobj = get(can.inputid);
$('#'+can.inputid+'').val(v).focus();;
}else{
nobj = elet;
obj.val(v).focus();;
}
if(nobj){
js.onchangedate(nobj.name, nobj, v, this);
}
can.itemsclick(v, this);
this.hidemenu();
};
this.getValue = function(){
var s = '';
if(can.inputid!=''){
s = $('#'+can.inputid+'').val();;
}else{
s = obj.val();
}
return s;
};
this.queclear = function(){
this.setValue('');
};
//单击
this.itemsclick = function(o,event){
};
this.hidemenu = function(){
$('#rockdatepicker_'+rand+'').remove();
};
this.changedatec= function(o){
var lx = o.attr('tdaddclick');
if(lx=='m'){
this.plftmonth(1);
}
if(lx=='-m'){
this.plftmonth(-1);
}
if(lx=='y'){
this.plftyear(1);
}
if(lx=='-y'){
this.plftyear(-1);
}
if(lx =='today'){
this.addcale(this.todate.Y,this.todate.m);
}
};
//上个月
this.plftmonth=function(lx)
{
var Y=parseFloat(this.Y),m=parseFloat(this.m);
m=m+lx;
if(m==0)m=12;
if(m==13)m=1;
if(m==12&&lx==-1)Y--;
if(m==1&&lx==1)Y++;
this.addcale(Y,m);
};
this.plftyear=function(lx){
var Y=parseFloat(this.Y)+lx;
this.addcale(Y,this.m);
};
this.formdt=function(type,sj){
return js.now(type, sj);
};
this.isdate = function(sj){
if(!sj)return false;
var bo = /^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}/.test(sj);
return bo;
};
this.addcale = function(Y,m){
this.objtd.removeClass();
this.objtd.html('');
me.Y=parseFloat(Y);
me.m=parseFloat(m);
var first = ''+Y+'-'+m+'-01';
var stuat = me.formdt('Y-m-w',first);
stuat=stuat.split('-');
var year = parseFloat(stuat[0]);
var month = parseFloat(stuat[1]);
var maxday = me.marr[month-1];//这个月最大天数
if(year%4==0&&month==2)maxday=29;//判断是不是轮年
if(month<10)month='0'+month;
var ic=parseFloat(stuat[2]);
var maic=1;
var xq = 0,nic=ic-1;
var xqarr=[0,0,0,0,0,0,0];
var cls = '';
for(var i=0;i<maxday;i++){
maic=i+ic;
var o = me.objtd[maic];
var d = i+1;
o.innerHTML=''+d+'';
cls = 'td00';
if(d== this.now.d)cls='td01';
o.className = cls;
}
$('#rockdatepicker_year'+rand+'').html(Y);
$('#rockdatepicker_month'+rand+'').html(month);
};
this.focusval = 0;
this.blurnum = function(o){
var o1 = $(o);
var val = o.value;
var mi = parseFloat(o1.attr('min'));
var ma = parseFloat(o1.attr('max'));
if(isNaN(val)||!val)val=this.focusval;
val=parseFloat(val);
if(val<mi)val=mi;
if(val>ma)val=ma;
o.value=this.sa(val);
this.setoutshow=setTimeout("$('#rockdatepicker_spanselfaei"+rand+"').remove();",200);
};
this.foucsnum=function(o){
clearTimeout(this.setoutshow);
this.focusval = o.value;
var o1 = $(o);
var mi = parseFloat(o1.attr('min'));
var ma = parseFloat(o1.attr('max'));
o.select();
$('#rockdatepicker_spanselfaei'+rand+'').remove();
var s='<div style="bottom:52px;position:absolute;right:1px;padding:2px;border:1px #cccccc solid;background-color:#ffffff;font-size:14px;text-align:left" id="rockdatepicker_spanselfaei'+rand+'">';
this.inputhis=o;
for(var a=mi;a<=ma;a++){
var ai = this.sa(a);
if(ai==o.value)ai='<span style="color:#ff0000">'+ai+'</span>';
s+='<font style="margin:2px">'+ai+'</font>';
if((a+1)%10==0)s+='<br>';
}
s+='</div>';
$('#rockdatepicker_'+rand+'').append(s);
$('#rockdatepicker_spanselfaei'+rand+'').find('font').click(function(){
var x = $(this).text();
o.value = x;
});
};
this.createmontview = function(lx){
var w = 220,w1=109;
if(lx==0){
w=130;
w1=w;
}
var oac = this.createbasic(w,270);
var s = '';
s+='<table border="0" width="100%" id="rockdatepicker_table'+rand+'" cellspacing="0" cellpadding="0"><tr valign="top">';
s+=' <td width="'+w1+'"><div align="center" style="line-height:30px;background:#eeeeee"><a href="javascript:" id="rockdatepicker_yearshang'+rand+'" onclick="return false" class="a02">←</a>&nbsp; 年份&nbsp; <a href="javascript:" id="rockdatepicker_yearxia'+rand+'" onclick="return false" class="a02">→</a> </div><div id="rockdatepicker_yearlist'+rand+'" style="line-height:30px;height:180px;overflow:hidden" align="center"></div></td>';
if(lx == 1){
s+=' <td width="2" bgcolor="#cccccc"></td>';
s+=' <td width="109"><div align="center" style="line-height:30px;background:#eeeeee">月份</div><div id="rockdatepicker_monthlist'+rand+'" style="line-height:30px" align="center"></div></td>';
}
s+='</tr></table>';
s+='<div style="line-height:30px">&nbsp; <font color="#888888">选择:</font><span id="rockdatepicker_span'+rand+'">'+this.now.Y+'-0'+this.now.d+'</span></div>';
s+='<div style="height:30px;overflow:hidden;text-align:right;background:#eeeeee;line-height:28px">';
s+=' <a href="javascript:" onclick="return false" class="a" id="rockdatepicker_clear'+rand+'">清空</a>';
s+=' <a href="javascript:" onclick="return false" class="a" id="rockdatepicker_now'+rand+'">现在</a>';
s+=' <a href="javascript:" onclick="return false" class="a" id="rockdatepicker_queding'+rand+'">确定</a>';
s+=' <a href="javascript:" onclick="return false" class="a" id="rockdatepicker_close'+rand+'">关闭</a>';
s+='</div>';
oac.html(s);
$('#rockdatepicker_close'+rand+'').click(function(){
me.hidemenu();
});
$('#rockdatepicker_queding'+rand+'').click(function(){
me.queding();
});
$('#rockdatepicker_now'+rand+'').click(function(){
me.quenow();
});
$('#rockdatepicker_clear'+rand+'').click(function(){
me.queclear();
});
$('#rockdatepicker_yearshang'+rand+'').click(function(){
me.montviewyear(me.montviewyearmin-1,1);
});
$('#rockdatepicker_yearxia'+rand+'').click(function(){
me.montviewyear(me.montviewyearax+1,2);
});
$('#rockdatepicker_table'+rand+'').dblclick(function(){
me.queding();
});
if(lx == 1)this.montviewmonth();
this.montviewyear(this.now.Y,0);
this.showviewffwfwe();
};
this.montviewmonth = function(){
var s = '';
for(var i=1; i<=12; i++){
var oi = ''+i+'';
if(i<10)oi = '0'+i+'';
var cls = 'a02';
if(i==this.now.m)cls='a03';
var deval = parseFloat(''+this.now.Y+''+this.sa(i)+'01000000');
if(deval<this.min.total || deval>this.max.total)cls+=' not';
s+='<a href="javascript:" onclick="return false" class="'+cls+'">'+oi+'月</a> ';
if(i%2==0)s+='<br>';
}
if(s=='')return false;
var oss = $('#rockdatepicker_monthlist'+rand+'');
oss.html(s);
oss.find('a').click(function(){
me.montviewyearcheng(this,1);
});
};
this.montviewyear = function(y,lx){
var min = y - 5;
var max = y + 6;
if(lx==1){
max = y;
min = y-11;
}
if(lx==2){
min = y;
max = y+11;
}
if(min<this.min.Y)min = this.min.Y;
if(max>this.max.Y)max = this.max.Y;
var oi = 0,s='',cls='';
for(var i=min; i<=max; i++){
if(oi==0)this.montviewyearmin = i;
this.montviewyearax = i;
cls = 'a02';
if(i==this.now.Y)cls='a03';
oi++;
s+='<a href="javascript:" onclick="return false" class="'+cls+'">'+i+'</a> ';
if(oi%2==0)s+='<br>';
}
if(s=='')return false;
var oss = $('#rockdatepicker_yearlist'+rand+'');
oss.html(s);
oss.find('a').click(function(){
me.montviewyearcheng(this,0);
});
};
this.montviewyearcheng = function(o1,lx){
if(o1.className.indexOf('not')>-1)return false;
var ossa = $(o1).parent().find('a');
for(var i=0;i<ossa.length;i++){
var cls = ossa[i].className.replace('a03','a02');
ossa[i].className = cls;
}
o1.className='a03';
var val = o1.innerHTML.replace('月','');
if(lx==0){
this.now.Y = parseFloat(val);
if(get('rockdatepicker_monthlist'+rand+''))this.montviewmonth();
}
if(lx==1){
this.now.m = parseFloat(val);
}
this.showviewffwfwe();
};
this.showviewffwfwe=function(){
var m = this.now.m;
var y = this.now.Y;
if(m<10)m='0'+m+'';
var s = ''+y+'-'+m+'';
if(!get('rockdatepicker_monthlist'+rand+''))s=y;
$('#rockdatepicker_span'+rand+'').html(s);
}
};
$.fn.rockdatepicker = function(options){
var defaultVal = {
left:2,top:28,width:0,autohide:true,
itemsclick:function(){},onshow:function(){},initshow:false,removebo:false,
trigger:'click',editable:false,inputid:'',format:'Y-m-d',formats:'',maxdate:'',mindate:'',view:'date'
};
var o = $(this);
if(o.attr('rockdatepickerbool')=='true')return false;
var can = $.extend({}, defaultVal, options);
var aobj = new rockdatepicker(this, can);
aobj.init();
return aobj;
};
})(jQuery);

335
mode/plugin/jquery-rockdoupull.js vendored Normal file
View File

@@ -0,0 +1,335 @@
/**
* jqury的下拉上拉加载插件带样式滚动条呵呵。
* createname雨中磐石
* homeurlhttp://www.rockoa.com/
* Copyright (c) 2016 rainrock (xh829.com)
* Date:2016-11-24
*/
(function ($) {
function rockclass(element, options){
var me = this;
var opts = $.extend({
ondragstart:function(){},
ondrag:function(){},
ondrayrl:function(){},
ondrayrlend:false,
scrollbool:true, //是否添加滚动条样式
downbool:false, //是否下拉加载
upbool:false, //是否上拉加载
leftbool:false, //左
rightbool:false, //右
ondownbefore:function(){return true},
onupbefore:function(){return true},
downbgcolor:'#f1f1f1', //下拉背景
upmsgdiv:'' //上来提示区域
}, options);
var obj = element;
this._init=function(){
this.rand = js.getrand();
this.reloadbo = false;
this.mobj = $(obj);
for(var a in opts)this[a]=opts[a];
obj.addEventListener('touchstart',function(e){
me._dragstart(e);
},false);
obj.addEventListener('touchmove',function(e){
me._dragmove(e);
},false);
obj.addEventListener('touchend',function(e){
this.removeEventListener('touchmove', function(){}, false);
this.removeEventListener('touchstart', function(){}, false);
me._dragend(e);
},false);
this._initscrool();
};
this._dragstart=function(e){
if(this.reloadbo)return;
$('#updowns_'+this.rand+'').remove();
this.startarr = [e.touches[0].clientX, e.touches[0].clientY, this.mobj.scrollTop(),obj.scrollHeight-this.mobj.height()];
if(this.upbool && this.upmsgdiv)this.startarr[4]=$('#'+this.upmsgdiv+'').html();
this.upstartbo = false;
this.up_ysa = 0;
this.movearr = [0,0];
this.ondragstart(e);
};
this._dragmove=function(e){
if(this.reloadbo)return;
this.upheight = 0;
var hei = e.touches[0].clientY-this.startarr[1],downbo=false,upbo=false,ler = e.touches[0].clientX-this.startarr[0];
this.movearr = [ler,hei];
var updown = Math.abs(hei) > Math.abs(ler);
if(this.up_ysa==0)this.up_ysa = updown ? 1 :2;
//js.msg('msg',''+hei+'.'+ler+'');
//下拉刷新
if(this.downbool && this.up_ysa==1){
var dowbcak = this.ondownbefore();
if(hei>0 && dowbcak && this.startarr[2]==0){
e.preventDefault();
downbo = true;
}
if(downbo){
this._downstart(hei, dowbcak);
}
if(!downbo)$('#downs_'+this.rand+'').remove();
}
//上拉刷新
if(this.upbool && this.up_ysa==1){
var upback = this.onupbefore();
if(hei<0 && upback && this.startarr[2]==this.startarr[3]){
e.preventDefault();
upbo = true;
}
if(upbo){
this._upstart(hei, upback);
}
if(!upbo)this.translateY(0);
}
if(this.up_ysa==2){
e.preventDefault();
this.ondrayrl(ler, e);
}
//左滑动
if(this.leftbool && ler<0 && this.up_ysa==2){
this.mobj.css('transform','translateX('+ler+'px)');
}
//右滑动
if(this.rightbool && ler>0 && this.up_ysa==2){
this.mobj.css('transform','translateX('+ler+'px)');
}
this.ondrag(e,this.movearr);
};
this._downstart=function(hei){
if(this.reloadbo)return;
hei = hei*0.6;
this.upheight = hei;
if(hei>200)return;
var sid = 'downs_'+this.rand+'',tx= '↓ 下拉刷新',o1;
if(hei>50)tx='↑ 释放立即刷新';
if(get(sid)){
o1 = $('#'+sid+'');
o1.css('height',''+hei+'px').find('div').html(tx);
}else{
var s = '<div id="'+sid+'" style="height:'+hei+'px;overflow:hidden; line-height:50px;text-align:center;color:#666666;background:'+this.downbgcolor+';font-size:14px;position:relative"><div style="height:50px;line-height:50px;position:absolute;left:0px;bottom:0px;width:100%">'+tx+'</div></div>';
this.mobj.before(s);
}
};
this._upstart=function(hei, bsrs){
if(this.reloadbo)return;
hei = hei*0.6;
this.upheight = hei;
if(hei<-200)return;
var a = {msg:'↑ 上拉刷新','msgok': '↓ 释放立即刷新','msgdiv':this.upmsgdiv},i;
if(typeof(bsrs)=='object'){
for(i in bsrs)a[i]=bsrs[i];
}
var tx= a.msg;
if(hei<-50)tx=a.msgok;
if(a.msgdiv)$('#'+a.msgdiv+'').html(tx);
this.upstartbo = true;
this.translateY(hei);
};
this.translateY=function(h){
var o = obj,val= "translateY("+h+"px)";
o.style.transform=val;
o.style.webkitTransform=val;
o.style.msTransform=val;
o.style.MozTransform=val;
o.style.OTransform=val;
};
this._dragend=function(e){
var sid = 'downs_'+this.rand+'';
if(get(sid)){
var o1 = $('#'+sid+'');
if(this.upheight>50){
this.reloadbo = true;
o1.animate({'height':'50px'},200,function(){
o1.html('<img src="images/loading.gif" align="absmiddle"> 刷新中...');
me.ondownsuccess ? me.ondownsuccess(e) : me.ondownok();
});
}else{
$('#'+sid+'').slideUp(200);
}
}
var bhui = true;
if(this.upheight<0){
this.translateY(0);
if(this.upheight<-50){
this.reloadbo = true;
if(this.onupsuccess){
this.onupsuccess();
}else{
setTimeout(function(){me.onupok()}, 500);
}
bhui = false;
}
}
if(this.upstartbo || bhui){
if(this.upmsgdiv)$('#'+this.upmsgdiv+'').html(this.startarr[4]);
}
if(this.ondrayrlend){
this.ondrayrlend(this.movearr[0], e);
}
};
this.ondownok=function(ts){
this.reloadbo = false;
var o1 = $('#downs_'+this.rand+'');
if(!ts)ts='√ 刷新成功';
o1.html(ts);
setTimeout(function(){o1.slideUp(200,function(){o1.remove();});}, 500);
};
this.ondownerror=function(ts){
if(!ts)ts='× 超时失败';
this.ondownok(ts);
};
this.onupok=function(ts){
this.reloadbo = false;
this.upstartbo = false;
};
this.onuperror=function(ts){
if(!ts)ts='× 超时失败';
this.ondownok(ts);
};
this._initscrool=function(){
if(!this.scrollbool)return;
var off = this.mobj.offset();
this.scrollsid = 'scrolllists_'+this.rand+'';
var l = off.left+this.mobj.width()-6;
this.scroor_h = 80;
this.scroor_hs = obj.scrollHeight;
var s = '<div style="height:'+this.scroor_h+'px;width:5px;background:rgba(0,0,0,0.3);display:none;overflow:hidden;border-radius:2px;right:0px;top:0px;position:absolute" id="'+this.scrollsid+'"></div>';
s='<div id="'+this.scrollsid+'_min" style="height:'+obj.clientHeight+'px;width:5px;overflow:hidden;position:fixed;z-index:1;background:rgba(0,0,0,0);left:'+l+'px;top:'+off.top+'px">'+s+'</div>';
$('body').append(s);
this.resize();
this.mobj.scroll(function(){
me._scrollov();
});
};
this._hidescrolls = function(){
clearTimeout(this._hidescrollstime);
this._hidescrollstime = setTimeout(function(){
$('#'+me.scrollsid+'').fadeOut();
},1000);
};
this._scrollovs=function(){
clearTimeout(this._scrollovstime);
this._scrollovstime=setTimeout(function(){
me._scrollov();
},1);
};
this._scrollov=function(){
var top,zh,bl,mh,wzh;
top = this.mobj.scrollTop();
wzh = obj.scrollHeight;
if(wzh!=this.scroor_hs){
this.resize();
}
zh = wzh-obj.clientHeight;
mh = obj.clientHeight-this.scroor_h; //可滚动高度
bl = top/zh;
var jgt = bl*mh;
$('#'+this.scrollsid+'').css('top',''+jgt+'px').show();
this._hidescrolls();
};
this.hidescrolls=function(){
$('#'+this.scrollsid+'').hide();
}
/**
* 窗口改变时重新设置滚动条
*/
this.resize = function(){
if(!this.scrollbool)return;
var off = this.mobj.offset(),zh;
var l = off.left+this.mobj.width()-6,hei = obj.clientHeight;
zh = obj.scrollHeight;
$('#'+this.scrollsid+'_min').css({'left':''+l+'px','top':''+off.top+'px','height':''+hei+'px'});
var bl = hei/zh;if(bl>1)bl=0.9;
this.scroor_h = bl * hei;
$('#'+this.scrollsid+'').css({'height':''+this.scroor_h+'px'});
this.scroor_hs = zh;
}
};
$.fn.rockdoupull = function(options){
var can = $.extend({}, options);
var clsa = new rockclass(this[0], can);
clsa._init();
return clsa;
};
/**
* 长按
*/
function longpress(element, options){
var me = this;
var opts = $.extend({
ondragstart:function(){return true;}, //按下前
ondragend:function(){return true;}, //按下后
downbgcolor:'#f1f1f1', //下拉背景
presstime:500,
onpress:function(){}
}, options);
var obj = element;
var obj = element;
this.ele = obj;
this._init=function(){
this.mobj = $(obj);
for(var a in opts)this[a]=opts[a];
obj.addEventListener('touchstart',function(e){
me._dragstart(e);
},false);
obj.addEventListener('touchend',function(e){
me._dragend(e);
},false);
};
this._dragstart=function(e){
if(!this.ondragstart(e))return false;
e.preventDefault();
this.oldbackcolor = obj.style.backgroundColor;
obj.style.backgroundColor = this.downbgcolor;
this.anxiamiao = 0;
clearInterval(this.shumiaotime);
this.shumiaotime=setInterval(function(){
me.downtimes(e);
},100);
};
this.downtimes=function(e){
this.anxiamiao+=100;
if(this.anxiamiao>=this.presstime){
this._dragend(e);
this.onpress();//触发
}
};
this._dragend=function(e){
obj.removeEventListener('touchstart', function(){}, false);
clearInterval(this.shumiaotime);
if(typeof(this.oldbackcolor=='string'))obj.style.backgroundColor = this.oldbackcolor;
this.ondragend(this.anxiamiao>=this.presstime,e);
};
}
$.fn.longpress = function(options){
var can = $.extend({}, options);
var clsa = new longpress(this[0], can);
clsa._init();
return clsa;
};
})(jQuery);

218
mode/plugin/jquery-rockediter.js vendored Normal file
View File

@@ -0,0 +1,218 @@
/**
编辑器
caratenamechenxihu
caratetime214-09-01 21:40:00
email:qqqq2900@126.com
homepage:www.xh829.com
*/
var rockediterarray = [];
(function ($) {
function rockediter(contid, can){
var me = this;
this.selecttext = '';
var obj = get(contid);
var rand = js.getrand();
this.oi = rockediterarray.length;
this.formatarray={
'font':['字体样式','FontName', 'down'],
'fontsize':['字体大小','FontSize', 'down'],
'forecolor':['字体颜色','ForeColor', 'down'],
'marks':['插入特殊符号','Marks'],
'images':['上传图片','Images'],
'imageslink':['插入图片链接','Imageslink'],
'backcolor':['字体背景色','BackColor', 'down'],
'html':['查看源码','HTML'],
'arrow_out':['全屏',''],
'emot':['插入表情',''],
'cut':['剪切','Cut'],
'paste':['粘贴','Paste'],
'copy':['复制','Copy'],
'selectall':['全选','SelectAll'],
'hr':['添加水平线','InsertHorizontalRule'],
'link_add':['添加链接','CreateLink'],
'link_del':['删除链接','UnLink'],
'bold':['加粗','Bold'],
'italic':['斜体','Italic'],
'underline':['下划线','Underline'],
'strikethrough':['删除线','StrikeThrough'],
'align_center':['居中对齐','JustifyCenter'],
'align_justify':['两端对齐','JustifyFull'],
'align_left':['左对齐','JustifyLeft'],
'align_right':['右对齐','JustifyRight'],
'list_bullets':['项目符号','insertunorderedlist'],
'list_numbers':['数字编号','insertorderedlist'],
'indent':['增加缩进量','Indent'],
'indent_remove':['减小缩进量','Outdent'],
'undo':['返回上一步','Undo'],
'removeformat':['删除格式','RemoveFormat']
}
//初始化
this.init = function(){
this.createtbar();
$('#'+contid+'_tbar a').click(function(event){
me.toolsclick(event, this);
return false;
});
};
this.createtbar = function(){
var a = can.tbaricons.split(',');
var s = '';
for(var i=0; i<a.length; i++){
var s1 = a[i];
if(s1=='|'){
s+='<span>|</span>';
}else{
var c = this.formatarray[s1];
s+='<a title="'+c[0]+'" href="javascript:" xtype="'+c[1]+'"><img src="images/editer/text_'+s1+'.png" class="icons" align="absmiddle">';
if(can.showtext)s+=' '+c[0]+'';
if(c[2] == 'down')s+='<img src="images/editer/desc.gif" style="margin-left:3px" align="absmiddle">';
s+='</a>';
}
}
$('#'+contid+'_tbar').html(s);
};
this.toolsclick = function(event, o1){
var o = $(o1);
var xtype = o.attr('xtype');
this.selecttext = this.getSelText();
if(xtype == 'Bold'){
this.strreplace(this.selecttext, '[B]'+this.selecttext+'[/B]');
}
if(xtype == 'Italic'){
this.strreplace(this.selecttext, '[I]'+this.selecttext+'[/I]');
}
if(xtype == 'Underline'){
this.strreplace(this.selecttext, '[U]'+this.selecttext+'[/U]');
}
if(xtype == 'RemoveFormat'){
this.removeformat();
}
if(xtype == 'CreateLink'){
this.createlink();
}
if(xtype == 'Images'){
this.uploadImages();
}
};
this.createlink = function(){
var h = '<div style="padding:10px;line-height:30px">';
h+='<div style="padding:5px 0px"><font color="#888888">连接文字</font> <input id="createlinkwindow_text" style="width:50%" class="input" value="'+this.selecttext+'"></div>';
h+='<div style="padding:5px 0px"><font color="#888888">连接地址</font> <input id="createlinkwindow_texturl" value="http://" class="input" style="width:78%"></div>';
h+='</div>';
js.tanbody('createlinkwindow', '添加连接', 400, 200, {html:h,btn:[{text:'确定'}]});
get('createlinkwindow_texturl').focus();
$('#createlinkwindow_btn0').click(function(){
me.quedingadd();
});
};
this.quedingadd = function(){
var text = $('#createlinkwindow_text').val();
var url = $('#createlinkwindow_texturl').val();
var str1 = '[A,'+url+']'+text+'[/A]';
if(isempt(text))return false;
this.strreplace(text,str1);
js.tanclose('createlinkwindow');
};
//清除格式
this.removeformat = function(){
var cont = obj.value;
cont = cont.replace(/\[.*?\]/gi, '');
cont = cont.replace(/\<.*?\>/gi, '');
obj.value = cont;
};
this.addcont = function(str){
obj.value+=str;
};
this.strreplace = function(str,str1){
if(isempt(str) || !get(contid))return false;
var cont = obj.value;
var s = '';
if(isIE){
var patt1 = new RegExp(""+str+"", "gi");
s = cont.replace(patt1, str1);
}else{
var st = obj.selectionStart;
var et = obj.selectionEnd;
s = cont.substr(0, st)+str1;
s+=cont.substr(et);
}
get(contid).value = s;
if(!isIE)get(contid).focus();
};
this.getSelText = function(){
var o = obj;
var txt = '';
if(isIE){
txt = document.selection.createRange().text;
} else {
txt = o.value.substr(o.selectionStart,o.selectionEnd-o.selectionStart);
}
return txt;
};
//删除图片
this.uploadImages= function(){
var h = '<div style="padding:10px;line-height:30px">';
h+='<table width="100%" border="0" cellspacing="0" cellpadding="0">';
h+='<tr>';
h+=' <td width="110" height="110" align="center"><img id="createlinkwindow_imagesview" src="images/noface.jpg" width="100" height="100"></td>';
h+=' <td style="padding:5px 10px;line-height:30px">';
h+=' <div style="padding:5px 0px"><font color="#888888">图片地址:</font> &nbsp; <a href="javascript:" onclick="return rockediteruploadimage()">↑从本地上传</a></div>';
h+=' <div style="padding:0px 0px"><input id="createlinkwindow_images" class="input" style="width:250px"></div>';
//h+=' <div style="height:20px;overflow:hidden"></div>';
//h+=' <div style="padding:5px 0px">宽:<input class="inputs" id="createlinkwindow_width" readonly style="width:60px"> &nbsp; 高:<input id="createlinkwindow_height" class="inputs" readonly style="width:60px"></div>';
h+=' </td>';
h+='</tr>';
h+='</table>';
h+='</div>';
js.tanbody('createlinkwindow', '插入图片', 400, 200, {
html:h,btn:[{text:'确定'}]
});
$('#createlinkwindow_btn0').click(function(){
me.uploadImagesback();
});
};
this.uploadImagesback= function(){
var url = get('createlinkwindow_images').value;
if(isempt(url))return false;
this.addcont('[IMG,'+url+']');
js.tanclose('createlinkwindow');
return false;
};
}
$.rockediter = function(contid,can){
var fcan = js.apply({
showtext : true,
tbaricons : 'bold,italic,underline,|,link_add,images,removeformat'
}, can);
var clsa = new rockediter(contid, fcan);
clsa.init();
rockediterarray.push(clsa);
return clsa;
};
})(jQuery);
function rockediteruploadimage(){
js.upload('rockediteruploadimageautoclose',{title:escape('本地上传图片'),maxup:1,uptype:'image',maxwidth:600});
return false;
}
function rockediteruploadimageautoclose(a){
var d = a[0];
//$('#createlinkwindow_width').val(d.width);
//$('#createlinkwindow_height').val(d.height);
$('#createlinkwindow_images').val(d.thumbpath);
get('createlinkwindow_imagesview').src=d.thumbpath;
}

59
mode/plugin/jquery-rockmodels.js vendored Normal file
View File

@@ -0,0 +1,59 @@
/**
* rockmodelmsg 模式窗口
* caratenamerainrock
* caratetime2014-05-13 21:40:00
* email:admin@rockoa.com
* homepage:www.rockoa.com
*/
(function ($) {
//模式提示
$.rockmodelmsg = function(lx, txt, sj,fun){
clearTimeout($.rockmodelmsgtime);
$('#rockmodelmsg').remove();
js.msg('none');
if(!fun)fun=function(){};
if(lx=='none')return;
var s = '<div id="rockmodelmsg" onclick="$(this).remove()" align="center" style="position:fixed;left:45%;top:30%;z-index:9999;border-radius:10px; background:rgba(0,0,0,0.7);color:white;font-size:18px;min-width:80px"><div style="padding:30px;">';
if(lx=='wait'){
if(!txt)txt='处理中...';
s+='<div><img src="images/mloading.gif"></div>';
s+='<div style="padding-top:5px">'+txt+'</div>';
if(!sj)sj= 60;
}
if(lx=='ok'){
if(!txt)txt='处理成功';
s+='<div style="font-size:40px">✔</div>';
s+='<div>'+txt+'</div>';
}
if(lx=='msg' || !lx){
if(!txt)txt='提示';
s+='<div style="font-size:40px;color:red">☹</div>';
s+='<div style="color:red">'+txt+'</div>';
}
s+='</div></div>';
$('body').append(s);
if(!sj)sj = 3;
var le = (winWb()-$('#rockmodelmsg').width())*0.5;
var te = (winHb()-$('#rockmodelmsg').height())*0.5-10;
$('#rockmodelmsg').css({'left':''+le+'px','top':''+te+'px'});
$.rockmodelmsgtime = setTimeout(function(){
$('#rockmodelmsg').remove();
fun();
}, sj*1000);
}
js.msgok = function(msg,fun,sj){
$.rockmodelmsg('ok', msg,sj, fun);
};
js.msgerror = function(msg,fun,sj){
$.rockmodelmsg('msg', msg,sj, fun);
};
js.loading = function(msg,sj){
$.rockmodelmsg('wait', msg,sj);
};
js.unloading= function(){
$.rockmodelmsg('none');
};
})(jQuery);

60
mode/plugin/jquery-rockqipao.js vendored Normal file
View File

@@ -0,0 +1,60 @@
/**
rockqipao 提示气泡
caratenamechenxihu
caratetime2014-09-02 17:00:00
email:qqqq2900@126.com
homepage:www.xh829.com
*/
(function ($) {
function rockqipao(element, options){
var obj = element;
var can = options;
var rand = ''+parseInt(Math.random()*99999)+'';
var me = this;
this.rand = rand;
//初始化
this.init = function(){
var s = '';
var id = 'rockqipaoshowdiv_'+rand+'';
var glid= obj.attr('id');
s+='<div id="'+id+'" guanliid="'+glid+'" title="'+can.tip+'" style="position:absolute;z-index:8;left:5px;top:5px;width:'+can.width+'px;height:'+can.width+'px;background:'+can.bgcolor+';overflow:hidden;color:white;border-radius:'+(can.width*0.5)+'px;line-height:'+can.width+'px;cursor:pointer;font-size:12px" align="center">'+can.text+'</div>';
$('body').append(s);
$('#'+id+'').click(function(){
can.click(this);
});
$('#'+id+'').mouseover(function(){
me.setweizhi();
});
this.setweizhi();
};
this.setweizhi = function(){
var off = obj.offset();
var l = off.left+ can.left - can.width*0.5;
var t = off.top + can.top-can.width;
$('#rockqipaoshowdiv_'+rand+'').css({left:''+l+'px',top:''+t+'px'});
}
}
$.fn.rockqipao = function(options){
var defaultVal = {
click:function(){},
text:'',
left:5,
top:0,
width:20,
bgcolor:'#ff6600',
tip:''
};
var can = $.extend({}, defaultVal, options);
var clsa = new rockqipao($(this), can);
clsa.init();
return clsa;
};
})(jQuery);

109
mode/plugin/jquery-rocksilder.js vendored Normal file
View File

@@ -0,0 +1,109 @@
/**
rocktabs 图片切换
caratenamechenxihu
caratetime214-04-06 21:40:00
email:qqqq2900@126.com
homepage:www.xh829.com
*/
(function ($) {
function rocksilder(options){
var rand = ''+parseInt(Math.random()*99999)+'';
var me = this;
this.rand = rand;
for(var i1 in options)this[i1]=options[i1];
//初始化
this.init = function(){
var i,len=this.data.length;
this.oldoi = -1;
var s = '<div id="rocksilder_'+this.rand+'" style="position:relative;height:'+this.height+'">';
if(len==0)return;
for(i=0;i<len;i++){
s+='<div index="'+i+'" style="height:'+this.height+';overflow:hidden;display:none;position:absolute;left:0px;top:0px;width:100%">';
s+='<div><img src="'+this.data[i].src+'" width="100%"></div>';
s+='</div>';
}
var bo = 0;
if(this.titlebool){
bo = 30;
s+='<div style="position:absolute;bottom:0px;left:0px;width:100%;background:rgba(0,0,0,0.3);text-align:center;color:white;line-height:30px;height:30px;padding:0px 0px;overflow:hidden" id="rocksildertitle_'+this.rand+'">'+this.data[0].title+'</div>';
}
s+='<div style="position:absolute;bottom:'+bo+'px;left:0px;width:100%;text-align:center;color:white;line-height:20px;height:20px;overflow:hidden;" id="rocksildertitlev_'+this.rand+'"></div>';
s+='</div>';
if(this.view==''){
$('body').append(s);
}else{
$('#'+this.view+'').html(s);
}
this.mobj = $('#rocksilder_'+this.rand+'');
this.mobj.find('div[index]').click(function(){
me._click(this);
return false;
});
this._showview(0);
};
this._click=function(o1){
var oi= parseFloat($(o1).attr('index'));
var d = this.data[oi];
if(this.onclick){
this.onclick(d);
}else{
if(d.url)js.location(d.url);
}
};
this._showview=function(oi){
clearTimeout(this.timeoutobj);
if(!get('rocksilder_'+this.rand+''))return;
var len = this.data.length;
if(oi>=len)oi=0;
var i,s='';
if(this.oldoi>=0){
this.mobj.find('div[index="'+this.oldoi+'"]').hide();
this.mobj.find('div[index="'+oi+'"]').show();
}else{
this.mobj.find('div[index]').hide();
this.mobj.find('div[index="'+oi+'"]').show();
}
$('#rocksildertitle_'+this.rand+'').html(this.data[oi].title);
for(i=0;i<len;i++){
if(i>0)s+='&nbsp;&nbsp;';
if(i==oi){
s+='<span style="font-size:18px">●</span>';
}else{
s+='<span style="font-size:16px" xu="'+i+'">○</span>';
}
}
$('#rocksildertitlev_'+this.rand+'').html(s).find('span[xu]').click(function(){
var xu = parseFloat($(this).attr('xu'));
me._showview(xu);
return false;
});
this.oldoi = oi;
this.timeoutobj = setTimeout(function(){me._showview(oi+1);},this.changtime);
};
this.remove=function(){
clearTimeout(this.timeoutobj);
$('#rocksilder_'+this.rand+'').remove();
}
}
$.rocksilder = function(options){
var defaultVal = {
'view': '',
'data':[],
'height' :'150px',
'titlebool':true,
'onclick':false,
'changtime':5000 //5秒
};
var can = $.extend({}, defaultVal, options);
var clsa = new rocksilder(can);
clsa.init();
return clsa;
};
})(jQuery);

81
mode/plugin/jquery-rocktabs.js vendored Normal file
View File

@@ -0,0 +1,81 @@
/**
rocktabs 选择卡
caratenamechenxihu
caratetime214-04-06 21:40:00
email:qqqq2900@126.com
homepage:www.xh829.com
<div class="tabs" tabsindex="0">
<div class="tabstitle">
<ul>
<li index="1" class="li01">公告</li>
<li index="2">聚品茶</li>
<li index="3">促销信息</li>
</ul>
</div>
<div class="tabscont hborder" style="height:259px; border-top:none">
<div index="1">
</div>
<div index="2">
</div>
<div index="3">
</div>
</div>
</div>
*/
(function ($) {
function rocktabs(element, options){
var obj = element;
var can = options;
var rand = ''+parseInt(Math.random()*99999)+'';
var me = this;
this.rand = rand;
var titobj,contobj;
//初始化
this.init = function(){
titobj = obj.find("div[class^='tabstitle']").find('li[index]');
contobj = obj.find("div[class^='tabscont']").find('div[index]');
var tri = obj.attr('trigger');
if(tri == null || !tri)tri='click';
titobj[tri](function(){
me.clicktitle(this);
});
var ind = obj.attr('tabsindex');//选中第几个选择卡
if(ind == null || !ind)ind='0';
if(ind == 'last')ind = titobj.length-1;
this.indexshow(parseInt(ind));
};
this.clicktitle = function(o1){
var o = $(o1);
var oi = o.attr('index');
this.indexshow(parseInt(oi));
};
this.indexshow = function(oi){
titobj.removeClass();
$(titobj[oi]).addClass('li01');
contobj.hide();
$(contobj[oi]).show();
};
}
$.fn.rocktabs = function(options){
var defaultVal = {
trigger:'click'
};
var can = $.extend({}, defaultVal, options);
return this.each(function() {
var clsa = new rocktabs($(this), can);
clsa.init();
return clsa;
});
};
})(jQuery);

169
mode/plugin/jquery-rocktouch.js vendored Normal file
View File

@@ -0,0 +1,169 @@
/**
* 居于touch.js下屏幕滚动操作的
*/
(function ($) {
function rockclass(element, options){
var me = this;
var opts = $.extend({
ondragstart:function(){},
ondrag:function(){},
ondragrlend:function(){},
ondragrl:function(){},
scrollbool:false,
dropdown_bgcolor:'#f1f1f1', //下拉背景色
dropdown_success:function(){} //下拉回调
}, options);
var obj = element;
this._init=function(){
this.rand = js.getrand();
this.reloadbo = false;
this.mobj = $(obj);
for(var a in opts)this[a]=opts[a];
touch.on(obj, 'dragstart', function(e){
me._dragstart(e);
});
touch.on(obj, 'drag', function(e){
e.preventDefault()
me._drag(e);
});
touch.on(obj, 'dragend', function(e){
me._dragend(e);
});
};
this._dragstart=function(e){
if(this.reloadbo)return;
this.startarr = [e.distanceX, e.distanceY, this.mobj.scrollTop(), e.timeStamp];
this.mobj.stop();
this.ondragstart(e);
};
this._drag=function(e){
if(this.reloadbo)return;
var lx = e.direction;
if(lx=='right' || lx=='left'){
this._dragrightleft(e)
return;
}
this.upheight = 0;
if(this.scrollbool){
clearTimeout(this._hidescrollstime);
var hei = e.distanceY-this.startarr[1];
var lef = this.startarr[2]-hei;
if(lef<0)lef=0;
this.mobj.scrollTop(lef);
if(lef==0 && hei>0 && this.startarr[2]==0)this._upstart(hei,e);//继续下拉刷新
}
this.ondrag(e);
};
this._dragrightleft=function(e){
var yd = e.distanceX-this.startarr[0];
this.ondragrl(yd,e);
};
this._upstart=function(hei){
if(this.reloadbo)return;
hei = hei*0.5;
this.upheight = hei;
if(hei>200)return;
var sid = 'updowns_'+this.rand+'';
$('#'+sid+'').remove();
var tx= '↓ 下拉刷新';
if(hei>50)tx='↑ 释放立即刷新';
var s = '<div id="'+sid+'" style="height:'+hei+'px;overflow:hidden; line-height:50px;text-align:center;color:#666666;background:'+this.dropdown_bgcolor+';font-size:14px;position:relative"><div style="height:50px;line-height:50px;position:absolute;left:0px;bottom:0px;width:100%">'+tx+'</div></div>';
this.mobj.before(s);
};
this._dragend=function(e){
var lx = e.direction;
var jg,hei,heis,hms,jgs,ass;
jg = e.timeStamp-this.startarr[3];
if(lx=='right' || lx=='left'){
this._dragrightleftend(e);
return;
}
hei = e.distanceY-this.startarr[1];
heis= hei >0 ? -1 : 1;
hms = 200;
jgs = (hms-jg)/0.2 * heis;
if(jg<hms){
ass = this.mobj.scrollTop();
this.mobj.animate({scrollTop:ass+jgs}, hms-jg+400);
}
var sid = 'updowns_'+this.rand+'';
if(get(sid)){
var o1 = $('#'+sid+'');
if(this.upheight>50){
this.reloadbo = true;
o1.animate({'height':'50px'},200,function(){
o1.html('<img src="images/loading.gif" align="absmiddle"> 刷新中...');
me.dropdown_success(e);
});
}else{
$('#'+sid+'').slideUp(200);
}
}
};
this._dragrightleftend=function(e){
var yd = e.distanceX-this.startarr[0];
this.ondragrlend(yd,e);
};
this.dropdown_ok=function(ts){
this.reloadbo = false;
var o1 = $('#updowns_'+this.rand+'');
if(!ts)ts='√ 刷新成功';
o1.html(ts);
setTimeout(function(){o1.slideUp(200,function(){o1.remove();});}, 500);
};
this.scroll = function(){
this.scrollbool = true;
this.mobj.css('overflow','hidden');
var off = this.mobj.offset();
this.scrollsid = 'scrolllists_'+this.rand+'';
var l = off.left+this.mobj.width()-6;
var s = '<div style="height:80px;width:5px;background:rgba(0,0,0,0.3);display:none;overflow:hidden;border-radius:2px;right:0px;top:0px;position:absolute" id="'+this.scrollsid+'"></div>';
s='<div id="'+this.scrollsid+'_min" style="height:'+obj.clientHeight+'px;width:5px;overflow:hidden;position:fixed;z-index:1;background:rgba(0,0,0,0);left:'+l+'px;top:'+off.top+'px">'+s+'</div>';
$('body').append(s);
this.resize();
this.mobj.scroll(function(){
me._scrollov();
});
this.mobj.resize(function(){
me.resize();
});
};
this._hidescrolls = function(){
clearTimeout(this._hidescrollstime);
this._hidescrollstime = setTimeout(function(){
$('#'+me.scrollsid+'').fadeOut();
},1000);
};
this._scrollov=function(){
var top,zh,bl,mh,off,lets;
top = this.mobj.scrollTop();
off = this.mobj.offset();
lets= off.top;
zh = obj.scrollHeight-obj.clientHeight;
mh = obj.clientHeight-80; //可滚动高度
bl = top/zh;
var jgt = bl*mh;
$('#'+this.scrollsid+'').css('top',''+jgt+'px').show();
this._hidescrolls();
};
this.resize = function(){
var off = this.mobj.offset();
var l = off.left+this.mobj.width()-6,hei = obj.clientHeight;
$('#'+this.scrollsid+'_min').css({'left':''+l+'px','top':''+off.top+'px','height':''+hei+'px'});
}
};
$.fn.rocktouch = function(lx, options){
var can = $.extend({}, options);
var clsa = new rockclass(this[0], can);
clsa._init();
clsa[lx]();
return clsa;
};
})(jQuery);

1
mode/plugin/jquery-signature.js vendored Normal file
View File

@@ -0,0 +1 @@
/*! jq-signature.min.js, v1.0.0, minified 2015-05-25 */!function(a,b,c){"use strict";function d(a,b){this.element=a,this.$element=c(this.element),this.canvas=!1,this.$canvas=!1,this.ctx=!1,this.drawing=!1,this.currentPos={x:0,y:0},this.lastPos=this.currentPos,this._data=this.$element.data(),this.settings=c.extend({},f,b,this._data),this.init()}a.requestAnimFrame=function(b){return a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimaitonFrame||function(b){a.setTimeout(b,1e3/60)}}();var e="jqSignature",f={lineColor:"#222222",lineWidth:1,border:"1px dashed #AAAAAA",background:"#FFFFFF",width:300,height:100,autoFit:!1},g="<canvas></canvas>";d.prototype={init:function(){this.$canvas=c(g).appendTo(this.$element),this.$canvas.attr({width:this.settings.width,height:this.settings.height}),this.$canvas.css({boxSizing:"border-box",width:this.settings.width+"px",height:this.settings.height+"px",border:this.settings.border,background:this.settings.background,cursor:"crosshair"}),this.settings.autoFit===!0&&this._resizeCanvas(),this.canvas=this.$canvas[0],this._resetCanvas(),this.$canvas.on("mousedown touchstart",c.proxy(function(a){this.drawing=!0,this.lastPos=this.currentPos=this._getPosition(a)},this)),this.$canvas.on("mousemove touchmove",c.proxy(function(a){this.currentPos=this._getPosition(a)},this)),this.$canvas.on("mouseup touchend",c.proxy(function(a){this.drawing=!1;var b=c.Event("jq.signature.changed");this.$element.trigger(b)},this)),c(b).on("touchstart touchmove touchend",c.proxy(function(a){a.target===this.canvas&&a.preventDefault()},this));var d=this;!function e(){a.requestAnimFrame(e),d._renderCanvas()}()},clearCanvas:function(){this.canvas.width=this.canvas.width,this._resetCanvas()},getDataURL:function(){return this.canvas.toDataURL()},_getPosition:function(a){var b,c,d;return d=this.canvas.getBoundingClientRect(),a=a.originalEvent,-1!==a.type.indexOf("touch")?(b=a.touches[0].clientX-d.left,c=a.touches[0].clientY-d.top):(b=a.clientX-d.left,c=a.clientY-d.top),{x:b,y:c}},_renderCanvas:function(){this.drawing&&(this.ctx.moveTo(this.lastPos.x,this.lastPos.y),this.ctx.lineTo(this.currentPos.x,this.currentPos.y),this.ctx.stroke(),this.lastPos=this.currentPos)},_resetCanvas:function(){this.ctx=this.canvas.getContext("2d"),this.ctx.strokeStyle=this.settings.lineColor,this.ctx.lineWidth=this.settings.lineWidth},_resizeCanvas:function(){var a=this.$element.outerWidth();this.$canvas.attr("width",a),this.$canvas.css("width",a+"px")}},c.fn[e]=function(a){var b=arguments;if(void 0===a||"object"==typeof a)return this.each(function(){c.data(this,"plugin_"+e)||c.data(this,"plugin_"+e,new d(this,a))});if("string"==typeof a&&"_"!==a[0]&&"init"!==a){var f;return this.each(function(){var g=c.data(this,"plugin_"+e);g instanceof d&&"function"==typeof g[a]&&(f=g[a].apply(g,Array.prototype.slice.call(b,1))),"destroy"===a&&c.data(this,"plugin_"+e,null)}),void 0!==f?f:this}}}(window,document,jQuery);

5
mode/weui/weui.min.css vendored Normal file

File diff suppressed because one or more lines are too long