DiscuzX/upload/static/js/portal_diy.js

1086 lines
48 KiB
JavaScript
Raw Normal View History

2016-12-15 08:20:54 -05:00
/*
[Discuz!] (C)2001-2099 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: portal_diy.js 31093 2012-07-16 03:54:34Z zhangguosheng $
*/
var drag = new Drag();
drag.extend({
'getBlocksTimer' : '',
'blocks' : [],
'blockDefaultClass' : [{'key':'选择样式','value':''},{'key':'无边框且无边距','value':'cl_block_bm'},{'key':'样式1','value':'xbs_1'},{'key':'样式2','value':'xbs xbs_2'},{'key':'样式3','value':'xbs xbs_3'},{'key':'样式4','value':'xbs xbs_4'},{'key':'样式5','value':'xbs xbs_5'},{'key':'样式6','value':'xbs xbs_6'},{'key':'样式7','value':'xbs xbs_7'}],
'frameDefaultClass' : [{'key':'选择样式','value':''},{'key':'无边框且无边距','value':'cl_frame_bm'},{'key':'无边框框架','value':'xfs xfs_nbd'},{'key':'样式1','value':'xfs xfs_1'},{'key':'样式2','value':'xfs xfs_2'},{'key':'样式3','value':'xfs xfs_3'},{'key':'样式4','value':'xfs xfs_4'},{'key':'样式5','value':'xfs xfs_5'}],
setDefalutMenu : function () {
this.addMenu('default','标题','drag.openTitleEdit(event)');
this.addMenu('default','样式','drag.openStyleEdit(event)');
this.addMenu('default', '删除', 'drag.removeBlock(event)');
this.addMenu('block', '属性', 'drag.openBlockEdit(event)');
this.addMenu('block', '数据', 'drag.openBlockEdit(event,"data")');
this.addMenu('block', '更新', 'drag.blockForceUpdate(event)');
this.addMenu('frame', '导出', 'drag.frameExport(event)');
this.addMenu('tab', '导出', 'drag.frameExport(event)');
},
setSampleMenu : function () {
this.addMenu('block', '属性', 'drag.openBlockEdit(event)');
this.addMenu('block', '数据', 'drag.openBlockEdit(event,"data")');
this.addMenu('block', '更新', 'drag.blockForceUpdate(event)');
},
openBlockEdit : function (e,op) {
e = Util.event(e);
op = (op=='data') ? 'data' : 'block';
var bid = e.aim.id.replace('cmd_portal_block_','');
this.removeMenu();
showWindow('showblock', 'portal.php?mod=portalcp&ac=block&op='+op+'&bid='+bid+'&tpl='+document.diyform.template.value, 'get', -1);
},
getDiyClassName : function (id,index) {
var obj = this.getObjByName(id);
var ele = $(id);
var eleClassName = ele.className.replace(/ {2,}/g,' ');
var className = '',srcClassName = '';
if (obj instanceof Block) {
className = eleClassName.split(this.blockClass+' ');
srcClassName = this.blockClass;
} else if(obj instanceof Tab) {
className = eleClassName.split(this.tabClass+' ');
srcClassName = this.tabClass;
} else if(obj instanceof Frame) {
className = eleClassName.split(this.frameClass+' ');
srcClassName = this.frameClass;
}
if (index != null && index<className.length) {
className = className[index].replace(/^ | $/g,'');
} else {
className.push(srcClassName);
}
return className;
},
getOption : function (arr,value) {
var html = '';
for (var i in arr) {
if (typeof arr[i] == 'function') continue;
var selected = arr[i]['value'] == value ? ' selected="selected"' : '';
html += '<option value="'+arr[i]['value']+'"'+selected+'>'+arr[i]['key']+'</option>';
}
return html;
},
getRule : function (selector,attr) {
selector = spaceDiy.checkSelector(selector);
var value = (!selector || !attr) ? '' : spaceDiy.styleSheet.getRule(selector, attr);
return value;
},
openStyleEdit : function (e) {
e = Util.event(e);
var id = e.aim.id.replace('cmd_','');
var obj = this.getObjByName(id);
var objType = obj instanceof Block ? 1 : 0;
var bgcolor = '',bgimage = '',bgrepeat = '',html = '',diyClassName = '',fontcolor = '',fontsize = '',linkcolor = '',linkfontsize = '';
var bdtstyle = '',bdtwidth = '',bdtcolor = '',bdrstyle = '',bdrwidth = '',bdrcolor = '',bdbstyle = '',bdbwidth = '',bdbcolor = '',bdlstyle = '',bdlwidth = '',bdlcolor = '';
var margint = '',marginr = '',marginb = '',marginl = '',cmargint = '',cmarginr = '',cmarginb = '',cmarginl ='';
var selector = '#'+id;
bgcolor = this.getRule(selector, 'backgroundColor');
bgimage = this.getRule(selector, 'backgroundImage');
bgrepeat = this.getRule(selector, 'backgroundRepeat');
bgimage = bgimage && bgimage != 'none' ? Util.trimUrl(bgimage) : '';
fontcolor = this.getRule(selector+' .'+this.contentClass, 'color');
fontsize = this.getRule(selector+' .'+this.contentClass, 'fontSize').replace('px','');
var linkSelector = spaceDiy.checkSelector(selector+ ' .'+this.contentClass+' a');
linkcolor = this.getRule(linkSelector, 'color');
linkfontsize = this.getRule(linkSelector, 'fontSize').replace('px','');
fontcolor = Util.formatColor(fontcolor);
linkcolor = Util.formatColor(linkcolor);
bdtstyle = this.getRule(selector, 'borderTopStyle');
bdrstyle = this.getRule(selector, 'borderRightStyle');
bdbstyle = this.getRule(selector, 'borderBottomStyle');
bdlstyle = this.getRule(selector, 'borderLeftStyle');
bdtwidth = this.getRule(selector, 'borderTopWidth');
bdrwidth = this.getRule(selector, 'borderRightWidth');
bdbwidth = this.getRule(selector, 'borderBottomWidth');
bdlwidth = this.getRule(selector, 'borderLeftWidth');
bdtcolor = this.getRule(selector, 'borderTopColor');
bdrcolor = this.getRule(selector, 'borderRightColor');
bdbcolor = this.getRule(selector, 'borderBottomColor');
bdlcolor = this.getRule(selector, 'borderLeftColor');
bgcolor = Util.formatColor(bgcolor);
bdtcolor = Util.formatColor(bdtcolor);
bdrcolor = Util.formatColor(bdrcolor);
bdbcolor = Util.formatColor(bdbcolor);
bdlcolor = Util.formatColor(bdlcolor);
margint = this.getRule(selector, 'marginTop').replace('px','');
marginr = this.getRule(selector, 'marginRight').replace('px','');
marginb = this.getRule(selector, 'marginBottom').replace('px','');
marginl = this.getRule(selector, 'marginLeft').replace('px','');
if (objType == 1) {
selector = selector + ' .'+this.contentClass;
cmargint = this.getRule(selector, 'marginTop').replace('px','');
cmarginr = this.getRule(selector, 'marginRight').replace('px','');
cmarginb = this.getRule(selector, 'marginBottom').replace('px','');
cmarginl = this.getRule(selector, 'marginLeft').replace('px','');
}
diyClassName = this.getDiyClassName(id,0);
var widtharr = [];
for (var k=0;k<11;k++) {
var key = k+'px';
widtharr.push({'key':key,'value':key});
}
var bigarr = [];
for (var k=0;k<31;k++) {
key = k+'px';
bigarr.push({'key':key,'value':key});
}
var repeatarr = [{'key':'平铺','value':'repeat'},{'key':'不平铺','value':'no-repeat'},{'key':'横向平铺','value':'repeat-x'},{'key':'纵向平铺','value':'repeat-y'}];
var stylearr = [{'key':'无样式','value':'none'},{'key':'实线','value':'solid'},{'key':'点线','value':'dotted'},{'key':'虚线','value':'dashed'}];
var table = '<table class="tfm">';
table += '<tr><th>字体</th><td><input type="text" id="fontsize" class="px p_fre vm" value="'+fontsize+'" size="2" />px <input type="text" id="fontcolor" class="px p_fre vm" value="'+fontcolor+'" size="2" />';
table += getColorPalette(id+'_fontPalette', 'fontcolor' ,fontcolor)+'</td></tr>';
table += '<tr><th>链接</th><td><input type="text" id="linkfontsize" class="px p_fre vm" value="'+linkfontsize+'" size="2" />px <input type="text" id="linkcolor" class="px p_fre vm" value="'+linkcolor+'" size="2" />';
table += getColorPalette(id+'_linkPalette', 'linkcolor' ,linkcolor)+'</td></tr>';
var ulclass = 'borderul', opchecked = '';
if (bdtwidth != '' || bdtcolor != '' ) {
ulclass = 'borderula';
opchecked = ' checked="checked"';
}
table += '<tr><th>边框</th><td><ul id="borderul" class="'+ulclass+'">';
table += '<li><label>上</label><select class="ps vm" id="bdtwidth" ><option value="">大小</option>'+this.getOption(widtharr,bdtwidth)+'</select>';
table += ' <select class="ps vm" id="bdtstyle" ><option value="">样式</option>'+this.getOption(stylearr,bdtstyle)+'</select>';
table += ' 颜色 <input type="text" id="bdtcolor" class="px p_fre vm" value="'+bdtcolor+'" size="7" />';
table += getColorPalette(id+'_bdtPalette', 'bdtcolor' ,bdtcolor)+'</li>';
table += '<li class="bordera mtn"><label>右</label><select class="ps vm" id="bdrwidth" ><option value="">大小</option>'+this.getOption(widtharr,bdrwidth)+'</select>';
table += ' <select class="ps vm" id="bdrstyle" ><option value="">样式</option>'+this.getOption(stylearr,bdrstyle)+'</select>';
table += ' 颜色 <input type="text" id="bdrcolor" class="px p_fre vm" value="'+bdrcolor+'" size="7" />';
table += getColorPalette(id+'_bdrPalette', 'bdrcolor' ,bdrcolor)+'</li>';
table += '<li class="bordera mtn"><label>下</label><select class="ps vm" id="bdbwidth" ><option value="">大小</option>'+this.getOption(widtharr,bdbwidth)+'</select>';
table += ' <select class="ps vm" id="bdbstyle" ><option value="">样式</option>'+this.getOption(stylearr,bdbstyle)+'</select>';
table += ' 颜色 <input type="text" id="bdbcolor" class="px p_fre vm" value="'+bdbcolor+'" size="7" />';
table += getColorPalette(id+'_bdbPalette', 'bdbcolor' ,bdbcolor)+'</li>';
table += '<li class="bordera mtn"><label>左</label><select class="ps vm" id="bdlwidth" ><option value="">大小</option>'+this.getOption(widtharr,bdlwidth)+'</select>';
table += ' <select class="ps vm" id="bdlstyle" ><option value="">样式</option>'+this.getOption(stylearr,bdlstyle)+'</select>';
table += ' 颜色 <input type="text" id="bdlcolor" class="px p_fre vm" value="'+bdlcolor+'" size="7" />';
table += getColorPalette(id+'_bdlPalette', 'bdlcolor' ,bdlcolor)+'</li>';
table += '</ul><p class="ptm"><label><input id="borderop" type="checkbox" value="1" class="pc"'+opchecked+' onclick="$(\'borderul\').className = $(\'borderul\').className == \'borderul\' ? \'borderula\' : \'borderul\'">分别设置</label></p></td></tr>';
bigarr = [];
for (k=-20;k<31;k++) {
key = k+'px';
bigarr.push({'key':key,'value':key});
}
ulclass = 'borderul', opchecked = '';
if (margint != '') {
ulclass = 'borderula';
opchecked = ' checked="checked"';
}
table += '<tr><th>外边距</th><td><div id="margindiv" class="'+ulclass+'"><span><label>上</label> <input type="text" id="margint" class="px p_fre vm" value="'+margint+'" size="1"/>px </span>';
table += '<span class="bordera"><label>右</label> <input type="text" id="marginr" class="px p_fre vm" value="'+marginr+'" size="1" />px </span>';
table += '<span class="bordera"><label>下</label> <input type="text" id="marginb" class="px p_fre vm" value="'+marginb+'" size="1" />px </span>';
table += '<span class="bordera"><label>左</label> <input type="text" id="marginl" class="px p_fre vm" value="'+marginl+'" size="1" />px</span>';
table += '</div><p class="ptm"><label><input id="marginop" type="checkbox" value="1" class="pc"'+opchecked+' onclick="$(\'margindiv\').className = $(\'margindiv\').className == \'borderul\' ? \'borderula\' : \'borderul\'">分别设置</label></p></td></tr>';
if (objType == 1) {
ulclass = 'borderul', opchecked = '';
if (cmargint != '') {
ulclass = 'borderula';
opchecked = ' checked="checked"';
}
table += '<tr><th>内边距</th><td><div id="cmargindiv" class="'+ulclass+'"><span><label>上</label> <input class="px p_fre" id="cmargint" value="'+cmargint+'" size="1" />px </span>';
table += '<span class="bordera"><label>右</label> <input class="px p_fre" id="cmarginr" value="'+cmarginr+'" size="1" />px </span>';
table += '<span class="bordera"><label>下</label> <input class="px p_fre" id="cmarginb" value="'+cmarginb+'" size="1" />px </span>';
table += '<span class="bordera"><label>左</label> <input class="px p_fre" id="cmarginl" value="'+cmarginl+'" size="1" />px </span>';
table += '</div><p class="ptm"><label><input id="cmarginop" type="checkbox" value="1" class="pc"'+opchecked+' onclick="$(\'cmargindiv\').className = $(\'cmargindiv\').className == \'borderul\' ? \'borderula\' : \'borderul\'"> 分别设置</label></p></td></tr>';
}
table += '<tr><th>背景颜色</th><td><input type="text" id="bgcolor" class="px p_fre vm" value="'+bgcolor+'" size="4" />';
table += getColorPalette(id+'_bgcPalette', 'bgcolor' ,bgcolor)+'</td></tr>';
table += '<tr><th>背景图片</th><td><input type="text" id="bgimage" class="px p_fre vm" value="'+bgimage+'" size="25" /> <select class="ps vm" id="bgrepeat" >'+this.getOption(repeatarr,bgrepeat)+'</select></td></tr>';
var classarr = objType == 1 ? this.blockDefaultClass : this.frameDefaultClass;
table += '<tr><th>指定class</th><td><input type="text" id="diyClassName" class="px p_fre" value="'+diyClassName+'" size="8" /> <select class="ps vm" id="bgrepeat" onchange="$(\'diyClassName\').value=this.value;" >'+this.getOption(classarr, diyClassName)+'</select></td></tr>';
table += '</table>';
var wname = objType ? '模块' : '框架';
html = '<div class="c diywin" style="width:450px;position:relative;">'+table+'</div>';
var h = '<h3 class="flb"><em>编辑'+wname+'样式</em><span><a href="javascript:;" class="flbc" onclick="drag.closeStyleEdit(\''+id+'\');return false;" title="关闭">\n\
关闭</a></span></h3>';
var f = '<p class="o pns"><button onclick="drag.saveStyle(\''+id+'\');drag.closeStyleEdit(\''+id+'\');" class="pn pnc" value="true">\n\
<strong>确定</strong></button><button onclick="drag.closeStyleEdit(\''+id+'\')" class="pn" value="true"><strong></strong></button></p>';
this.removeMenu(e);
showWindow('eleStyle',h + html + f, 'html', 0);
},
closeStyleEdit : function (id) {
this.deleteFrame([id+'_bgcPalette',id+'_bdtPalette',id+'_bdrPalette',id+'_bdbPalette',id+'_bdlPalette',id+'_fontPalette',id+'_linkPalette']);
hideWindow('eleStyle');
},
saveStyle : function (id) {
var className = this.getDiyClassName(id);
var diyClassName = $('diyClassName').value;
$(id).className = diyClassName+' '+className[2]+' '+className[1];
var obj = this.getObjByName(id);
var objType = obj instanceof Block ? 1 : 0;
if (objType == 1) this.saveBlockClassName(id,diyClassName);
var selector = '#'+id;
var random = Math.random();
spaceDiy.setStyle(selector, 'background-color', $('bgcolor').value, random);
var bgimage = $('bgimage').value && $('bgimage') != 'none' ? Util.url($('bgimage').value) : '';
var bgrepeat = bgimage ? $('bgrepeat').value : '';
if ($('bgcolor').value != '' && bgimage == '') bgimage = 'none';
spaceDiy.setStyle(selector, 'background-image', bgimage, random);
spaceDiy.setStyle(selector, 'background-repeat', bgrepeat, random);
spaceDiy.setStyle(selector+' .'+this.contentClass, 'color', $('fontcolor').value, random);
spaceDiy.setStyle(selector+' .'+this.contentClass, 'font-size', this.formatValue('fontsize'), random);
spaceDiy.setStyle(spaceDiy.checkSelector(selector+' .'+this.contentClass+' a'), 'color', $('linkcolor').value, random);
var linkfontsize = parseInt($('linkfontsize').value);
linkfontsize = isNaN(linkfontsize) ? '' : linkfontsize+'px';
spaceDiy.setStyle(spaceDiy.checkSelector(selector+' .'+this.contentClass+' a'), 'font-size', this.formatValue('linkfontsize'), random);
if ($('borderop').checked) {
var bdtwidth = $('bdtwidth').value,bdrwidth = $('bdrwidth').value,bdbwidth = $('bdbwidth').value,bdlwidth = $('bdlwidth').value;
var bdtstyle = $('bdtstyle').value,bdrstyle = $('bdrstyle').value,bdbstyle = $('bdbstyle').value,bdlstyle = $('bdlstyle').value;
var bdtcolor = $('bdtcolor').value,bdrcolor = $('bdrcolor').value,bdbcolor = $('bdbcolor').value,bdlcolor = $('bdlcolor').value;
} else {
bdlwidth = bdbwidth = bdrwidth = bdtwidth = $('bdtwidth').value;
bdlstyle = bdbstyle = bdrstyle = bdtstyle = $('bdtstyle').value;
bdlcolor = bdbcolor = bdrcolor = bdtcolor = $('bdtcolor').value;
}
spaceDiy.setStyle(selector, 'border', '', random);
spaceDiy.setStyle(selector, 'border-top-width', bdtwidth, random);
spaceDiy.setStyle(selector, 'border-right-width', bdrwidth, random);
spaceDiy.setStyle(selector, 'border-bottom-width', bdbwidth, random);
spaceDiy.setStyle(selector, 'border-left-width', bdlwidth, random);
spaceDiy.setStyle(selector, 'border-top-style', bdtstyle, random);
spaceDiy.setStyle(selector, 'border-right-style', bdrstyle, random);
spaceDiy.setStyle(selector, 'border-bottom-style', bdbstyle, random);
spaceDiy.setStyle(selector, 'border-left-style', bdlstyle, random);
spaceDiy.setStyle(selector, 'border-top-color', bdtcolor, random);
spaceDiy.setStyle(selector, 'border-right-color', bdrcolor, random);
spaceDiy.setStyle(selector, 'border-bottom-color', bdbcolor, random);
spaceDiy.setStyle(selector, 'border-left-color', bdlcolor, random);
if ($('marginop').checked) {
var margint = this.formatValue('margint'),marginr = this.formatValue('marginr'), marginb = this.formatValue('marginb'), marginl = this.formatValue('marginl');
} else {
marginl = marginb = marginr = margint = this.formatValue('margint');
}
spaceDiy.setStyle(selector, 'margin-top',margint, random);
spaceDiy.setStyle(selector, 'margin-right', marginr, random);
spaceDiy.setStyle(selector, 'margin-bottom', marginb, random);
spaceDiy.setStyle(selector, 'margin-left', marginl, random);
if (objType == 1) {
if ($('cmarginop').checked) {
var cmargint = this.formatValue('cmargint'),cmarginr = this.formatValue('cmarginr'), cmarginb = this.formatValue('cmarginb'), cmarginl = this.formatValue('cmarginl');
} else {
cmarginl = cmarginb = cmarginr = cmargint = this.formatValue('cmargint');
}
selector = selector + ' .'+this.contentClass;
spaceDiy.setStyle(selector, 'margin-top', cmargint, random);
spaceDiy.setStyle(selector, 'margin-right', cmarginr, random);
spaceDiy.setStyle(selector, 'margin-bottom', cmarginb, random);
spaceDiy.setStyle(selector, 'margin-left', cmarginl, random);
}
this.setClose();
},
formatValue : function(id) {
var value = '';
if ($(id)) {
value = parseInt($(id).value);
value = isNaN(value) ? '' : value+'px';
}
return value;
},
saveBlockClassName : function(id,className){
if (!$('saveblockclassname')){
var dom = document.createElement('div');
dom.innerHTML = '<form id="saveblockclassname" method="post" action=""><input type="hidden" name="classname" value="" />\n\
<input type="hidden" name="formhash" value="'+document.diyform.formhash.value+'" /><input type="hidden" name="saveclassnamesubmit" value="true"/></form>';
$('append_parent').appendChild(dom.childNodes[0]);
}
$('saveblockclassname').action = 'portal.php?mod=portalcp&ac=block&op=saveblockclassname&bid='+id.replace('portal_block_','');
document.forms.saveblockclassname.classname.value = className;
ajaxpost('saveblockclassname','ajaxwaitid');
},
closeTitleEdit : function (fid) {
this.deleteFrame(fid+'bgPalette_0');
for (var i = 0 ; i<=10; i++) {
this.deleteFrame(fid+'Palette_'+i);
}
hideWindow('frameTitle');
},
openTitleEdit : function (e) {
if (typeof e == 'object') {
e = Util.event(e);
var fid = e.aim.id.replace('cmd_','');
} else {
fid = e;
}
var obj = this.getObjByName(fid);
var titlename = obj instanceof Block ? '模块' : '框架';
var repeatarr = [{'key':'平铺','value':'repeat'},{'key':'不平铺','value':'no-repeat'},{'key':'横向平铺','value':'repeat-x'},{'key':'纵向平铺','value':'repeat-y'}];
var len = obj.titles.length;
var bgimage = obj.titles.style && obj.titles.style['background-image'] ? obj.titles.style['background-image'] : '';
bgimage = bgimage != 'none' ? Util.trimUrl(bgimage) : '';
var bgcolor = obj.titles.style && obj.titles.style['background-color'] ? obj.titles.style['background-color'] : '';
bgcolor = Util.formatColor(bgcolor);
var bgrepeat = obj.titles.style && obj.titles.style['background-repeat'] ? obj.titles.style['background-repeat'] : '';
var common = '<table class="tfm">';
common += '<tr><th>背景图片:</th><td><input type="text" id="titleBgImage" class="px p_fre" value="'+bgimage+'" /> <select class="ps vm" id="titleBgRepeat" >'+this.getOption(repeatarr,bgrepeat)+'</select></td></tr>';
common += '<tr><th>背景颜色:</th><td><input type="text" id="titleBgColor" class="px p_fre" value="'+bgcolor+'" size="7" />';
common += getColorPalette(fid+'bgPalette_0', 'titleBgColor' ,bgcolor)+'</td></tr>';
if (obj instanceof Tab) {
var switchArr = [{'key':'点击','value':'click'},{'key':'滑过','value':'mouseover'}];
var switchType = obj.titles['switchType'] ? obj.titles['switchType'][0] : 'click';
common += '<tr><th>切换类型:</th><td><select class="ps" id="switchType" >'+this.getOption(switchArr,switchType)+'</select></td></tr>';
}
common += '</table><hr class="l">';
var li = '';
li += '<div id="titleInput_0"><table class="tfm"><tr><th>'+titlename+'标题:</th><td><input type="text" id="titleText_0" class="px p_fre" value="`title`" /></td></tr>';
li += '<tr><th>链接:</th><td><input type="text" id="titleLink_0" class="px p_fre" value="`link`" /></td></tr>';
li += '<tr><th>图片:</th><td><input type="text" id="titleSrc_0" class="px p_fre" value="`src`" /></td></tr>';
li += '<tr><th>位置:</th><td><select id="titleFloat_0" class="ps vm"><option value="" `left`>居左</option><option value="right" `right`>居右</option></select>';
li += '&nbsp;&nbsp;偏移量: <input type="text" id="titleMargin_0" class="px p_fre vm" value="`margin`" size="2" />px</td></tr>';
li += '<tr><th>字体:</th><td><select class="ps vm" id="titleSize_0" ><option value="">大小</option>`size`</select>';
li += '&nbsp;&nbsp;颜色: <input type="text" id="titleColor_0" class="px p_fre vm" value="`color`" size="4" />';
li += getColorPalette(fid+'Palette_0', 'titleColor_0' ,'`color`');
li += '</td></tr><tr><td colspan="2"><hr class="l"></td></tr></table></div>';
var html = '';
if (obj.titles['first']) {
html = this.getTitleHtml(obj, 'first', li);
}
for (var i = 0; i < len; i++ ) {
html += this.getTitleHtml(obj, i, li);
}
if (!html) {
var bigarr = [];
for (var k=7;k<27;k++) {
var key = k+'px';
bigarr.push({'key':key,'value':key});
}
var ssize = this.getOption(bigarr,ssize);
html = li.replace('`size`', ssize).replace(/`\w+`/g, '');
}
var c = len + 1;
html = '<div class="c diywin" style="width:450px;height:400px; overflow:auto;"><table cellspacing="0" cellpadding="0" class="tfm pns"><tr><th></th><td><button type="button" id="addTitleInput" class="pn" onclick="drag.addTitleInput('+c+');"><em>添加新标题</em></button></td></tr></table><div id="titleEdit">'+html+common+'</div></div>';
var h = '<h3 class="flb"><em>编辑'+titlename+'标题</em><span><a href="javascript:;" class="flbc" onclick="drag.closeTitleEdit(\''+fid+'\');return false;" title="关闭">\n\
关闭</a></span></h3>';
var f = '<p class="o pns"><button onclick="drag.saveTitleEdit(\''+fid+'\');drag.closeTitleEdit(\''+fid+'\');" class="pn pnc" value="true">\n\
<strong>确定</strong></button><button onclick="drag.closeTitleEdit(\''+fid+'\')" class="pn" value="true"><strong></strong></button></p>';
this.removeMenu(e);
showWindow('frameTitle',h + html + f, 'html', 0);
},
getTitleHtml : function (obj, i, li) {
var shtml = '',stitle = '',slink = '',sfloat = '',ssize = '',scolor = '',margin = '',src = '';
var c = i == 'first' ? '0' : i+1;
stitle = obj.titles[i]['text'] ? obj.titles[i]['text'] : '';
slink = obj.titles[i]['href'] ? obj.titles[i]['href'] : '';
sfloat = obj.titles[i]['float'] ? obj.titles[i]['float'] : '';
margin = obj.titles[i]['margin'] ? obj.titles[i]['margin'] : '';
ssize = obj.titles[i]['font-size'] ? obj.titles[i]['font-size']+'px' : '';
scolor = obj.titles[i]['color'] ? obj.titles[i]['color'] : '';
src = obj.titles[i]['src'] ? obj.titles[i]['src'] : '';
var bigarr = [];
for (var k=7;k<27;k++) {
var key = k+'px';
bigarr.push({'key':key,'value':key});
}
ssize = this.getOption(bigarr,ssize);
shtml = li.replace(/_0/g, '_' + c).replace('`title`', stitle).replace('`link`', slink).replace('`size`', ssize).replace('`src`',src);
var left = sfloat == '' ? 'selected' : '';
var right = sfloat == 'right' ? 'selected' : '';
scolor = Util.formatColor(scolor);
shtml = shtml.replace(/`color`/g, scolor).replace('`left`', left).replace('`right`', right).replace('`margin`', margin);
return shtml;
},
addTitleInput : function (c) {
if (c > 10) return false;
var pre = $('titleInput_'+(c-1));
var dom = document.createElement('div');
dom.className = 'tfm';
var exp = new RegExp('_'+(c-1), 'g');
dom.id = 'titleInput_'+c;
dom.innerHTML = pre.innerHTML.replace(exp, '_'+c);
Util.insertAfter(dom, pre);
$('addTitleInput').onclick = function () {drag.addTitleInput(c+1)};
},
saveTitleEdit : function (fid) {
var obj = this.getObjByName(fid);
var ele = $(fid);
var children = ele.childNodes;
var title = first = '';
var hastitle = 0;
var c = 0;
for (var i in children) {
if (typeof children[i] == 'object' && Util.hasClass(children[i], this.titleClass)) {
title = children[i];
break;
}
}
if (title) {
var arrDel = [];
for (var i in title.childNodes) {
if (typeof title.childNodes[i] == 'object' && Util.hasClass(title.childNodes[i], this.titleTextClass)) {
first = title.childNodes[i];
this._createTitleHtml(first, c);
if (first.innerHTML != '') hastitle = 1;
} else if (typeof title.childNodes[i] == 'object' && !Util.hasClass(title.childNodes[i], this.moveableObject)) {
arrDel.push(title.childNodes[i]);
}
}
for (var i = 0; i < arrDel.length; i++) {
title.removeChild(arrDel[i]);
}
} else {
var titleClassName = '';
if(obj instanceof Tab) {
titleClassName = 'tab-';
} else if(obj instanceof Frame) {
titleClassName = 'frame-';
} else if(obj instanceof Block) {
titleClassName = 'block';
}
title = document.createElement('div');
title.className = titleClassName + 'title' + ' '+ this.titleClass;
ele.insertBefore(title,ele.firstChild);
}
if (!first) {
var first = document.createElement('span');
first.className = this.titleTextClass;
this._createTitleHtml(first, c);
if (first.innerHTML != '') {
title.insertBefore(first, title.firstChild);
hastitle = 1;
}
}
while ($('titleText_'+(++c))) {
var dom = document.createElement('span');
dom.className = 'subtitle';
this._createTitleHtml(dom, c);
if (dom.innerHTML != '') {
if (dom.innerHTML) Util.insertAfter(dom, first);
first = dom;
hastitle = 1;
}
}
var titleBgImage = $('titleBgImage').value;
titleBgImage = titleBgImage && titleBgImage != 'none' ? Util.url(titleBgImage) : '';
if ($('titleBgColor').value != '' && titleBgImage == '') titleBgImage = 'none';
title.style['backgroundImage'] = titleBgImage;
if (titleBgImage) {
title.style['backgroundRepeat'] = $('titleBgRepeat').value;
}
title.style['backgroundColor'] = $('titleBgColor').value;
if ($('switchType')) {
title.switchType = [];
title.switchType[0] = $('switchType').value ? $('switchType').value : 'click';
title.setAttribute('switchtype',title.switchType[0]);
}
obj.titles = [];
if (hastitle == 1) {
this._initTitle(obj,title);
} else {
if (!(obj instanceof Tab)) title.parentNode.removeChild(title);
title = '';
this.initPosition();
}
if (obj instanceof Block) this.saveBlockTitle(fid,title);
this.setClose();
},
_createTitleHtml : function (ele,tid) {
var html = '',img = '';
tid = '_' + tid ;
var ttext = $('titleText'+tid).value;
var tlink = $('titleLink'+tid).value;
var tfloat = $('titleFloat'+tid).value;
var tmargin_ = tfloat != '' ? tfloat : 'left';
var tmargin = $('titleMargin'+tid).value;
var tsize = $('titleSize'+tid).value;
var tcolor = $('titleColor'+tid).value;
var src = $('titleSrc'+tid).value;
var divStyle = 'float:'+tfloat+';margin-'+tmargin_+':'+tmargin+'px;font-size:'+tsize;
var aStyle = 'color:'+tcolor+' !important;';
if (src) {
img = '<img class="vm" src="'+src+'" alt="'+ttext+'" />';
}
if (ttext || img) {
if (tlink) {
Util.setStyle(ele, divStyle);
html = '<a href='+tlink+' target="_blank" style="'+aStyle+'">'+img+ttext+'</a>';
} else {
Util.setStyle(ele, divStyle+';'+aStyle);
html = img+ttext;
}
}
ele.innerHTML = html;
return true;
},
saveBlockTitle : function (id,title) {
if (!$('saveblocktitle')){
var dom = document.createElement('div');
dom.innerHTML = '<form id="saveblocktitle" method="post" action=""><input type="hidden" name="title" value="" />\n\
<input type="hidden" name="formhash" value="'+document.diyform.formhash.value+'" /><input type="hidden" name="savetitlesubmit" value="true"/></form>';
$('append_parent').appendChild(dom.childNodes[0]);
}
$('saveblocktitle').action = 'portal.php?mod=portalcp&ac=block&op=saveblocktitle&bid='+id.replace('portal_block_','');
var html = !title ? '' : title.outerHTML;
document.forms.saveblocktitle.title.value = html;
ajaxpost('saveblocktitle','ajaxwaitid');
},
removeBlock : function (e, flag) {
if ( typeof e !== 'string') {
e = Util.event(e);
var id = e.aim.id.replace('cmd_','');
} else {
var id = e;
}
if ($(id) == null) return false;
var obj = this.getObjByName(id);
if (!flag) {
if (!confirm('您确实要删除吗,删除以后将不可恢复')) return false;
}
if (obj instanceof Block) {
this.delBlock(id);
} else if (obj instanceof Frame) {
this.delFrame(obj);
}
$(id).parentNode.removeChild($(id));
var content = $(id+'_content');
if(content) {
content.parentNode.removeChild(content);
}
this.setClose();
this.initPosition();
this.initChkBlock();
},
delBlock : function (bid) {
spaceDiy.removeCssSelector('#'+bid);
this.stopSlide(bid);
},
delFrame : function (frame) {
spaceDiy.removeCssSelector('#'+frame.name);
for (var i in frame['columns']) {
if (frame['columns'][i] instanceof Column) {
var children = frame['columns'][i]['children'];
for (var j in children) {
if (children[j] instanceof Frame) {
this.delFrame(children[j]);
} else if (children[j] instanceof Block) {
this.delBlock(children[j]['name']);
}
}
}
}
this.setClose();
},
initChkBlock : function (data) {
if (typeof name == 'undefined' || data == null ) data = this.data;
if ( data instanceof Frame) {
this.initChkBlock(data['columns']);
} else if (data instanceof Block) {
var el = $('chk'+data.name);
if (el != null) el.checked = true;
} else if (typeof data == 'object') {
for (var i in data) {
this.initChkBlock(data[i]);
}
}
},
getBlockData : function (blockname) {
var bid = this.dragObj.id;
var eleid = bid;
if (bid.indexOf('portal_block_') != -1) {
eleid = 0;
}else {
bid = 0;
}
showWindow('showblock', 'portal.php?mod=portalcp&ac=block&op=block&classname='+blockname+'&bid='+bid+'&eleid='+eleid+'&tpl='+document.diyform.template.value,'get',-1);
drag.initPosition();
this.fn = '';
return true;
},
stopSlide : function (id) {
if (typeof slideshow == 'undefined' || typeof slideshow.entities == 'undefined') return false;
var slidebox = $C('slidebox',$(id));
if(slidebox && slidebox.length > 0) {
if(slidebox[0].id) {
var timer = slideshow.entities[slidebox[0].id].timer;
if(timer) clearTimeout(timer);
slideshow.entities[slidebox[0].id] = '';
}
}
},
blockForceUpdate : function (e,all) {
if ( typeof e !== 'string') {
e = Util.event(e);
var id = e.aim.id.replace('cmd_','');
} else {
var id = e;
}
if ($(id) == null) return false;
var bid = id.replace('portal_block_', '');
var bcontent = $(id+'_content');
if (!bcontent) {
bcontent = document.createElement('div');
bcontent.id = id+'_content';
bcontent.className = this.contentClass;
}
this.stopSlide(id);
var height = Util.getFinallyStyle(bcontent, 'height');
bcontent.style.lineHeight = height == 'auto' ? '' : (height == '0px' ? '20px' : height);
var boldcontent = bcontent.innerHTML;
bcontent.innerHTML = '<center>正在加载内容...</center>';
var x = new Ajax();
x.get('portal.php?mod=portalcp&ac=block&op=getblock&forceupdate=1&inajax=1&bid='+bid+'&tpl='+document.diyform.template.value, function(s) {
if(s.indexOf('errorhandle_') != -1) {
bcontent.innerHTML = boldcontent;
runslideshow();
showDialog('抱歉,您没有权限添加或编辑模块', 'alert');
doane();
} else {
var obj = document.createElement('div');
obj.innerHTML = s;
bcontent.parentNode.removeChild(bcontent);
$(id).innerHTML = obj.childNodes[0].innerHTML;
evalscript(s);
if(s.indexOf('runslideshow()') != -1) {runslideshow();}
drag.initPosition();
if (all) {drag.getBlocks();}
}
});
},
frameExport : function (e) {
var flag = true;
if (drag.isChange) {
flag = confirm('您已经做过修改,请保存后再做导出,否则导出的数据将不包括您这次所做的修改。');
}
if (flag) {
if ( typeof e == 'object') {
e = Util.event(e);
var frame = e.aim.id.replace('cmd_','');
} else {
frame = e == undefined ? '' : e;
}
if (!$('frameexport')){
var dom = document.createElement('div');
dom.innerHTML = '<form id="frameexport" method="post" action="" target="_blank"><input type="hidden" name="frame" value="" />\n\
<input type="hidden" name="tpl" value="'+document.diyform.template.value+'" />\n\
<input type="hidden" name="tpldirectory" value="'+document.diyform.tpldirectory.value+'" />\n\
<input type="hidden" name="diysign" value="'+document.diyform.diysign.value+'" />\n\
<input type="hidden" name="formhash" value="'+document.diyform.formhash.value+'" /><input type="hidden" name="exportsubmit" value="true"/></form>';
$('append_parent').appendChild(dom.childNodes[0]);
}
$('frameexport').action = 'portal.php?mod=portalcp&ac=diy&op=export';
document.forms.frameexport.frame.value = frame;
document.forms.frameexport.submit();
}
doane();
},
openFrameImport : function (type) {
type = type || 0;
showWindow('showimport','portal.php?mod=portalcp&ac=diy&op=import&tpl='+document.diyform.template.value+'&tpldirectory='+document.diyform.tpldirectory.value+'&diysign='+document.diyform.diysign.value+'&type='+type, 'get');
},
endBlockForceUpdateBatch : function () {
if($('allupdate')) {
$('allupdate').innerHTML = '已操作完成。';
$('fwin_dialog_submit').style.display = '';
$('fwin_dialog_cancel').style.display = 'none';
}
this.initPosition();
},
getBlocks : function () {
if (this.blocks.length == 0) {
this.endBlockForceUpdateBatch();
}
if (this.blocks.length > 0) {
var cur = this.blocksLen - this.blocks.length;
if($('allupdate')) {
$('allupdate').innerHTML = '共<span style="color:blue">'+this.blocksLen+'</span>个模块,正在更新第<span style="color:red">'+cur+'</span>个,已完成<span style="color:red">'+(parseInt(cur / this.blocksLen * 100)) + '%</span>';
var bid = 'portal_block_'+this.blocks.pop();
this.blockForceUpdate(bid,true);
}
}
},
blockForceUpdateBatch : function (blocks) {
if (blocks) {
this.blocks = blocks;
} else {
this.initPosition();
this.blocks = this.allBlocks;
}
this.blocksLen = this.blocks.length;
showDialog('<div id="allupdate" style="width:350px;line-height:28px;">开始更新...</div>','confirm','更新模块数据', '', true, 'drag.endBlockForceUpdateBatch()');
var wait = function() {
if($('fwin_dialog_submit')) {
$('fwin_dialog_submit').style.display = 'none';
$('fwin_dialog_cancel').className = 'pn pnc';
setTimeout(function(){drag.getBlocks()},500);
} else {
setTimeout(wait,100);
}
};
wait();
doane();
},
clearAll : function () {
if (confirm('您确实要清空页面上所在DIY数据吗,清空以后将不可恢复')) {
for (var i in this.data) {
for (var j in this.data[i]) {
if (typeof(this.data[i][j]) == 'object' && this.data[i][j].name.indexOf('_temp')<0) {
this.delFrame(this.data[i][j]);
$(this.data[i][j].name).parentNode.removeChild($(this.data[i][j].name));
}
}
}
this.initPosition();
this.setClose();
}
doane();
},
createObj : function (e,objType,contentType) {
if (objType == 'block' && !this.checkHasFrame()) {alert("提示:未找到框架,请先添加框架。");spaceDiy.getdiy('frame');return false;}
e = Util.event(e);
if(e.which != 1 ) {return false;}
var html = '',offWidth = 0;
if (objType == 'frame') {
html = this.getFrameHtml(contentType);
offWidth = 600;
} else if (objType == 'block') {
html = this.getBlockHtml(contentType);
offWidth = 200;
this.fn = function (e) {drag.getBlockData(contentType);};
} else if (objType == 'tab') {
html = this.getTabHtml(contentType);
offWidth = 300;
}
var ele = document.createElement('div');
ele.innerHTML = html;
ele = ele.childNodes[0];
document.body.appendChild(ele);
this.dragObj = this.overObj = ele;
if (!this.getTmpBoxElement()) return false;
var scroll = Util.getScroll();
this.dragObj.style.position = 'absolute';
this.dragObj.style.left = e.clientX + scroll.l - 60 + "px";
this.dragObj.style.top = e.clientY + scroll.t - 10 + "px";
this.dragObj.style.width = offWidth + 'px';
this.dragObj.style.cursor = 'move';
this.dragObj.lastMouseX = e.clientX;
this.dragObj.lastMouseY = e.clientY;
Util.insertBefore(this.tmpBoxElement,this.overObj);
Util.addClass(this.dragObj,this.moving);
this.dragObj.style.zIndex = 500 ;
this.scroll = Util.getScroll();
this.newFlag = true;
var _method = this;
document.onscroll = function(){Drag.prototype.resetObj.call(_method, e);};
window.onscroll = function(){Drag.prototype.resetObj.call(_method, e);};
document.onmousemove = function (e){Drag.prototype.drag.call(_method, e);};
document.onmouseup = function (e){Drag.prototype.dragEnd.call(_method, e);};
},
getFrameHtml : function (type) {
var id = 'frame'+Util.getRandom(6);
var className = [this.frameClass,this.moveableObject].join(' ');
className = className + ' cl frame-' + type;
var str = '<div id="'+id+'" class="'+className+'">';
str += '<div id="'+id+'_title" class="'+this.titleClass+' '+this.frameTitleClass+'"><span class="'+this.titleTextClass+'">'+type+'框架</span></div>';
var cols = type.split('-');
var clsl='',clsc='',clsr='';
clsl = ' frame-'+type+'-l';
clsc = ' frame-'+type+'-c';
clsr = ' frame-'+type+'-r';
var len = cols.length;
if (len == 1) {
str += '<div id="'+id+'_left" class="'+this.moveableColumn+clsc+'"></div>';
} else if (len == 2) {
str += '<div id="'+id+'_left" class="'+this.moveableColumn+clsl+ '"></div>';
str += '<div id="'+id+'_center" class="'+this.moveableColumn+clsr+ '"></div>';
} else if (len == 3) {
str += '<div id="'+id+'_left" class="'+this.moveableColumn+clsl+'"></div>';
str += '<div id="'+id+'_center" class="'+this.moveableColumn+clsc+'"></div>';
str += '<div id="'+id+'_right" class="'+this.moveableColumn+clsr+'"></div>';
}
str += '</div>';
return str;
},
getTabHtml : function () {
var id = 'tab'+Util.getRandom(6);
var className = [this.tabClass,this.moveableObject].join(' ');
className = className + ' cl';
var titleClassName = [this.tabTitleClass, this.titleClass, this.moveableColumn, 'cl'].join(' ');
var str = '<div id="'+id+'" class="'+className+'">';
str += '<div id="'+id+'_title" class="'+titleClassName+'"><span class="'+this.titleTextClass+'">tab标签</span></div>';
str += '<div id="'+id+'_content" class="'+this.tabContentClass+'"></div>';
str += '</div>';
return str;
},
getBlockHtml : function () {
var id = 'block'+Util.getRandom(6);
var str = '<div id="'+id+'" class="block move-span"></div>';
str += '</div>';
return str;
},
setClose : function () {
if(this.sampleMode) {
return true;
} else {
if (!this.isChange) {
window.onbeforeunload = function() {
return '您的数据已经修改,退出将无法保存您的修改。';
};
}
this.isChange = true;
spaceDiy.enablePreviewButton();
}
},
clearClose : function () {
this.isChange = false;
this.isClearClose = true;
window.onbeforeunload = function () {};
},
goonDIY : function () {
if ($('prefile').value == '1') {
showDialog('<div style="line-height:28px;">按继续按钮将打开暂存数据并DIY<br />按删除按钮将删除暂存数据。</div>','confirm','是否继续暂存数据的DIY', function(){location.replace(location.href+'&preview=yes');}, true, 'spaceDiy.cancelDIY()', '', '继续', '删除');
} else if (location.search.indexOf('preview=yes') > -1) {
spaceDiy.enablePreviewButton();
} else {
spaceDiy.disablePreviewButton();
}
setInterval(function(){spaceDiy.save('savecache', 1);},180000);
}
});
var spaceDiy = new DIY();
spaceDiy.extend({
save : function (optype,rejs) {
optype = typeof optype == 'undefined' ? '' : optype;
if (optype == 'savecache' && !drag.isChange) {return false;}
var tplpre = document.diyform.template.value.split(':');
if (!optype) {
if (['portal/portal_topic_content', 'portal/list', 'portal/view'].indexOf(tplpre[0]) == -1) {
if (document.diyform.template.value.indexOf(':') > -1 && !document.selectsave) {
var schecked = '',dchecked = '';
if (document.diyform.savemod.value == '1') {
dchecked = ' checked';
} else {
schecked = ' checked';
}
showDialog('<form name="selectsave" action="" method="get"><label><input type="radio" value="0" name="savemod"'+schecked+' />应用于此类全部页面</label>\n\
<label><input type="radio" value="1" name="savemod"'+dchecked+' />只应用于本页面</label></form>','notice', '', spaceDiy.save);
return false;
}
if (document.selectsave) {
if (document.selectsave.savemod[0].checked) {
document.diyform.savemod.value = document.selectsave.savemod[0].value;
} else {
document.diyform.savemod.value = document.selectsave.savemod[1].value;
}
}
} else {
document.diyform.savemod.value = 1;
}
} else if (optype == 'savecache') {
if (!drag.isChange) return false;
this.checkPreview_form();
document.diyform.rejs.value = rejs ? 0 : 1;
} else if (optype =='preview') {
if (drag.isChange) {
optype = 'savecache';
} else {
this.checkPreview_form();
$('preview_form').submit();
return false;
}
}
document.diyform.action = document.diyform.action.replace(/[&|\?]inajax=1/, '');
document.diyform.optype.value = optype;
document.diyform.spacecss.value = spaceDiy.getSpacecssStr();
document.diyform.style.value = spaceDiy.style;
document.diyform.layoutdata.value = drag.getPositionStr();
document.diyform.gobackurl.value = spaceDiy.cancelDiyUrl();
drag.clearClose();
if (optype == 'savecache') {
document.diyform.handlekey.value = 'diyform';
ajaxpost('diyform','ajaxwaitid','ajaxwaitid','onerror');
} else {
saveUserdata('diy_advance_mode', '');
document.diyform.submit();
}
},
checkPreview_form : function () {
if (!$('preview_form')) {
var dom = document.createElement('div');
var search = '';
var sarr = location.search.replace('?','').split('&');
for (var i = 0;i<sarr.length;i++){
var kv = sarr[i].split('=');
if (kv.length>1 && kv[0] != 'diy') {
search += '<input type="hidden" value="'+kv[1]+'" name="'+kv[0]+'" />';
}
}
search += '<input type="hidden" value="yes" name="preview" />';
dom.innerHTML = '<form action="'+location.href+'" target="_bloak" method="get" id="preview_form">'+search+'</form>';
var form = dom.getElementsByTagName('form');
$('append_parent').appendChild(form[0]);
}
},
cancelDiyUrl : function () {
return location.href.replace(/[\?|\&]diy\=yes/g,'').replace(/[\?|\&]preview=yes/,'');
},
cancel : function () {
saveUserdata('diy_advance_mode', '');
if (drag.isClearClose) {
showDialog('<div style="line-height:28px;">是否保留暂存数据?<br />按确定按钮将保留暂存数据,按取消按钮将删除暂存数据。</div>','confirm','保留暂存数据', function(){location.href = spaceDiy.cancelDiyUrl();}, true, function(){window.onunload=function(){spaceDiy.cancelDIY()};location.href = spaceDiy.cancelDiyUrl();});
} else {
location.href = this.cancelDiyUrl();
}
},
recover : function() {
if (confirm('您确定要恢复到上一版本保存的结果吗?')) {
drag.clearClose();
document.diyform.recover.value = '1';
document.diyform.gobackurl.value = location.href.replace(/(\?diy=yes)|(\&diy=yes)/,'').replace(/[\?|\&]preview=yes/,'');
document.diyform.submit();
}
doane();
},
enablePreviewButton : function () {
if ($('preview')){
$('preview').className = '';
if(drag.isChange) {
$('diy_preview').onclick = function () {spaceDiy.save('savecache');return false;};
} else {
$('diy_preview').onclick = function () {spaceDiy.save('preview');return false;};
}
Util.show($('savecachemsg'))
}
},
disablePreviewButton : function () {
if ($('preview')) {
$('preview').className = 'unusable';
$('diy_preview').onclick = function () {return false;};
}
},
cancelDIY : function () {
this.disablePreviewButton();
document.diyform.optype.value = 'canceldiy';
var x = new Ajax();
x.post($('diyform').action+'&inajax=1','optype=canceldiy&diysubmit=1&template='+document.diyform.template.value+'&savemod='+document.diyform.savemod.value+'&formhash='+document.diyform.formhash.value+'&tpldirectory='+document.diyform.tpldirectory.value+'&diysign='+document.diyform.diysign.value,function(s){});
},
switchBlockclass : function(blockclass) {
var navs = $('contentblockclass_nav').getElementsByTagName('a');
var contents = $('contentblockclass').getElementsByTagName('ul');
for(var i=0; i<navs.length; i++) {
if(navs[i].id=='bcnav_'+blockclass) {
navs[i].className = 'a';
} else {
navs[i].className = '';
}
}
for(var i=0; i<contents.length; i++) {
if(contents[i].id=='contentblockclass_'+blockclass) {
contents[i].style.display = '';
} else {
contents[i].style.display = 'none';
}
}
},
getdiy : function (type) {
if (type) {
var nav = $('controlnav').children;
for (var i in nav) {
if (nav[i].className == 'current') {
nav[i].className = '';
var contentid = 'content'+nav[i].id.replace('nav', '');
if ($(contentid)) $(contentid).style.display = 'none';
}
}
$('nav'+type).className = 'current';
if (type == 'start' || type == 'frame') {
$('content'+type).style.display = 'block';
return true;
}
if(type == 'blockclass' && $('content'+type).innerHTML !='') {
$('content'+type).style.display = 'block';
return true;
}
var para = '&op='+type;
if (arguments.length > 1) {
for (var i = 1; i < arguments.length; i++) {
para += '&' + arguments[i] + '=' + arguments[++i];
}
}
var ajaxtarget = type == 'diy' ? 'diyimages' : '';
var x = new Ajax();
x.showId = ajaxtarget;
x.get('portal.php?mod=portalcp&ac=diy'+para+'&inajax=1&ajaxtarget='+ajaxtarget,function(s, x) {
if (s) {
if (typeof cpb_frame == 'object' && !BROWSER.ie) {delete cpb_frame;}
if (!$('content'+type)) {
var dom = document.createElement('div');
dom.id = 'content'+type;
$('controlcontent').appendChild(dom);
}
$('content'+type).innerHTML = s;
$('content'+type).style.display = 'block';
if (type == 'diy') {
spaceDiy.setCurrentDiy(spaceDiy.currentDiy);
if (spaceDiy.styleSheet.rules.length > 0) {
Util.show('recover_button');
}
}
var evaled = false;
if(s.indexOf('ajaxerror') != -1) {
evalscript(s);
evaled = true;
}
if(!evaled && (typeof ajaxerror == 'undefined' || !ajaxerror)) {
if(x.showId) {
ajaxupdateevents($(x.showId));
}
}
if(!evaled) evalscript(s);
}
});
}
}
});
spaceDiy.init(1);
function succeedhandle_diyform (url, message, values) {
if (values['rejs'] == '1') {
document.diyform.rejs.value = '';
parent.$('preview_form').submit();
}
spaceDiy.enablePreviewButton();
return false;
}